0

I don't fully understand the difference between the three Tortoise SVN merge options. My understanding is as follows:

  • Merge a range of revisions - use to apply changes to the Trunk to a Branch when the Branch is incomplete.
  • Reintegrate a branch - use when a branch is complete.
  • Merge two different trees - not sure

I have read this: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html. I have also read a few questions on here e.g. this: What are the differences between merging a range of revisions vs. reintegrate in SVN?.

It appears to me that they all do the same thing, but I am obviously wrong. Why are there three options?

The accepted answer to the question in the StackOverflow link suggests that Tortoise SVN uses a different approach when identifying the difference between a branch and the Trunk i.e. it does not use revision numbers (it just looks for differences between the files).

The documentation suggests to me that "Merge two different trees" is used instead of "Merge a range of revisions" if there are no version numbers i.e. simply look at the head. Surely you can do this with: "Merge a range of revisions"?

Community
  • 1
  • 1
w0051977
  • 15,099
  • 32
  • 152
  • 329

1 Answers1

0

The three different options are also known as:

  • sync or cherry-pick merge
  • reintegrate merge
  • 2-URL merge

The third option should be rarely used. In almost all cases, you should use the first two options. As you said, the first option is used to fetch changes from the parent branch, and the second option is used to reintegrate the feature branch into the parent branch (in other words: replace the parent branch with the feature branch.

The command line tool has a good documentation about these three options (four if you count the first one as two). The command line help is also available online:

nosid
  • 48,932
  • 13
  • 112
  • 139