在解决合并冲突时,GIT和SVN之间有什么区别

在解决合并冲突时,GIT和SVN之间有什么区别,svn,git,merge,branch,conflict,Svn,Git,Merge,Branch,Conflict,我一直听说git中的分支比SVN中的分支容易得多,因为将分支合并回trunk/master更容易。我读过一些教程,但它们只涉及基本的合并冲突(“Alice更改了code.cpp的第8行,同时Bob更改了code.cpp的第8行…”),SVN和所有其他分布式源代码管理系统之间没有区别 您能给我举几个例子,说明分支中的更改会给SVN存储库带来麻烦,但git会很好地处理这些更改吗?与Mercurial有关,但它会很好地概括DVCS和SVN在合并冲突方面的区别 颠覆有麻烦的原因 与合并有关系的是它的方式

我一直听说git中的分支比SVN中的分支容易得多,因为将分支合并回trunk/master更容易。我读过一些教程,但它们只涉及基本的合并冲突(“Alice更改了code.cpp的第8行,同时Bob更改了code.cpp的第8行…”),SVN和所有其他分布式源代码管理系统之间没有区别

您能给我举几个例子,说明分支中的更改会给SVN存储库带来麻烦,但git会很好地处理这些更改吗?

与Mercurial有关,但它会很好地概括DVCS和SVN在合并冲突方面的区别

颠覆有麻烦的原因 与合并有关系的是它的方式 存储版本历史记录。颠覆 喜欢考虑修改。A. 修订是整个文件的内容 系统看起来像是在某个特定的 时间点。你认为在Mercurial 关于变更集。变更集是一个 之间的更改的简明列表 一次修订和下一次修订


因此,Subversion在合并时比较整个文件,而Mercurial(或Git)单独比较每个更改集。在处理变更集时,冲突发生的频率要低得多。

我终于花了一些时间来修补分支/合并git和svn,并找到了杀死svn但与git完美结合的案例:

假设项目由以下文件组成:

/main.cpp
/sub1/sub1.cpp
/sub1/sub1.h
  • 创建分支
  • 在trunk中,将sub1.*移动到根目录,删除sub1子目录
  • 在分支中,在/sub1/sub1.cpp中进行一些更改
  • 在主干中,在/sub1.cpp中进行一些更改
  • 合并分支和主干

  • SVN将丢失在第3点的分支中所做的所有更改,git中的类似更改将完全合并。对于任何需要分支的项目,这足以让我拒绝SVN作为版本控制系统。

    Orly?我只看到我的问题中描述的基本冲突情况。这看起来与这里的问题非常相似:所以你可能想看看。也许svn最近赶上了?我不知道,我没怎么用。svn能否从远程分支持续合并?