2015-02-09 147 views
3

我有一個很大的SVN回購(140GB左右),它擁有許多項目,並且不遵循svn推薦的目錄結構。從所有這些數據(包括二進制文件,發佈版本和依賴關係)中,我真正關心的是在一個特定的路徑上,實際上與其他任何事情相比,其歷史都很短。將大型SVN回購遷移到git

迄今爲止我讀過的關於SVN到Git遷移的所有文檔都要求我將整個SVN回購協議拖到Git上,但這是永久佔用,計時,OOM和崩潰。有什麼辦法可以只爲這個特定的文件夾提取歷史記錄嗎?

或者有什麼辦法可以將這個文件夾的SVN歷史記錄單獨導出到一個新的SVN倉庫並從那裏開始git遷移?

回答

1

通--no-最小化的URL,E.G,:

git svn clone <SVN_URL>/your/specific/folder --no-minimize-url --no-metadata folder 
+0

謝謝,那就是訣竅! – 2015-02-09 17:01:49

0

如果你有機會到Subversion存儲庫(不只是一個工作副本),我建議使用svn2git,因爲它會快很多。

規則文件將類似於

create repository specific-folder.git 
end repository 

# note: trailing slash is important 
match /trunk/foo/bar/baz/specific-folder/ 
    repository specific-folder.git 
    branch master 
end match 

# ignore everything else 
match/
end match 

,您的命令將

svn-all-fast-export --identity-map=my-users --rules=specific-folder.rules \ 
    --stats --add-metadata /full/path/to/subversion/repo 

請注意,您的Git倉庫將包含內容specific-folder