2013-02-05 77 views
0

我正在從SVN轉移到git的過程中,並且我嘗試使用git svn wrapper svn2git(https://github.com/nirvdrum/svn2git)來遷移我現有的SVN存儲庫。我使用svn2git,因爲它保持分支完好無損。我的最終目標是將該項目放到github上。 - 但我不能看到它的倉庫存儲庫中的奇怪的SVN文件夾

svn/https%3A 

按理說它是一個分支:

當執行通過svn2git克隆,當它試圖訪問一個文件夾中的暫停執行。我假設在某個階段,我不小心命名了一個以https開頭的分支:(認爲它需要完整的SVN路徑),但是現在我不確定如何再次刪除它,因爲找不到它。

有什麼方法可以使用svnadmin查找和刪除它?

+0

確實svn2git列出了它的失敗嗎?你可以做一個登錄svn /分支並找到它?可能它是被創建和刪除的(因此它不可見) – thekbb

+0

是的..它在789版本上失敗了,我在服務器上的svn respoistory上做了grep,發現788,789和790的分支包含分支/ https:/ ... 雖然我的問題是,我不確定如何在提取時避免這些修訂? – user984976

回答

0

這是一個很長一段時間,我不測試了這一點道歉...... 但在理論上,你可以刪除與

git branch -D https%3A

罪犯,然後用重新啓動:

svn2git --rebase

如果這不起作用,我會嘗試使用svndumpfilter刪除該分支。你必須與svnadmin dump轉儲庫,然後將其過濾:

svndumpfilter exclude branches/https%3A <dumpfile> filtered-dumpfile

然後你就可以加載過濾,轉存到一個新的svn回購,然後做,一個svn2git。

+1

您好,非常感謝您花時間回覆我的問題。不幸的是,我沒有測試你的答案。在它被列出之前,我嘗試了一下subgit(請參閱我的答案)並且它沒有問題。不過,我認爲svndumpfilter是正確地「修復」svn repo的正確方法。再次,感謝您的時間,我真的很感謝您嘗試幫助。 – user984976

2

花了幾個小時對此,嘗試執行轉換的各種方法(我沒有嘗試thekbb的建議的解決方案,因爲我沒有看到它,然後我找到了答案),我最終放棄了git-svn並將去與第一次轉換整個存儲庫的subgit,沒有任何麻煩。

我不想在這裏投入熱水,但我會說我的經驗與使用git-svn或者包裝svn2git的情況相比已經有了很大的提高。

似乎git-svn在遇到subversion版本庫中的不規則性時會拋出一個錯誤,然而subgit似乎將它自己排除,在這種情況下我更喜歡這種情況,因爲我正在從SVN遷移到Git,所以任何時候我可以避免花費修補SVN存儲庫是我很樂意保存的時間。

我沒有看到在subgit安裝指南(我可能錯過了它)中唯一沒有看到的是,你應該在執行安裝時使svn服務器離線,否則你會以'Interruptions'結束(當有人訪問存儲庫時)停止安裝。

+0

感謝您對SubGit dev團隊的迴應。我想問你,你遇到過什麼樣的打擾?如果您使用的是SubGit 1.0,那麼SubGit應該將某些掛鉤安裝到SVN和Git存儲庫中,以確保即使在安裝過程中提交了每個修訂版本,也要對其進行轉換。所以,在這種情況下不需要關閉服務器。 SubGit 2.0 EAP構建確實存在一些問題;這些問題應該已經在最新版本中得到修復。 – vadishev

相關問題