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

Re: Subversion 1.6.7 on Dec. 16.

From: Paul Burba <ptburba_at_gmail.com>
Date: Thu, 17 Dec 2009 10:00:32 -0500

On Thu, Dec 17, 2009 at 8:48 AM, Philip Martin
<philip.martin_at_wandisco.com> wrote:
> Paul Burba <ptburba_at_gmail.com> writes:
>
>> Hyrum ran into a problem when reintegrating a branch back to 1.6.x
>> using the (at the time) latest 1.6.x client.  Here is the merge he did
>> (though this has a pegged source because the backport branch was
>> deleted):
>>
>> 1.6.x.>svn merge ^^/subversion/branches/1.6.x-r40452_at_891008 . --reintegrate
>> ..\..\..\subversion\libsvn_ra_neon\util.c:546: (apr_err=160013)
>> svn: '/repos/asf/!svn/bc/875961/subversion/branches/1.6.x' path not found
>>
>> Unfortunately this reintegrate works with 1.6.6, so we have a regression.
>>
>> I've traced the cause to r890993 (Reintegrate the 1.6.x-r889840
>> branch) which was my attempt to address the myriad of problems caused
>> by issue #3547 http://subversion.tigris.org/issues/show_bug.cgi?id=3547,
>> which converted all the mergeinfo in our repository from absolute to
>> relative merge source paths when we loaded it into the ASF repos.  I
>> haven't been able to fix the reintegrate problem Hyrum encountered,
>> heck it's not exactly clear to me what is going wrong, but I'm working
>> on it.
>
> As one who voted for r890993 I wouldn't object if it was reverted and
> we released without it.  It is a change in behaviour, so I guess that
> counts as a regression, but what seems to be happening is that the old
> code ignores some of the incorrect mergeinfo because the paths don't
> match.  It's possible that the new behaviour, getting an error when
> the mergeinfo is broken, is better.

Philip,

Short Story: I agree, calling this a regression was a bit premature.

Long Story:

Now that we correctly interpret mergeinfo with relative paths
(r890993) we actually *consider* mergeinfo with relative source paths.
 Where Hyrum ran into a problem there was some very dubious mergeinfo
on CHANGES in both the reintegrate source and the target:

On the target:

1.6.6>svn pg svn:mergeinfo ^^/subversion/branches/1.6.x/CHANGES_at_891108
/subversion/branches/1.5.x-r30215/CHANGES:866657
/subversion/branches/1.6.x-UNC-paths/CHANGES:872816-872890
/subversion/branches/1.6.x-dirent-basename/CHANGES:872475-872607
/subversion/branches/1.6.x-future-proof/CHANGES:880259-884209
/subversion/branches/1.6.x-issue3443/CHANGES:874942-875825
/subversion/branches/1.6.x-issue3519/CHANGES:880376-889934
/subversion/branches/1.6.x-no-svn_uri/CHANGES:872705-872760
/subversion/branches/1.6.x-r36178/CHANGES:874221-874229
/subversion/branches/1.6.x-r36252/CHANGES:872673-873133
/subversion/branches/1.6.x-r37622/CHANGES:874044-874338
/subversion/branches/1.6.x-r37627/CHANGES:874049-874273
/subversion/branches/1.6.x-r37857/CHANGES:874277-874281
/subversion/branches/1.6.x-r37953/CHANGES:876154-876416
/subversion/branches/1.6.x-r37988/CHANGES:874408-875242
/subversion/branches/1.6.x-r38000/CHANGES:875428-876112
/subversion/branches/1.6.x-r38222/CHANGES:874644-875236
/subversion/branches/1.6.x-r38572/CHANGES:875006-875011
/subversion/branches/1.6.x-r38799/CHANGES:875225-875262
/subversion/branches/1.6.x-r38927/CHANGES:875347-875521
/subversion/branches/1.6.x-r39557/CHANGES:876013-876252
/subversion/branches/1.6.x-r39887/CHANGES:876369-876411
/subversion/branches/1.6.x-r40452/CHANGES:880530-890996
/subversion/branches/1.6.x-r889840/CHANGES:889888-890974
/subversion/branches/bdb-reverse-deltas/CHANGES:868395-868874
/subversion/branches/diff-callbacks3/CHANGES:866404-867106
/subversion/branches/dont-save-plaintext-passwords-by-default/CHANGES:867073-867463
/subversion/branches/double-delete/CHANGES:866856-869315
/subversion/branches/file-externals/CHANGES:868124-869647
/subversion/branches/fs-rep-sharing/CHANGES:865381-870148
/subversion/branches/fsfs-pack/CHANGES:870062-870920
/subversion/branches/gnome-keyring/CHANGES:866903-867755
/subversion/branches/in-memory-cache/CHANGES:866174-867797
/subversion/branches/issue-2843-dev/CHANGES:867777-870524
/subversion/branches/issue-3000/CHANGES:868058,868061-868064,868066-868071,868073,868079
/subversion/branches/issue-3067-deleted-subtrees/CHANGES:869720-870429
/subversion/branches/issue-3148-dev/CHANGES:871538-871549
/subversion/branches/issue-3220-dev/CHANGES:868555-868571
/subversion/branches/issue-3334-dirs/CHANGES:871501-872212
/subversion/branches/kwallet/CHANGES:867130-867659
/subversion/branches/log-g-performance/CHANGES:867286-867377
/subversion/branches/merge-skips-obstructions/CHANGES:870870-870960
/subversion/branches/reintegrate-improvements/CHANGES:870198-870509
/subversion/branches/svn-mergeinfo-enhancements/CHANGES:866464-866540,866542-866633
/subversion/branches/svnpatch-diff/CHANGES:868250,868331
/subversion/branches/svnserve-logging/CHANGES:866173-867238
/subversion/branches/tc-issue-3334/CHANGES:871042-871118
/subversion/branches/tc-merge-notify/CHANGES:870362-870407
/subversion/branches/tc-resolve/CHANGES:870536-870584
/subversion/branches/tc_url_rev/CHANGES:870696-870828
/subversion/branches/tree-conflicts/CHANGES:864636-869499
/subversion/branches/tree-conflicts-notify/CHANGES:870271-870353
/subversion/trunk/CHANGES:836421-837700,875962-876471,876507,876571,880274-880275,880474,880525-880526,881905,884842,886164,886197,888979,889081,889840

On the source:

1.6.6>svn pg svn:mergeinfo ^^/subversion/branches/1.6.x-r40452/CHANGES_at_891008
subversion/branches/1.5.x-r30215/CHANGES:866657
subversion/branches/1.6.x-UNC-paths/CHANGES:872816-872890
subversion/branches/1.6.x-dirent-basename/CHANGES:872475-872607
subversion/branches/1.6.x-issue3443/CHANGES:874942-875825
subversion/branches/1.6.x-no-svn_uri/CHANGES:872705-872760
subversion/branches/1.6.x-r36178/CHANGES:874221-874229
subversion/branches/1.6.x-r36252/CHANGES:872673-873133
subversion/branches/1.6.x-r37622/CHANGES:874044-874338
subversion/branches/1.6.x-r37627/CHANGES:874049-874273
subversion/branches/1.6.x-r37857/CHANGES:874277-874281
subversion/branches/1.6.x-r37953/CHANGES:876154-876416
subversion/branches/1.6.x-r37988/CHANGES:874408-875242
subversion/branches/1.6.x-r38000/CHANGES:875428-876112
subversion/branches/1.6.x-r38222/CHANGES:874644-875236
subversion/branches/1.6.x-r38572/CHANGES:875006-875011
subversion/branches/1.6.x-r38799/CHANGES:875225-875262
subversion/branches/1.6.x-r38927/CHANGES:875347-875521
subversion/branches/1.6.x-r39557/CHANGES:876013-876252
subversion/branches/1.6.x-r39887/CHANGES:876369-876411
subversion/branches/bdb-reverse-deltas/CHANGES:868395-868874
subversion/branches/diff-callbacks3/CHANGES:866404-867106
subversion/branches/dont-save-plaintext-passwords-by-default/CHANGES:867073-867463
subversion/branches/double-delete/CHANGES:866856-869315
subversion/branches/file-externals/CHANGES:868124-869647
subversion/branches/fs-rep-sharing/CHANGES:865381-870148
subversion/branches/fsfs-pack/CHANGES:870062-870920
subversion/branches/gnome-keyring/CHANGES:866903-867755
subversion/branches/in-memory-cache/CHANGES:866174-867797
subversion/branches/issue-2843-dev/CHANGES:867777-870524
subversion/branches/issue-3000/CHANGES:868058,868061-868064,868066-868071,868073,868079
subversion/branches/issue-3067-deleted-subtrees/CHANGES:869720-870429
subversion/branches/issue-3148-dev/CHANGES:871538-871549
subversion/branches/issue-3220-dev/CHANGES:868555-868571
subversion/branches/issue-3334-dirs/CHANGES:871501-872212
subversion/branches/kwallet/CHANGES:867130-867659
subversion/branches/log-g-performance/CHANGES:867286-867377
subversion/branches/merge-skips-obstructions/CHANGES:870870-870960
subversion/branches/reintegrate-improvements/CHANGES:870198-870509
subversion/branches/svn-mergeinfo-enhancements/CHANGES:866464-866540,866542-866633
subversion/branches/svnpatch-diff/CHANGES:868250,868331
subversion/branches/svnserve-logging/CHANGES:866173-867238
subversion/branches/tc-issue-3334/CHANGES:871042-871118
subversion/branches/tc-merge-notify/CHANGES:870362-870407
subversion/branches/tc-resolve/CHANGES:870536-870584
subversion/branches/tc_url_rev/CHANGES:870696-870828
subversion/branches/tree-conflicts/CHANGES:864636-869499
subversion/branches/tree-conflicts-notify/CHANGES:870271-870353
subversion/trunk/CHANGES:836421-837700,872307-876471,876507,876571,880525-880526

What you want to notice here is the mergeinfo
'subverison/trunk/CHANGES:836421-837700', this actually predates the
creation of subversion/trunk/CHANGES, which was in r841356. How this
got into our repos in the first place is a good question, and one I am
trying to track down, see
http://mail-archives.apache.org/mod_mbox/subversion-dev/200912.mbox/browser,
but I don't think it should impact the decision to roll 1.6.7. There
may be another bug here, but since the offending mergeinfo was created
a month prior to 1.6.6 we are not dealing with a regression.

Anyway, onto the "regression". A 1.6.6 client, not realizing that the
merge source "subversion/trunk/CHANGES" == "/subversion/trunk/CHANGES"
simply ignores the relative pathed mergeinfo. But with r890993 the
relative path is interpreted as an absolute path and so the
reintegrate code thinks that we have done some merge(s) from trunk to
the 1.6.x-r889840 branch, but the code doesn't handle the case where
that mergeinfo describes non-existent path-revs, ultimately producing
the error that Hyrum saw.

I've hacked a crude fix to ignore mergeinfo on the reintegrate source
that predates the common ancestor of the reintegrate target and
source. This seems to work fine, though it still needs some more
testing. Regardless, I don't think this is a true regression, just a
new bug, and as such, not something that should hold up 1.6.7.

Some final thoughts:

If we revert r890993, we will have different problems with
reintegrate, namely that merges that really were done from 'trunk' to
'some-branch' will be ignored if we try to reintegrate 'some-branch'
back to 'trunk' and the reintegrate merge will fail/break. Of course
this won't matter much since the merge/mergeinfo subcommands, on our
own repository anyway (and any other bitten by issue #3547), will
effectively be useless with a 1.6.7 client, see
http://mail-archives.apache.org/mod_mbox/subversion-dev/200912.mbox/browser.

Paul
Received on 2009-12-17 16:01:02 CET

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.