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

Re: svn commit: r28942 - in trunk/subversion: include libsvn_client tests/cmdline

From: Karl Fogel <kfogel_at_red-bean.com>
Date: Fri, 18 Jan 2008 20:16:58 -0500

This is the mail promised here...

   http://subversion.tigris.org/servlets/ReadMsg?list=svn&msgNo=34070
   From: kfogel_at_tigris.org
   To: svn_at_subversion.tigris.org
   Subject: svn commit: r28949 - branches/reintegrate/subversion/tests/cmdline
   Date: Thu, 17 Jan 2008 19:12:01 -0800
   Message-Id: <200801180312.m0I3C1lq023629_at_svn2.sjc.collab.net>

...about r28942's possibly-wider-than-is-entirely-healthy scope. (See
also r28949 and the long comment introduced there.)

pburba_at_tigris.org writes:
> Log:
> Don't elide or inherit mergeinfo across a mixed revision working copy.
>
> * subversion/include/svn_mergeinfo.h: Add a blurb to the mergeinfo prop
> overview about the limitations of inheritance and elision in mixed rev WCs.
>
> * subversion/libsvn_client/mergeinfo.c
> (svn_client__get_wc_mergeinfo): Don't crawl to a parent looking for
> inherited mergeinfo if that parent is at a different working revision than
> the child.
>
> * subversion/libsvn_client/mergeinfo.h
> (svn_client__get_wc_mergeinfo,
> svn_client__get_wc_or_repos_mergeinfo ): Tweak doc strings.
>
> * subversion/tests/cmdline/merge_tests.py
> (mergeinfo_elision, no_mergeinfo_from_no_op_merge):
> * subversion/tests/cmdline/update_tests.py
> (mergeinfo_update_elision): Put some updates in before subtree merges so
> elision and inheritance can still occur.

> ==============================================================================
> --- trunk/subversion/include/svn_mergeinfo.h (original)
> +++ trunk/subversion/include/svn_mergeinfo.h Wed Jan 16 14:26:06 2008
> @@ -56,6 +56,12 @@
> * ranges. These non-inheritable ranges apply only to the path which they
> * are set on.
> *
> + * Due to Subversion's allowance for mixed revision working copies, both
> + * elision and inheritance within the working copy presume the path
> + * between a path and its nearest parent with mergeinfo is at the same
> + * working revision. If this is not the case then neither inheritance nor
> + * elision can occur.
> + *
> * The value of the @c SVN_PROP_MERGEINFO property is a string consisting of
> * a path, a colon, and comma separated revision list, containing one or more
> * revision or revision ranges. Revision range start and end points are

A little more explanation than "Due to Subversion's allowance for
mixed revision working copies..." might be in order :-). Also, just
for clarity, would it still mean the same thing if the second half of
that first sentence read like this:

   "...both elision and inheritance (in the working copy) presume that
   all intermediate directories between a target and its nearest
   parent with mergeinfo are at the same working revision."

?

More importantly, what exactly is the bug being prevented here? Is
there a known reproduction recipe?

I should probably save further comments for after I understand the
goal of this change better. I'm sure there was a good reason for it,
but it's going to be a big burden on users to have to type 'svn up'
all the time (or not get proper mergeinfo). r28949 shows that this
requirement may work in counterintuitive ways in practice, too.

-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-01-19 02:17:08 CET

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