[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: need help merging the dont-save-plaintext-... branch into trunk

From: Mark Phippard <markphip_at_gmail.com>
Date: Tue, 6 May 2008 11:28:07 -0400

On Tue, May 6, 2008 at 10:55 AM, Stefan Sperling <stsp_at_elego.de> wrote:

> can someone help me with merging the dont-save-plaintext-... branch
> back into trunk?
>
> This happens when I try to reintegrate the branch:
>
> $ svn merge --reintegrate https://svn.collab.net/repos/svn/branches/dont-save-plaintext-passwords-by-default
> subversion/libsvn_client/merge.c:5487: (apr_err=195016)
> svn: Cannot reintegrate from 'https://svn.collab.net/repos/svn/branches/dont-save-plaintext-passwords-by-default' yet:
> Some revisions have been merged under it that have not been merged
> into the reintegration target; merge them first, then retry.
> $ svn pg svn:mergeinfo
> /branches/1.5.x-r30215:30238
> /branches/diff-callbacks3:29985-30687
> /branches/log-g-performance:30867-30958
> /branches/svn-mergeinfo-enhancements:30045-30214
> /branches/svnserve-logging:29754-30819
>
> The mergeinfo on the branch is as follows:
>
> $ svn pg svn:mergeinfo
> /branches/1.5.x-r30215:30238
> /branches/diff-callbacks3:29985-30687
> /branches/log-g-performance:30867-30958
> /branches/svn-mergeinfo-enhancements:30045-30214
> /branches/svnserve-logging:29754-30819
> /trunk:30654-31042
>
> I don't see why it's giving me the error.
> The mergeinfo is matching up just fine as far as I can tell.
> I've synced up the branch to latest trunk, and there was no
> commit between me doing the syncing and trying to merge.
>
> What am I doing wrong?

You are not doing anything wrong, these are problems we are going to
need to look for solutions for.

The --reintegrate option was added to make it easier for a user to do
a 2-URL merge which is the best option we have available for doing a
"reflective merge". In other words, merging a feature branch back to
trunk. The --reintegrate option figures out the right 2-URL merge
syntax you should use and then executes it for you. However, these
types of merges are also a little dangerous (kind of like switch -- it
will just do what you tell it) so it was decided that the reintegrate
code should do some error checking and not do the 2-URL merge if there
are any "errors".

Some of these checks are fairly simple, such as not having any local
modifications, switched children, or shallow working copies. The most
difficult, is that it also makes sure there is no "subtree mergeinfo"
in the target you are merging from. That is the problem you are
running into as we have accumulated a lot of subtree mergeinfo in our
folders already.

So to answer your question, you need to resort to the 2-URL merge syntax:

$ cd trunk-wc
$ svn merge https://svn.collab.net/repos/svn/trunk@LAST-SYNC-REV
https://svn.collab.net/repos/svn/branches/dont-save-plaintext-passwords-by-default
.

We need to look into a couple things:

1) Are there cases when copies/renames are performed where we do not
have to write mergeinfo? I think we can do this and that would help
avoid this problem.

2) What improvements can be made to the reintegrate option?

a) the error message could be better
b) the error message could contain some details about the paths with mergeinfo
c) maybe the checking could be more intelligent. For example, what if
the subtree mergeinfo was not changed on tghe branch?

-- 
Thanks
Mark Phippard
http://markphip.blogspot.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-05-06 17:28:20 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.