What does the equal sign mean in TortoiseMerge?
Asked Answered
C

4

17

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

Cowherb answered 14/4, 2015 at 0:30 Comment(0)
E
13

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.

Entablature answered 28/12, 2015 at 21:55 Comment(2)
Great explanation. I've been pulling my hair out trying to figure this out. This should be the accepted answer.Linter
I wish they update the whole merging editor thing. A legend for the symbols is at least something that can be added easily. Especially for beginners or for people who don't use this on a regular basis it's a nightmare to dig through the whole Internet to find what some sodding symbols mean.Derbent
A
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

Austen answered 14/4, 2015 at 1:10 Comment(1)
Thanks, though what does this mean?Opinicus
I
1

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

Inert answered 14/4, 2015 at 0:59 Comment(0)
P
1

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.

Peggiepeggir answered 30/11, 2015 at 19:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.