2013-08-21 24 views
0

遷移我執行的Git服務器上的下面的命令Subversion庫遷移到Git倉庫:SVN到GIT導致GIT的規模龐大回購

mkdir xyz.git 
git init --bare xyz.git 
svn git clone http://x.y.x.y/svn/CLF xyz.git 

du -sh xyz.git 

做的Git回購該尺寸後顯示了Subversion回購的規模的兩倍。 我是否錯誤地運行遷移?

+2

Git喜歡在假設存儲便宜並且值得爲快速性能進行交易的前提下運行。大一點並不一定意味着任何錯誤。 – vcsjones

+0

現在可能是運行BFG清理歷史中不需要的對象的好時機.http://rtyley.github.io/bfg-repo-cleaner/ –

+0

你可以顯示'git count-objects - v'? –

回答

1

有一個項目可以幫助您將svn轉換爲git,https://github.com/nirvdrum/svn2git。這使用git-svn。但因爲它聽起來像你已經進行了克隆(這可能需要一段時間)也許看一看導向這裏只是使用Git svn的克隆不完善:

http://git-scm.com/book/en/Git-and-Other-Systems-Migrating-to-Git

但在回答你的問題,git倉庫的大小可能會有所不同,具體取決於它們是否打包。格式寬鬆允許更快速地訪問回購,打包格式如您所料,更小。你可以得到的git通過執行收拾倉庫:

git gc --prune=now --aggressive 
git repack 

這也截斷一種叫做跟蹤您的編輯如何隨時間變化的引用日誌設施。在處理代碼時通常使用這種方式,而不是以這種方式執行導出。

您應該發現存儲庫完全打包時,它比完整的subversion存儲庫小。

+0

我安裝svn2git和我的SVN倉庫不遵循standrard文件夾結構,所以我用下面的命令 svn2git -v http://192.168.4.201/svn/CLF --rootistrunk 我得到了下面的錯誤 錯誤:pathspec'master'與git已知的任何文件都不匹配。 命令失敗: 2>&1 git checkout -f master 請協助。 – user2703105

+0

意味着它沒有創建主幹。我沒有遇到這個問題,但其他人有:https://github.com/nirvdrum/svn2git/issues/41嘗試快速測試,看看我能否重現。 – andygavin

+0

嘗試提供'-v'標誌來查看命令的順序。它應該在執行時輸出git-svn init命令。 – andygavin