2013-01-17 151 views
0

我想使用git-svn來使用遠程SVN倉庫。我一直試圖用git svn clone -s REPO_URL來下載它,但是因爲我的網絡連接不好,而且回購很大,所以超時。如何將git-svn與SVN存儲庫一起用於磁盤?

因此,我打算使用SVN客戶端檢出整個回購,然後在事實之後讓git-svn使用它。但那有可能嗎? git svn clone -s需要照顧所有這些東西(即設置遠程URL,導入歷史記錄,識別遠程分支等),但由於我以其他方式下載repo,因此我不知道我需要運行哪些命令來設置它起來。

回答

1

啊,看起來像一個SVN客戶端是不需要的。可以使用git svn fetch繼續中斷git svn clone,詳見here。 :)

或者,如果您不關心如何獲取存儲庫的整個歷史記錄,則可以通過執行git svn clone -s -rN:HEAD repo_url local_dir來加速下載,它只會將存儲庫從特定版本號(N)克隆到最新版本提交(HEAD)。這大大減少了您必須從SVN服務器下載的數據量。

因此,照顧處理大型儲存庫的問題。但爲了回答我關於如何讓git-svn與已下載到磁盤的repo一起工作的問題,您可以使用file://協議進行克隆。例如:git svn clone file:///path/to/repo/

0

git-svn執行的神奇功能是在每個修訂版本下載Subversion存儲庫,這意味着您可以在本地計算機上獲得完整的存儲庫歷史記錄,就像使用常規Git存儲庫一樣。它還提取了關於每個提交的大量元數據,例如修訂號和提交日誌文本。

如果您只是使用wget(或者更明顯的是,svn export)下載Subversion存儲庫,那麼您將不會獲得所有這些信息,也無法獲得它。

如果您不需要本地存儲庫中的完整歷史記錄,則可以克隆最近的修訂版本。運行git svn init而不是git svn clone(指定相同的佈局參數,例如-s)。然後運行git svn fetch -r HEAD。這將只下載最新版本的遠程Subversion版本庫,並在此基礎上構建您的歷史記錄。