我試圖將SVN回購轉換爲多個git回購。到目前爲止,我一直在爲SVN中的每個項目使用git svn clone svn_repo_project_path
。我注意到git似乎不遵循svn複製操作,所以結果歷史比我想象的要簡單得多。假設我的SVN回購是這樣的:轉換爲git時保留svn複製歷史
根
- 一個
- b
- Ç
- 家長凸出
- b
- Ç
項目b
和c
parent-proj
下最近被複制的重組計劃與最終從自己的老位置刪除它們下根的意圖的一部分。當我做git svn clone http://svnhost/parent-proj
時,由此產生的git repo在移動之前缺少源自/b
和/c
的所有歷史記錄。
這是git-svn的限制還是有一些方法可以讓這個歷史記錄顯示在我的回購中?從我的有限研究看來,使用Getting complete history of an SVN repo that's been renamed using git-svn中描述的filter-branch
命令似乎可行,但在我的情況下,有多個父母可能會使事情複雜化。可以先克隆整個回購,然後從中分出新回購(使用過濾分支?)是一種更好的方法嗎?
即使在移動目錄時,我也會記錄所有文件的歷史記錄。而我的'git svn clone'也跟蹤被克隆目錄之外的項目(它們來源於哪裏)。 –
@ShadowCreeper:你使用的是什麼版本的Git?我遇到了和Patrick一樣的問題 – Pylinux
我不確定他們被克隆了哪個版本。我相信它最初是一個1.7版本(這是幾個月前的debian wheezy的最新版本)。然而,我最近使用v1.8.4記錄了其中一個具有混亂歷史的項目,並且它的行爲相同(有些SHA具有完全不同的樹)。也許SVN服務器版本更重要?我相信這仍然是1.7。 –