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

Re: [merge-tracking]:

From: Daniel Rall <dlr_at_collab.net>
Date: 2007-03-20 21:35:47 CET

On Mon, 19 Mar 2007, Paul Burba wrote:

> > -----Original Message-----
> > From: Paul Burba [mailto:pburba@collab.net]
> > Sent: Thursday, March 15, 2007 1:19 PM
> > To: SVN Dev; Daniel Rall
> > Cc: Kamesh Jayachandran
> > Subject: [merge-tracking]:
> >
> > Yesterday on IRC:
> >
> > [14:19] dlr: pburba: Is there any particular reason that we call
> > svn_client__record_wc_merge_info() twice in update_wc_merge_info()?
> > [14:20] dlr: pburba: It seems like we could combine the
> > passed-in merge info with the "merges" parameter, then record
> > the merge info in the WC.
> > [14:21] dlr: Seems like that would be more efficient (though
> > possibly less safe?) [14:26] pburba: dlr: I tried that, but I
> > cant recall what the problem was, looking at it now it seems
> > you should be right. Let me look while I'm working on this
> > test failure - I'm already in the code
> >
> > (For those of you playing at home, the first call to
> > svn_client__record_wc_merge_info() I added in
> > update_wc_merge_info() was to ensure that inherited mergeinfo
> > on a merge target actually got set on that target.
> > Previously to r23785 is was not, see
> > http://subversion.tigris.org/issues/show_bug.cgi?id=2733 and
> > http://subversion.tigris.org/issues/show_bug.cgi?id=2734)
> >
> > ~~~~~
> >
> > Dan,
> >
> > The problem with combining the hashes MERGES with
> > TARGET_MERGEINFO is that the two hashes represent somewhat
> > different things in
> > update_wc_merge_info() and are used quite differently:
> >
> > TARGET_MERGEINFO - This is the explicit or inherited
> > mergeinfo on target_wcpath. I only call
> > svn_client__record_wc_merge_info() if the mergeinfo is
> > inherited, since that implies there is no mergeinfo on
> > target_wcpath (hmmm, not so sure about this now but let's go
> > with it for a minute*).
> >
> > MERGES - This hash is created by
> > determine_merges_performed() in
> > do_merge()/do_single_file_merge(). The paths in this hash
> > will always be within the adm_access we opened for this merge
> > using the merge target. This is important because
> > update_wc_merge_info() iterates over this hash and calls
> > svn_client__record_wc_merge_info() on the paths it pulls out
> > of MERGES. If we add the mergeinfo from TARGET_MERGEINFO
> > into MERGES, svn_client__record_wc_merge_info() would try to
> > set merge info on a path that is outside of the adm_access
> > and we'd get SVN_ERR_UNVERSIONED_RESOURCE.
> >
> > Does that all seem reasonable (excepting the following)?
> >
> >
> > * Yup, that assumption totally wrong, if discontinuous ranges
> > are merged on a target only the last range will get set on
> > the target as it is now
> > -- my patch dumbly resets the inherited mergeinfo on the
> > target each time update_wc_merge_info() is called.
>
> Fixed in r23917.

From the look of the patch, this discussion thread is dead (?).

> > I just added a new test to merge-tests to check for this and
> > am working on a fix right now. I know, I should have added
> > it to an existing test, but the obvious candidate is
> > local_mergeinfo_elision_and_inheritance,
> > but that is getting awfully long (and hard to follow) and is
> > currently Xfail. Maybe down the line I'll roll it into that
> > test, but for now I'd rather have it separate and know it's working.

  • application/pgp-signature attachment: stored
Received on Tue Mar 20 21:36:07 2007

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