Question

I have two branches. One is created for may month release and another created for august month release.

August branch need to updated with May changes until May branch is locked for making changes.

I am using 'Merge range of revision' option in tortoise. In the revision range, do i need to give 'HEAD' only, as i am going to merge the latest May to August.

Do i need to specify the range from my previous retrofit number? For example, I retrofitted 8123 version of May to August. Now do i need to specify 8123-Head or just HEAD.

What is the difference.?

Was it helpful?

Solution

If you select only HEAD, than any changes in any revisions prior to HEAD will not be included in the merge. You either need to select ALL the revisions in the branch whose changes are not yet included in your branch, or leave the range specifier empty to allow SVN to figure out which revisions to merge.

Edited to add example

When you do a "range of revisions" merge, you are picking individual CHANGES to cherry-pick over into your merge destination. If you say "merge HEAD" you are not saying "merge all changes up through HEAD", you are saying "merge only the specific change that happened in the very last revision on that branch". Consider a trunk with revision 122; a MayBranch with revisions 123, 124, and 125; and an AugustBranch with revisions 126 and 127. Both branches were copied from trunk revision 122.

You want all three changes on the MayBranch–123, 124, and 125–to be merged into your AugustBranch. If you select all three revisions, or leave the revision specifier empty, this will happen. The merge will use revision 122 on trunk as the BASE, with 125 on MayBranch as source revision, and 127 on AugustBranch as destination revision.

If instead you select HEAD as the revision to merge, SVN will use revision 124 on MayBranch as the BASE, with 125 as the source revision and 127 as destination as before. Since BASE is now the place where revision 125's changes were started from, you only get the changes that specifically happened in revision 125.

The final result is as if you had exported only revision 125 on MayBranch as a diff, and then applied that diff to the AugustBranch. Except this is done with merge tracking information included so that SVN knows how to get the whole branch automatically later if you like.

OTHER TIPS

If you want to merge all changes since last merge, let "Revison range to merge" empty:

enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top