我刚刚被告知如果我在文件中进行更改然后签入(我使用Visual Studio + Ankh),那么更改将被有效合并。无论我检查什么,我一直都在想 - 它的终极目标。我确信我签入的文件将被完整替换,使源100%保持最新状态。没有篡改..
现在我听说svn实际上合并了repo中的文件..这是正确的吗?
如果是 - 其他源控制系统在这方面做了什么? Git,MS TFS?
答案 0 :(得分:1)
你被告知错了。合并发生在您的工作副本中,而不是在提交期间。几乎所有的版本控制系统都是这样做的:合并发生在开发人员的工作区域中,所提交的更改正是开发人员工作区域中的变化。
想象一下你的同事和你签出同一个文件的场景。您的同事初始化程序第90行中的计数器变量,并在第91行和第110行之间进行一些计数。在#200行附近,您的同事使用存储在此变量中的计数。同时,您决定在#150和#175行中使用相同的计数器变量。
合并发生时,不会发生任何冲突。你改变了不同于同事的线路。但是,即使没有行冲突,您也可以看到存在逻辑冲突。
这就是合并必须在工作副本中进行的原因。由拥有该工作副本的开发人员来确认合并没有问题。毕竟,当开发人员在他们的工作副本中进行合并时,他们的名字将在他们提交时进行更改。
是的,我知道......我的老板也不相信:)
Power = Work / Time
Time = Money
Power = Work / Money
Knowledge = Power
Knowledge = Work / Money
Money = Work / Knowledge
当Knowledge
接近零时,无论Money
的数量是多少,Work
都会增加。