Sunny
Sunny

Reputation: 1983

SVN Merge Trunk to a Branch

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)?

Upvotes: 4

Views: 3180

Answers (3)

Álvaro González
Álvaro González

Reputation: 146603

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

Upvotes: 1

Michael Hackner
Michael Hackner

Reputation: 8645

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

Upvotes: 6

Matthew Steeples
Matthew Steeples

Reputation: 8088

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

Upvotes: 2

Related Questions