2009-10-03 79 views
2

对subversion模型的工作原理有些困惑。所以说我和我的同事检出了同一个文件,但我们在文件的不同位置工作,颠覆只是合并了这两个更改?subversion如何合并

大多数时候我们将使用php和xml文件,这是否意味着我们应该使用颠覆默认模型,而不是锁定文件?

回答

8

的情况如下:

  • 的你俩签出同一个文件。
  • 你们俩都对文件进行了一些更改
  • 你们其中一人首先提交更改。
  • 另一个试图去提交会得到一个错误,该文件需要更新,因为它已经在存储库,因为最后结账
  • 更新文件的时候改变了,svn客户端尝试合并从库中的差异当地的

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

如果改变重叠的Subversion告诉你的是北达科相冲突,你必须决定,是否该文件:你

  • 手动合并
  • 您覆盖从库中的最新变化与更改
  • 回复您更改并使用版本库中的版本

解决冲突后,您必须再次提交该文件,以使您的更改生效吨。

3

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

1

弗兰克说。

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

+0

+1有趣的链接。不知道然而,这与问题有多相关:) – 2009-10-05 14:46:27

1

是的,颠覆并发版本模型将为你明确工作。

如果你都编辑同一个文件,该方案将在以下几点:

对于提交的文件中的第一个,该行为是直接的。该文件在存储库中更新。

对于第二个,这个过程是有点不同,他将由ool指导。

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

  2. 当本地副本已合并时,冲突(如果有的话)应手动解决,应执行一轮测试以确认您的更改没有冲突。

  3. 当本地代码是好的,提交将更新资源库(当时仓库考虑您的本地代码是基于最新的版本。

相关问题