2013-06-24 82 views
1

我對以下方案的正確工作流程有些遺憾。 我使用託管在顛覆回購中的谷歌代碼的開源項目。我更喜歡使用git,所以我使用git-svn將svn repo克隆到git repo。 原作者仍然承諾svn回購(耶!)和我和我的團隊承諾git回購。git-svn克隆一個生活在git中的回購,但從svn取回

我需要能夠 - 克隆混帳回購協議(包含SVN歷史) - 配置混帳,以便它可以從SVN倉庫 獲取 - 配置的git - svn的,使其從一個特定的版本取編號

注意:當你克隆git倉庫時,所有到svn的鏈接都將丟失。

+0

您打算如何處理從SVN提交引起的衝突? – krlmlr

+0

我還是不明白。 SVN客戶端是否被迫使用他們的「舊」代碼並承諾它,或者您會對雙向同步感到滿意嗎? – krlmlr

回答

2

SubGit可能是一個選項,他們承諾雙向Git < - > SVN鏡像,包括所有SVN功能。免費用於開源項目。聽起來很有趣,但我還沒有嘗試過這個。

此外,GitHub有一個雙向SVN connector具有與SubGit大致相同的一組功能。你可以簡單地使用Subversion簽出一個Git URL,它可以直接使用。這將需要一次性migration from SVN to Git。另請參閱:How to migrate SVN repository with history to a new Git repository?

如果這兩個選項都不適合您,最安全的選擇可能是分別爲每個客戶端git svn clone。如果身份驗證不是URL的一部分,您可以隨時將克隆的GitSVN工作副本部署到不同的計算機上,但這在工作流程方面是這樣的...相關:git clone of git-svn tree?

(我不隸屬於該公司上述所列)

+0

感謝您的回答。老實說,我不認爲任何這些工具可以解決我上面解釋過的問題 – roundcrisis

+0

@Miau:那麼看起來我首先無法理解你的問題。 – krlmlr

+0

再次感謝您的回覆。我現在看到,我沒有解釋,已經發生了遷移到git的情況,所以這樣就可以將svn連接起來。我一直在使用git-svn將svn的更改拖到git倉庫,但每次我需要從新機器上執行此操作時,這個過程都很痛苦,或者很難重現。我檢查了一下子表單,看看它做了我需要的事情,我只是覺得我不瞭解git和git-svn。我想我需要一些看起來像git svn attach-svn-repo的命令(這樣,在你克隆git repo後,你可以說你現在可以從前面提到的repo中git svn獲取) – roundcrisis

0

行,所以我找到了一種方法來做到這一點

首先添加了svn回購與git這樣

[svn-remote "svn"] 
    url = http://url/to/repo/svn/trunk 
    fetch = :refs/remotes/git-svn 

注意配置文件:如果你的混帳回購協議是幹什麼用的成爲後備箱,確保你將它包含在中url

然後用svn調用git svn fetch(取回之後)是svn-remote的名稱,-r832代表-r(修訂版),832代表我們想從

開始的subversion修訂號
git svn fetch svn -r832 

之後,我叫 混帳SVN變基和重訂所有選秀權在它結束時,我得到了一個消息,說我應該可能是由於被重訂的所有更改創建一個分支,我也然後我切換掌握併合並來自剛剛創建的分支的更改。 現在我可以SVN的git從回購獲取:d

如果有比這更好/更短的方式,將是巨大的聽到它:)