What does the equal sign mean in TortoiseMerge?

℡╲_俬逩灬. 提交于 2020-06-27 07:02:24

问题


In TortoiseMerge document, the equal sign means :

A change has been undone by reverting to the original content of the line.

The panel shows the differences between Mines or Theirs and base, my questions are :

If something is removed, then minus sign can be used. If something is added, then add sign can be used. Why is the equal sign needed? What does the description "the original content of the line" mean?

enter image description here


回答1:


Mike's answer is correct. To elaborate a bit, this is an artifact of the way subversion merges changes. It applies all changes that occurred between the merge source and destination, regardless of which changes you told it to merge, and then "undoes" any changes that you didn't specify.

Here's an example: I branch a file from my trunk at rev 1. I change line 100 in my trunk version and commit it as rev 2. Then I change line 200 and commit that as rev 3. If I then go to merge only rev 3 into my branch, I will see one of these equals symbols at line 100 because subversion merged rev 2, merged rev 3, and then un-merged rev 2. Since the user specified only to merge the changes in rev 3, the change in rev 2 is NOT included in the merge.




回答2:


With reference to tortoise's docs, it means "A change has been undone by reverting to the original content of the line."

Line Status Icons Chapter 3. Using TortoiseMerge

http://tortoisesvn.net/docs/nightly/TortoiseMerge_en/tmerge-dug-icons.html




回答3:


I'm pretty sure this means that both files made identical changes independently.




回答4:


Going off of the documentation reference given by Randy D. Binondo and prior experience with VCSs, it appears to mean that the line change would have been made with a full merge, but was automatically reverted for some reason (e.g., when merging a limited set of revisions from a branch rather than all revisions).

This makes sense since the prior revisions may be required in order for Subversion to build a proper diff for the merge. I strongly suspect that Subversion compiles all diffs for each relevant branch starting from the revisions' common ancestor and then attempts to revert the undesired diffs, leading to the behavior which is indicated by the equals-sign symbol. I've yet to read the Version Control with Subversion book, but that may provide more insight to this as well.

The symbol certainly does not mean that both files made the same changes independently, as Phonon suggested. A quick test proves this.



来源:https://stackoverflow.com/questions/29617247/what-does-the-equal-sign-mean-in-tortoisemerge

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!