[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:59:43 CET

On Thu, 15 Mar 2007, Paul Burba wrote:

> 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.

Paul's description of the merge info structures is accurate. What I
was suggesting was an occassional optimization, one that would add a
chunk of somewhat complicated code (a questionable trade-off). After
discussion on IRC, we decided to back-burner this one in favor of
working on functional issues.

  • application/pgp-signature attachment: stored
Received on Tue Mar 20 22:00:02 2007

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