Merge two branch revisions using Subversion
SvnSvn Problem Overview
I'd like to merge all the changes that took place between rev 10 & the HEAD rev on http://url-of-branch-a and apply them to http://url-of-branch-b.
Something like...
svn merge -r 10:HEAD http://url-of-branch-a
Is this possible? If so, what is the syntax?
I am running the SVN client from the unix command line. The SVN client version is 1.4
EDIT: Yes, my specific solution was...
- change directory to the location of my working copy that wants to receive the changes (branch-b)
- svn merge -r 10:HEAD http://url-of-branch-a
This merges the changes from 'branch-a' into 'branch-b'
Svn Solutions
Solution 1 - Svn
The process is as follows:
- Establish a working copy of branch B (
svn checkout http://branch-b
) - Merge changes from branch A into working copy of B (
svn merge -r 10:HEAD http://branch-a .
) - Commit (after resolving conflicts) working copy B to branch b (
svn commit
)
Check the man page (help file) for svn merge semantics. It shows you that svn merge always dumps the results into a working copy.
Check out the SVNBook for all the details.
Solution 2 - Svn
Checkout URL A. Use SVN merge to merge URL B to your working copy of A. Commit A.
Or vice versa of course :)
Solution 3 - Svn
Mostly confuse merge
by trying to do in svn repo, we can not directly merge to svn repo, we can merge to working copy of local machine as follows:
-
This working copy should be
destination URL
of merge(i.e. checkout destination). -
merge working copy with
source URL
of merge. -
commit
to destination.
Best Practice : Merge In , Merge Out.