gpt4 book ai didi

svn - 不是冲突的更改示例

转载 作者:行者123 更新时间:2023-12-04 01:28:37 25 4
gpt4 key购买 nike

我正在尝试了解 subversion 合并命令的详细信息。我认为理解同时也是冲突的变更与非冲突的变更之间的区别会有所帮助。

这是此 thread 的后续.

最佳答案

冲突的更改是指两个人都对同一个文件进行了更改,但无法自动解决这两个更改。

1) 让我们从一个非冲突合并的例子开始。

原始文件

line1
line2
line3

人 A 将其更改为:
line1CHANGED
line2
line3

人 B 将其更改为:
line1
line2CHANGED
line3

当它们都被检入并合并时,就不会有冲突,因为它可以轻松解决生成这个最终文件:
line1CHANGED
line2CHANGED
line3

Subversion 会自动将其作为合并处理。

2) 现在是一个冲突变化的例子。

原始文件
line1
line2
line3

人 A 将其更改为:
line1CHANGED_BY_A
line2
line3

人 B 将其更改为:
line1CHANGED_BY_B
line2
line3

这不能自动合并,所以它是一个冲突。您需要通过接受 A 的更改或 B 的更改来解决。在这种情况下,subversion 会警告您发生冲突,并要求您决定如何解决它们。

3) 最后,您可以在同一修订版中同时进行冲突和非冲突的更改。

原始文件
line1
line2
line3

人 A 将其更改为:
line1CHANGED_BY_A
line2ALSO_CHANGED_BY_A
line3

人 B 将其更改为:
line1CHANGED_BY_B
line2
line3ALSO_CHANGED_BY_B

现在,在此示例中,两个人都更改了文件,并且第 1 行存在必须解决的冲突更改,但第 2 行和第 3 行是非冲突更改,可以自动解决。

您可以选择通过多种方式解决此问题。

首先,您可以完全接受 A 或 B 的文件并丢弃另一个。这将导致其他人的非冲突更改丢失。假设您选择使用 A 完全解析,您的最终文件将是:
line1CHANGED_BY_A
line2ALSO_CHANGED_BY_A
line3

(正好是A的文件,B所做的所有更改都被丢弃)

其次,您可以仅解决冲突的更改,而仍然保留所有非冲突的更改。这是您将为第一行选择 A 或 B 的更改,并且仍然从两个人那里获得另一行的更改。因此,例如您选择使用 A 解决冲突,您的最终文件将是:
line1CHANGED_BY_A
line2ALSO_CHANGED_BY_A
line3ALSO_CHANGED_BY_B

或者,您可以使用 KDiff 之类的工具支持单独审查每个冲突(因为当然您可以在同一个文件中进行多项更改,包括冲突和非冲突),这将允许您为每个冲突选择不同的解决方法。

如果您在理解与命令行工具合并时遇到问题,我强烈建议您查看 KDiff(或其他一些 GUI 合并/差异工具),因为它们将文件并排显示(与原始文件一起)并允许您查看每个解析操作会做什么。

关于svn - 不是冲突的更改示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2121158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com