颠覆是如何融合的

时间:2009-10-03 07:41:11

标签: svn

对颠覆模型的工作原理有点困惑。所以说我和我的同事检查了相同的文件,但是我们在文件的不同位置工作会颠覆这两个更改吗?

大部分时间我们都会使用php和xml文件,这是否意味着我们应该使用颠覆默认模型而不是锁定文件?

4 个答案:

答案 0 :(得分:8)

情况如下:

  • 你们两个都查看了同一个文件。
  • 你们两个都对文件进行了一些更改
  • 其中一个人首先提交更改。
  • 另一个尝试提交的人会收到一条错误消息,说文件需要更新,因为自上次结账后它已在存储库中发生了变化
  • 更新文件时,svn客户端尝试将存储库中的差异与本地
  • 合并

结果取决于变化。如果更改位于代码的不同部分,则会自动完成合并。

如果更改重叠,Subversion会告诉您文件是冲突的,您必须决定是否:

  • 您手动合并
  • 您使用更改覆盖存储库中的最新更改
  • 还原您的更改并使用存储库中的版本

解决冲突后,您必须再次提交文件,以使更改永久化。

答案 1 :(得分:3)

是的,如果您正在处理同一文件的不同区域,那么Subversion可以对其进行排序。只有当您处理文件的相同(或非常接近)区域时,才需要处理合并冲突。

答案 2 :(得分:1)

弗兰克说。

本主题中也有很棒的文章。也许它专注于敏捷版本控制,但也应该帮助您了解svn的工作原理: http://www.infoq.com/articles/agile-version-control

答案 3 :(得分:1)

是的,颠覆并发版模型将最终为您服务。

如果您要编辑同一个文件,则方案如下:

对于提交文件的第一个,行为很简单。该文件在存储库中更新。

对于第二个,这个过程有点不同,他会受到ool的指导。

  1. 尝试提交时,系统会要求他首先更新文件,因为存储库已同时更新。更新将尽可能进行自动合并,并识别可能的冲突。

  2. 合并本地副本后,应手动解决冲突(如果有),并应执行一轮测试以确认您的更改不会发生冲突。

  3. 当本地代码正常时,提交将更新存储库(此时存储库会认为您的本地代码基于最新版本。