How can I reintegrate an already reintegrated and rolled-back branch in SVN?
We did following ugly thing:
So, how can we achieve another reintegrate
?
What did I try so far?
- well, the obvious merge - which fails brutally!
- creating a patch and apply it to
trunk
(which should work, as it diffs the files with no svn only...) - creating another bra开发者_如何学运维nch @ trunk r101 and merge all the changes from first branch - fails brutally :)
edit:
merge-infos for trunk do not show any merged revisions of the desired branch (as I've rolled them back with r101)
This should be just a special case of a problem I had: Undo reverse merge in Subversion, or double-reverse merge
I'd recommend trying to just rollback r101.
EDIT
Okay, let's say your repo is set up as follows:
svnadmin create mergetest
svn co file:///home/adam/tmp/mergetest mergetest-co
cd mergetest-co/
svn mkdir trunk
svn mkdir branches
svn ci -m "Initial setup"
echo "Hello, world!" > trunk/test
svn add trunk/test
svn ci -m "Initial trunk changes"
svn cp file:///home/adam/tmp/mergetest/trunk file:///home/adam/tmp/mergetest/branches/branch -m "Creating branch"
svn up
echo "Change on trunk." >> trunk/test
svn ci -m "Change on trunk"
svn merge file:///home/adam/tmp/mergetest/trunk branches/branch
svn ci -m "Merge from trunk"
echo "Change on branch." >> branches/branch/test
svn ci -m "Change on branch"
svn up
svn merge --reintegrate file:///home/adam/tmp/mergetest/branches/branch trunk
svn ci -m "Reintegrate merge" # Revision 7
svn merge -c -7 trunk trunk
svn ci -m "Undoing reintegration" # Revision 8
At this point, undoing the undo works: svn merge -c -8 trunk trunk
. Also, reintegrating again works: svn merge --reintegrate file:///home/adam/tmp/mergetest/branches/branch trunk
. Since your reintegrate was rolled back, there should be no problem with simply reintegrating again. If it doesn't work, my setup must not match your setup, so some other detail must be the problem.
精彩评论