keeping branch up to date with mainline
Giovanni Bajo
rasky@develer.com
Tue Jan 10 12:43:00 GMT 2006
Bernd Schmidt <bernds_cb1@t-online.de> wrote:
> Just tried these instructions on the reload-branch, and it doesn't
> appear to be working as documented:
>
> bernds@telcontar:/local/src/egcs/reload-branch> svnmerge.py init
> property 'svnmerge-integrated' set on '.'
This was the correct command to do, assuming that you *never* merged your
branch since its original creation. I inspected the history of the branch
(through 'svn log') and it seems this assumption is correct. So let's spot
the problem...
> bernds@telcontar:/local/src/egcs/reload-branch> svn status
> ? svnmerge-commit-message.txt
> M .
> bernds@telcontar:/local/src/egcs/reload-branch> cat
> svnmerge-commit-message.txt
> Initialized merge tracking via "svnmerge" with revisions "1-96656" from
>
svn+ssh://gcc.gnu.org/svn/gcc/branches/CYGNUS/libjava/testsuite/libjava.lang
/Invoke_1.out
> bernds@telcontar:/local/src/egcs/reload-branch> svn diff
You see that svnmerge believes that the head of your branch is
"svn+ssh://gcc.gnu.org/svn/gcc/branches/CYGNUS/libjava/testsuite/libjava.lan
g/Invoke_1.out". This is obviously incorrect: it is a branch of the trunk,
so this message should say "svn+ssh://gcc.gnu.org/svn/gcc/trunk" instead.
This appears to be a bug in svnmerge: it is confused by the weird history
created by cvs2svn. Look at the confusing output of "svn log -v -r96657
svn://gcc.gnu.org/svn/gcc/branches/reload-branch", which is the commit that
created the branch. It should just list "A /branches/reload-branch (from
/trunk:96656)" and instead it contains many other entries.
Anyway, I have fixed the bug in svnmerge and attached a new version for you
in this mail. I have verified that running "svnmerge init" in a checkout of
the reload-branch now does the right thing. Before doing that, remember to
cleanup the wrong commit you did before: you can remove the svnmerge
property, with this command: "svn propdel svnmerge-integrated .", followed
by a commit.
For curiosity: you could have worked around this auto-detection problem by
manually specifying the head of the branch and the branch point: "svnmerge
init /trunk -r1-96656".
> (The "commit -F/rm" combination seems a bit arcane to me, what exactly
> am I doing there?)
Nothing special. The svnmerge tool *never* commits anything on your behalf:
it always modifies your working copy and lets you review what it did and do
the actual commit. To ease your work, it generates a simple commit message
in a text file. When you say "svn ci -F svnmerge-commit-message.txt", you're
just telling svn to grab the commit message from the text file that svnmerge
generated for you. Then, you can simply remove the file as it's useless.
Feel free to mail me with other svnmerge problems, I'm happy to provide you
with support.
--
Giovanni Bajo
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: svnmerge.py
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20060110/bb325823/attachment.ksh>
More information about the Gcc
mailing list