tags:

views:

51

answers:

3

Assume the following scenario.

I have two files A.cpp and B.cpp in trunk. At revision 50 I create an experimental branch called X. Therefore at revision 50 both trunk and branch X are the same.

I continue to work on trunk and add C.cpp and D.cpp. I then realize that there is a bug in A.cpp and so I fix the bug.

Now my question is how do I send the updated A.cpp to branch X without sending the other files(B.cpp C.cpp D.cpp)?

+1  A: 

Depending on what platform you are on depends on how this is shown in the interface, but you should just be able to right click on the file and select merge, or deselect the files that you do not want to merge in the interface.

If you are working on a command line environment then you should just be able to run svn merge and type in the filename.

More details (although old I believe they're still relevant) can be found here

Matthew Steeples
+1  A: 

In a working copy of the branch, merge the revision that updated A.cpp. Alternatively, if you have no local branch changes you need to preserve, you could just svn copy A.cpp from trunk and overwrite your local A.cpp.

Example

cd workingCopyOfX
svn merge -r50:51 http://my.repo.com/trunk/A.cpp

assuming the fix was made in r51

Michael Hackner
A: 

There're probably many ways but I find it easier to do it this way:

  1. Go to a fresh (unmodified) working copy of target (X branch)
  2. Merge the whole revision from source (trunk) into your working copy
  3. Inspect local changes: revert unwanted changed files and maybe do some manual edits in wanted files
  4. When you're happy, commit
Álvaro G. Vicario