2011-12-10 106 views
2

我有一個SVN倉庫,看起來是這樣的:「git svn clone」只克隆trunk? (預期克隆整個存儲庫)

  • 分支
    • ...各分支機構(沒有評分)
  • 標籤
    • ...各種標籤(none none)
  • trunk
    • 共同
    • DOC
    • EXTLIB
    • 凸出

我運行:

git svn clone --stdlayout https://[SVN URL]/svn/MyProject "C:\_build\WorkingFolders\Myproject_gitcopy" 

命令似乎成功執行。

由於我們克隆了整個存儲庫,我期望在克隆目錄中看到「分支」,「標籤」和「幹道」文件夾。相反,我看到「普通」,「doc」,「extlib」和「proj」。

看來,git只克隆我的存儲庫的主幹。有誰知道這是爲什麼,以及如何解決它?或者我只是看不正確?

在此先感謝您的幫助!

+0

您是否嘗試過與git標籤-l?如果你沒有分支或標籤混帳不能顯示更多。 – khmarbaise

回答

4

其實,git svn正試圖通過變聰明來幫助你:-)。

git對待Subversion和Subversion不同的標籤和分支。在Subversion中,標籤和分支不是作爲單獨的技術概念存在的;它們只是特殊目錄下樹的副本。

git實際上有分支作爲「真實」的對象。因此,git svn會自動將Subversion分支和標籤轉換爲git分支(*)。

要查看分支混帳,做

git branch -a 

(-a使得它包括遠程跟蹤分支)。這應該會顯示SVN回購中的分支和標籤。 (*)注意:git svn不會從Subversion標籤創建git標籤,因爲在Subversion中標籤和分支在技術上沒有區別(這只是一個約定)。由於在Subversion中如何區分標籤&並不完全清楚,所以git svn只是將它們全部導入爲分支。見例如Debian bug #501761: git-svn --tags should at least /try/ to handle tags as tags

+0

要在另一個問題上對此進行擴展,但您的回答有助於我更好地理解,謝謝! – SeanKilleen

+0

我擴大了我的答案,以解釋Subversion回購中的標籤會發生什麼。 – sleske

2

在Git中,你沒有像trunk,tags和branches這樣的目錄結構。通常你會在git的主分支中看到SVN-trunk中的所有內容但是根據你提到的信息,你提到的在你的Subversion中根本沒有標籤或分支,你不會在Git中看到標籤或分支。

此外,基於--stdlayout選項,您告訴git-svn橋採用默認佈局來區分主幹,標籤和分支。

0

一旦你得到一些SVN分支開始(如圖可以用git branch-A),你可以通過

git checkout <abranchname> 

切換工作區和背部與

git checkout master