Reputation: 26004
My question is based in part on the q/a @ TortoiseSVN cherrypicking instructions. I am able to cherry pick in git without any problems but in the current team we use SVN.
I have a commit on trunk that I want to copy over to a branch. I do not want to merge one branch into the other, or trunk into the branch, or the branch into the trunk or anything that includes copying the history of changes from one to the other.
I am using trortise SVN
.
Step 1: I go to the specific folder that deals with the changed files
Step 2: I select Merge
Step 3: Merge from a Range of Revisions
Supposedly the merge takes place but I see that the actual single java file in the directory has not been updated with the changes from trunk.
Additionally, the only indication that something changed is when I go to commit which indicated that a folder's properties have been changed. However, I am not interested in committing these as I have been instructed to not commit folder property changes.
This is very frustrating, some colleagues using intelli-j seem to be able to do this very easily ... especially committing specific files/changes from working code
to another branch for example.
Intelli-j
I did not like much the way tortoise svn
treated the selective merging
. I switched to intelli J
and outline how I do what I need to. I also realized it is not so much cherry picking
as selectively merging
. This means that also conflicts arise and need to be resolved. It is not as great as git
.
Following these two steps/screens, intelli-j asks you to resolve conflicts if they exist. It then creates a changelist with the specific files that were merged. You then commit.
Upvotes: 1
Views: 1488
Reputation: 23757
Tortoise did exactly what you told it to do; it only recorded the merge happened but didn't perform the actual merge. This is what the option does in your picture in step 4 (from the command-line tool's description of the option):
Enables a special mode of
svn merge
in which the specified merge operation is recorded in the local merge tracking information, but is not actually performed.
The way SVN records merges is to store info about the source URL and revsion in the svn:mergeinfo property for that file/folder, which is why you see a folder property modification.
If you had left this unchecked, the merge would have occurred as you expected it to.
Upvotes: 1