問題:之前建了一個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將版本控制的條目復制到目標位置”。