我在SVN存储库中托管了很长一段时间的项目,现在正在转换到GitHub。
目前,我是唯一一位主要在Git工作的开发人员,其他人则使用SVN。我的工作流程非常简单:gitsvn clone,git commit,git-svn dcommit,git push。但是如果其他人也在Git中工作,我们会在推送到GitHub时遇到冲突,因为`git svn clone'每次运行时都会生成唯一的哈希值,因此对于两个不同的克隆,历史记录完全不同。
是否可以强制git-svn为相同的SVN版本生成相等的哈希值?或者是否有其他工作流程方案允许同时在Git和SVN中使用相同的代码库?
答案 0 :(得分:1)
是否可以强制git-svn为相同的SVN版本生成相等的哈希值?
是的,确实如此。你甚至不必强迫它。说真的:如果你使用相同的参数多次git svn clone
相同的SVN存储库,你会获得相同的哈希值(我只是测试过它)。
如果您获得不同的哈希值,则克隆期间的参数必须不同(路径参数,SVN repo URL ...) - 或者您使用的是不同版本的git-svn
。
我的工作流程非常简单:gitsvn clone,git commit,git-svn dcommit,git push [...] 或者是否有其他工作流程方案允许同时在Git和SVN中使用相同的代码库?
“git-svn dcommit,git push”:这是你的问题。
通常同时使用Git和SVN应该是开箱即用的。一个警告:您不应该在不同的git svn
克隆之间直接推/拉。所以你使用git push
可能会造成麻烦。正如manpage解释(突出我的):
为了简单和与Subversion互操作,它是 建议所有git svn用户直接克隆,获取和dcommit 来自SVN服务器,避免所有git clone / pull / merge / push git存储库和分支之间的操作。推荐 在git分支和用户之间交换代码的方法是git format-patch和git am,或者只是'dcommit'ing到SVN存储库。
如果你遵循这个建议,你应该没事。