昨晚浏览Tigris.ORG的网站,发现TortoiseSVN已经升级到1.3.2,遂下载了Windows安装版,准备对使用中的1.2.6版进行升级。不知道SourceForge.net这一段时间是怎么回事,访问了多次才下载回来,所以想下载的朋友一定要有耐性。
在升级安装过程的过程中,当出现如下对话框时
由于安装前没有仔细阅读发现说明,以为是TortoiseSVN对VS的Web项目有了什么新的支持,选上了ASP.NET Hach安装项。
安装完成后,重新启动计算机,使用TortoiseSVN能够正常查看Repository中的项目。但是转到以前的工作目录时,发现各种受控文件 的图标都没有了,跟普通文件夹一样。仔细想想,SVN的工作目录和普通文件夹的区别在于工作目录中有一个隐藏的.svn文件夹,里面保存了SVN的相关 信息,工作目录不能正常显示可能与此有关。建立一个临时文件夹,Checkout一个项目到里面,果然发现隐藏的.svn文件夹的名字变成了_svn,难 怪原来的工作目录不能正常显示。将原来的工作目录下的.svn文件夹更名为_svn,可以正常工作了。
为了搞清楚缘由,连到Subversion中文站,查看TortoiseSVN-1.3.2的发行说明,有下面一段:
对Windows下的'_svn'目录的官方支持 (客户端和语言绑定)
"_svn"的使用现在被官方的支持:因为一些版本的ASP.NET不允许点开头的目录(例如".svn",标准的Subversion工作拷贝管理目录),svn命令客户端和svnversion现 在可以使用SVN_ASP_DOT_NET_HACK环境变量,如果设置了这个值,他们会使用"_svn"而不是".svn"。我们推荐所有的 Subversion的Windows客户端利用这个特性,注意如果设置了这个环境变量,使用标准".svn"的工作拷贝将不会工作,需要重新检出 "_svn"的工作拷贝。
第三方的使用Subversion库的软件需要更新来得到等价的API条哟个,见三个新的API: svn_wc_is_adm_dir, svn_wc_get_adm_dir和svn_wc_set_adm_dir,设置SVN_ASP_DOT_NET_HACK环境变量只会在上面提到的客户端程序中工作,而且只有在Windows下。对于库并不工作;库用户需要调用新的API,平台独立的。见这个邮件和它的回复。
由于作者不使用VS开发Web项目,因此还想回到用.svn的状态,故删除SVN_ASP_DOT_NET_HACK环境变量,并重新启动计算机,原来的工作目录可以正常显示了。
还有两点需要说明的是:
在Windows的资源管理器中,不能将文件夹命名为以点开头的形式,故无法在资源管理器中将_svn重新命名为.svn,要完成该工作,需要转到命令提示符窗口进行;
从TortoiseSVN 1.1.×版升级到1.2.×或1.3.×时,由于Berkeley DB升级的原因,你无法查看原来的
Repository,升级原来的Repository的方法可以参见Subversion FAQ。