2014-02-13 103 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回购。