git-svn总是生成唯一的哈希值

时间:2014-04-25 07:27:57

标签: git svn github workflow git-svn

我在SVN存储库中托管了很长一段时间的项目,现在正在转换到GitHub。

目前,我是唯一一位主要在Git工作的开发人员,其他人则使用SVN。我的工作流程非常简单:gitsvn clone,git commit,git-svn dcommit,git push。但是如果其他人也在Git中工作,我们会在推送到GitHub时遇到冲突,因为`git svn clone'每次运行时都会生成唯一的哈希值,因此对于两个不同的克隆,历史记录完全不同。

是否可以强制git-svn为相同的SVN版本生成相等的哈希值?或者是否有其他工作流程方案允许同时在Git和SVN中使用相同的代码库?

1 个答案:

答案 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存储库。

如果你遵循这个建议,你应该没事。