2011-06-30 168 views
3

我必須使用Subversion版本庫,我想使用git-svn。我有時會切換電腦,此刻我需要提交我的更改並更新其他電腦。有時更改後的代碼將無法工作,所以我的想法是創建兩個git-svn repos並使用push/pull同步它們,有時將它們(或其中之一)與svn存儲庫同步。這可能嗎? 將存儲庫切換到git是沒有選擇的。 (可悲)如何同步兩個git-svn回購

回答

3

如果你需要與你的計算機同步SVN你的Git倉庫,那麼是的:每個倉庫都是一個「git-svn」倉庫。
你創建了2個倉庫,然後在git-svn上創建你自己的一組git分支。

但你不能合併/推/拉將被dcommit'ed回SVN任何一間分行:你需要注意CAVEATS section of git-svn

爲了簡單起見,用顛覆互操作,建議所有用戶git svnclonefetch和SVN服務器dcommit直接,避免所有的git clone/pull/merge/push git倉庫和分公司之間的操作。在git分支和用戶之間交換代碼的推薦方法是git format-patch和git am,或者只是向SVN存儲庫提交。

運行git mergegit pull建議不要在你因爲Subversion用戶無法看到任何合併你所做的計劃dcommit一個分支。此外,如果您是來自作爲SVN分支的鏡像的git分支的mergepull,則dcommit可能會提交到錯誤的分支。

+0

所以它說我應該只通過svn repo交換git-svn repos之間的代碼? –

+0

uhm,另一種方式是隻有一個git-svn回購,至少有一個非svn分支可以從另一臺機器上推/拉。但通過這種方式,我只能從一個git-svn提交,對不對? –

+0

@John:如果你仔細地更新那些相同的分支,你仍然可以從'git svn'分支'dcommit'。 – VonC

2

我會說rsync兩個機器兩個回購。你會有相同的回購。

+0

所以我基本上有一個repy是rsynced之間的機器,對不對?兩個不同的操作系統會成爲問題嗎? (XP <--> Linux) –

+0

@John Smith - 沒有那不應該是一個問題,只要確保CRLF設置是好的。 – manojlds