取消本地SVN文件夹与服务器关联
问题:之前建了一个SVN代码库,同步了代码上去,但中途发现建库时的规则搞错了,就把服务器上的库给删了重建,然后改变本地代码的svn服务器关联地址,但使用Relocate一直报错。
错误有两种情况:1.提示新的地址不是同一个根目录;2.提示uuid不同。
在网上找了好多办法解决重定位问题依然不行,于是改变解决问题思路,寻找取消本地文件夹与SVN服务器的关联。
具体步骤:
step1: 编写以下脚本
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Remove SVN Link"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
如下图所示:注意换行,建议使用Notepad++编辑,后缀名改为.reg
step2:待取消关联的文件夹-》右键-》Remove SVN Link (该名称就是上图代码中设置的名称) 如下图所示:
step3:刷新文件夹,就可以看到绿色的箭头消失了,表示关联已经取消。
Attention:如果你想删除杠杆添加的注册表项,很简单用win+R regedit 打开注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN这个文件删除就OK。如下图所示。
=============================================================================
更新另外两种方法,看到别人做的,比这个方法简单可靠。
M1:直接、逐级地删除目标目录中的隐藏属性的.svn目录
M2:如果用的是TortoiseSVN客户端,则先在另外一处建立一个新目录A,右键点住svn目录并拖动到A上松手,在弹出的菜单中选择“SVN将版本控制的条目复制到目标位置”。