2014-02-13 132 views
1

我一直在SVN上工作了一段時間,我現在正在遷移到GIT,原因很明顯。我已經可以在svn之外創建git倉庫了。同步SVN備份的Git

由於我對GIT並不是很有信心,在有效選擇它作爲我的版本控制系統之前,我希望在使用GIT的同時保持SVN存儲庫與GIT同步。

我挺能做到這一點,通過郵局推掛鉤,但我有以下問題:

1)SVN提交由同一用戶(即控制Git倉庫的一個完成從dcommits被執行)。

2)爲了讓git svn評估在SVN上提交的新差異,它通過添加一個醜陋的「git-svn-id」來改變GIT提交元數據。這改變了commit-sha,因此需要額外的git pull,並且在存儲庫樹中創建一個「菱形」。

有沒有辦法避免這種情況?

請注意,我可以通過確保單向同步(從GIT到SVN)來滿足,而反之亦然。

在此先感謝。

回答

1

1)你可以配置你的本地Git倉庫用的格式創建an authors text file映射來回SVN用戶和GIT作者之間:

svnjohndoe = John Doe <[email protected]> 

你必須告訴git svn clone使用它通過指定--authors-file選項:

$ git svn clone http://someproject/svn --authors-file=authors.txt 

2)可以避開git-svn-id你通過與--no-metadata選項克隆SVN倉庫提交前面

$ git svn clone http://someproject/svn --no-metadata 

不幸的是,有沒有辦法避免git-svn-idpushing back to SVN

但是,避免提交SHA更改的解決方法是先推送到SVN(通過git svn dcommit)和,然後推送到您的上游GIT回購。