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

Re: Re-merge a change from own history - corrupts svn:mergeinfo

From: Karl Fogel <kfogel_at_red-bean.com>
Date: Thu, 27 Mar 2008 14:53:03 -0400

(Quoting your whole post, as all the context is important here.)

Julian Foad <julianfoad_at_btopenworld.com> writes:
> The following scenarios run on a Subversion trunk_at_30056 WC result in
> wrong or corrupt text in the svn:mergeinfo property.
>
> Scenario 1: merge a single change from the history of a particular
> file; request no merge-tracking; request no textual change to be made
> if it conflicts. (This change was made in 26169, amended in 26178,
> reverted in 26181, and more recent changes to the file conflict with
> the re-application of the original change.)
>
> [[[
> $ svn propget svn:mergeinfo subversion/tests/cmdline/merge_tests.py
>
> $ svn merge --ignore-ancestry --accept=mine-full -c26169
> subversion/tests/cmdline/merge_tests.py
> subversion/tests/cmdline/merge_tests.py
> --- Merging r26169 into 'subversion/tests/cmdline/merge_tests.py':
> U subversion/tests/cmdline/merge_tests.py
>
> $ svn propget svn:mergeinfo subversion/tests/cmdline/merge_tests.py
> mergeinfo:26169
> ]]]
>
> Scenario 2: same, but request two changes at once.
>
> [[[
> $ svn propget svn:mergeinfo subversion/tests/cmdline/merge_tests.py
>
> $ svn merge --ignore-ancestry --accept=mine-full -c26169,26178
> subversion/tests/cmdline/merge_tests.py
> subversion/tests/cmdline/merge_tests.py
> --- Merging r26169 into 'subversion/tests/cmdline/merge_tests.py':
> U subversion/tests/cmdline/merge_tests.py
> --- Merging r26178 into 'subversion/tests/cmdline/merge_tests.py':
> U subversion/tests/cmdline/merge_tests.py
>
> $ svn propget svn:mergeinfo subversion/tests/cmdline/merge_tests.py
> <?\173:26178
> mergeinfo:26169
> ]]]
>
> Problems:
>
> * svn:mergeinfo is touched despite the "--ignore-ancestry" option
> which I though was supposed to suppress tracking.
>
> * svn:mergeinfo gets the wrong source path: "mergeinfo" instead of
> "/trunk/subversion/tests/cmdline/merge_tests.py".
>
> * svn:mergeinfo gets corrupted (non-UTF8) text in it in the second scenario.
>
> The last two problems may just be follow-on symptoms of the first.

I certainly agree there is a bug here, given that svn:mergeinfo is being
corrupted. However, I'm not sure --ignore-ancestry does what you think
it does. Its help just says:

  --ignore-ancestry : ignore ancestry when calculating merges

Nothing there about not *recording* mergeinfo for this 'merge' command;
rather, it's talking about how it selects which changes to merge.

What you're thinking of would be a sort of opposite of the --record-only
flag: a '--no-record' flag, which AFAIK we don't have (should we?).

I do suspect the last two problems are the same problem under the hood.
Initial debugging has revealed a separate problem, which I'd like to
post about in a separate thread (or go discuss in IRC), so leaving off
here for now.

-Karl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-03-27 19:53:22 CET

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