乌龟SVN:使用“其”解决冲突。这是什么意思?


75

有人可以解释在冲突的文件上Tortoise SVN的以下两个选项之间的区别:

  • 使用“他们的”解决冲突。
  • 使用“我的”解决冲突。

附带说明。为什么地球上从来没有人报告过这种令人困惑的术语使用错误?


4
困惑可能是由于不了解“他们的”和“我的”的背景
Igor Pashchuk 2011年

17
由于这种混乱,我到达了这里,尽管不是在Tortise SVN中,而是从命令行中。在命令行上进行更新时,该选项被指定为“ theirs-conflict”,这对于选择是否将其保持在冲突状态或解决它是模棱两可的。
pohl 2012年

3
合并时更加令人困惑,并且将术语切换为“本地”和“存储库”。对我来说,一点也不清楚。
JohnOpincar 2012年

7
我不断地回到这个页面。为什么他们不只是说“偏爱本地更改而不是存储库更改”和“偏爱本地更改对存储库的更改”或类似的逻辑且易于理解的内容。我知道会更长一些,但是在这种情况下会更少,最肯定不会更多。
组件

3
绝对模棱两可。检查其他人的分支,然后将您所做的分支中的更改合并到该分支中。看看您的vs我的看上去有多清晰。
编程家伙

Answers:


55

使用“其”解决冲突意味着,当您尝试检入两个具有冲突编辑的文件时,SVN将放弃您的更改,而使用其他人的更改。

使用'mine'解决冲突意味着您将放弃对它们的更改,而使用文件的版本。


4
看看这解释了很多关于这个形象:tortoisesvn.net/docs/release/TortoiseMerge_en/...
斯特凡

3
这个答案根本解决不了他们与我之间的歧义。我只是被要求将我正在处理的分支中的更改合并到其他人正在处理的分支中。在这种情况下,我认为是“我的”的更改就是我分支中的更改。但是,如果我接受“我的”更改,则实际上实际上是从分支中丢弃更改。
编程家伙

mine在菜单中的任何位置都没有看到“使用解决冲突”。有没有办法确保我的更改与他们的更改合并?
SearchForKnowledge

1
是的,我不明白这个答案。没有“其他人”
2015年

42

我想添加整个列表以供进一步参考:

(e)  edit             - change merged file in an editor
(df) diff-full        - show all changes made to merged file
(r)  resolved         - accept merged version of file

(dc) display-conflict - show all conflicts (ignoring merged version)
(mc) mine-conflict    - accept my version for all conflicts (same)
(tc) theirs-conflict  - accept their version for all conflicts (same)

(mf) mine-full        - accept my version of entire file (even non-conflicts)
(tf) theirs-full      - accept their version of entire file (same)

(p)  postpone         - mark the conflict to be resolved later
(l)  launch           - launch external tool to resolve conflict
(s)  show all         - show this list

33

我同意。

在我看来,如果说:

  • 使用存储库解析(他们的)
  • 使用工作副本解析(我的)

3
在我看来,冲突的最佳答案可能是在没有第二个人参与的情况下发生的(例如,将git flow与多个分支一起使用时)。
Christoph

现在,“标记为已解决”是做什么的?它使用我的还是他们的?!
FIV

2
它只是删除冲突标志并使用合并文件的当前状态。通常,您将查看冲突并更正所有问题,然后将其标记为已解决。此问题中讨论的两个选项是仅通过使用您的版本或存储库中的版本来解决冲突的快捷方式选项。这样做会自动将其设置为已解决,而当您手动更正冲突时,则必须“将其标记为已解决”。
james2code

7

SVN命令行合并令人困惑,尤其是在将分支合并回主干时。“我的更改”是我在分支机构中所做的,但是根据SVN的说法,这是错误的。为了使事情复杂化,SVN在命令行帮助中将路径称为SOURCE,TARGET和HEAD。

如果从目录C:\ Project1 \ Trunk运行此合并语句,这是简单的答案

svn merge -r 60:68 C:\Project1\branches\UpdatesToProject1

“我的”是从(C:\ Project1 \ Trunk)运行SVN的目录。

“他们”是您要合并的目录,并在命令行上指定了该目录(C:\ Project1 \ branches \ UpdatesToProject1)

如果SVN给出了MINE和THEIRS所引用的路径,那将真的非常好。


2
这个答案应该更高。我们使用分支与主干,这变得非常混乱。
点点

6

BuzzAnn是正确的。 我的vs他们的是模棱两可的,因为存储库中的内容可能也是我的。明确的区别是存储库与本地副本


1

如果您接受存储库中的内容不再(唯一)是您的内容,则将其与所有具有访问权限的用户共享,那么可能会更清楚。

在这种情况下:

“他们”表示“存储库中团队的共享代码”“我的”表示(我)“工作副本”(可能在本地计算机上)

因此:“使用他们的”将您的工作副本替换为共享副本,放弃您本地计算机上存在的更改。“使用我的”决定工作副本中的代码是应该存储在存储库中的代码,丢弃存储库中当前的代码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.