在现有的SVN repo上使用git

Ada*_*tan 13 svn git git-svn

我使用旧版svn回购.但是,我想享受git我本地机器的好处.

  • 第一个选项是git init我当前仓库的根,编写代码,并在本地(git commit)和远程(svn commit)独立提交代码.
  • 第二种选择是git-svn,但我不知道是否值得学习新工具细微差别的麻烦.

我该怎么办呢?

me_*_*and 9

我非常强烈地主张git-svn.我和我的一些同事试图在Subversion的顶部使用Git repro,这是一个由痛苦和恐怖组成的过程.

不可否认,这是针对Subversion 1.6.x的; 我怀疑1.7x会更好,因为它只有一个.svn目录.

  • 从存储库更新需要从Subversion中提取更新,然后使用Git提交更新.这是缓慢而乏味的(不可否认,它的速度相当慢git-svn,但至少可以使过程自动化).

    另外,无论你最终下载每一个使用Subversion提交和手动提交它的Git,或者你最终犯颠覆的束提交到Git仓库,并$deity帮助你,如果你想与你的Git承诺在Subversion修订工作.

  • Git无法处理空目录,Subversion要求它们的.svn目录格式.这意味着您需要将您的.svn存储库保留在Git存储库之外,因此任何git checkout操作都需要单独的操作svn up.

  • 如你所知,你需要单独承诺所有事情.

因此,分别使用Subversion和Git,您需要在Git和Subversion中执行几乎所有操作.这意味着一切都需要更长的时间,而且你会得到两个系统的所有缺点,同时它们都能很好地克服彼此的优势.


gre*_*ire 5

使用git-svn,它非常简单.首先克隆您的存储库git svn clone然后您可以使用git svn dcommit您的工作或git svn rebase最新的更改.通过始终在主服务器上重新定位本地分支,确保您的历史记录始终是线性的,以便您可以将它们合并git merge --ff-only.


Thi*_*ter 5

最好的方法是迁移到git并抛弃 SVN。

但是,如果这不是一个选项,请使用git-svn.

当单独提交到 git/svn 时,您很可能最终很少提交到 SVN,这将导致其他开发人员最终进行大量提交。

  • 如果他写的是“我使用遗留的 svn 存储库”,那么扔掉它可能并不是一个真正的选择 (6认同)