2011-11-02 20 views
0

我使用git-svn克隆了整個SVN倉庫(包括所有分支)。問題是,如果我運行git branch,我什麼都收不回來。如果我運行git branch -a我得到:我使用git-svn克隆整個SVN存儲庫後應如何切換到主幹?

git-svn 

我現在應該做的,開始在SVN的trunk工作?

編輯:回購在標準佈局組織,但是當我把我做到了像:

git svn clone http://server/repo (without any other options) 

,而不是像

git svn clone http://server/repo/trunk 

我的gitconfig是這樣的:

[svn-remote "svn"] 
    url = svn_url 
    fetch = :refs/remotes/git-svn 
+0

只是檢查,是原始的SVN回購組織在分支機構/標籤/樹幹通常的標準佈局?通常中繼線映射到主,所以你應該至少有主分支 – prusswan

+0

@prusswan,我更新了問題。 – Geo

回答

2

爲了避免一個完整的重新克隆你可以更新.git/config文件有以下:

[svn-remote "svn"] 
url = http://server.org/svn 
fetch = trunk:refs/remotes/trunk 
branches = branches/*:refs/remotes/* 
tags = tags/*:refs/remotes/tags/* 

然後刪除.git/svn/.metadata並再次運行git svn fetch

PS:這是從我從Git-SVN with multiple branch locations?中發現的,當我不得不處理一些非標準佈局的回購時得到的啓發。

1

克隆時必須使用-s(標準佈局)開關:

git svn -s clone http://server/repo 

此開關會告訴混帳SVN分別來自^/tags^/branches發現,目錄創建分支和標籤。 ^/trunk將映射到git的master分支。

我怕,你將不得不重新克隆你的svn庫...

+0

我很害怕這個:) – Geo

+0

我希望你沒有刪除目錄,從我以前的經驗中,你只需要刪除元數據文件,然後再次進行提取。這將避免需要重新下載所有對象 – prusswan

+0

參考:http://stackoverflow.com/questions/1638478/git-svn-with-multiple-branch-locations – prusswan

1

您可以用SmartGit克隆SVN許可。它檢測你的幹線/分支/標籤配置並正確配置佈局,所以你不必擔心。

相關問題