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

Re: [random line of thought] Hiding svn:mergeinfo

From: Paul Burba <ptburba_at_gmail.com>
Date: Wed, 18 May 2011 10:40:23 -0400

On Wed, May 18, 2011 at 9:59 AM, Mark Phippard <markphip_at_gmail.com> wrote:
> On Wed, May 18, 2011 at 2:55 AM, Daniel Shahaf <d.s_at_daniel.shahaf.name> wrote:
>> Mike remarked that svn:mergeinfo should never have been user-visible...
>>
>> So: what if we made svn_property_kind(NULL, SVN_PROP_MERGEINFO) return
>> a value other than svn_prop_regular_kind, at least when both server and
>> client were ≥1.7?  Would that have any useful side-effects?
>>
>> [I suspect it might, but want to hear others' thoughts before laying out my own.]
>
> I have said this before, but having thought about this a lot, I do not
> agree with Mike's original remark.  In the design of Subversion, I
> think we had to make this user-visible.  Otherwise, we are not letting
> the user see the big picture.
>
> For example, suppose we leave this in properties and just hide them
> everywhere.  This would be bad, because users could make mistakes in
> how they commit and not have the property changes committed.  We could
> special-case this property and always commit it, even if the user does
> a commit anchored lower in the tree.  This would also be bad though.
> Imagine you merge something into a WC and while you are working on
> resolving conflicts you want to make some other change.  Maybe you
> have to fix a bug or a doc.  Today, you can change an unrelated file
> in your WC and commit it.  But imagine if we saw the commit and
> silently included the pending mergeinfo in the same commit?
>
> I think many of these problems would exist in our design even if we
> did not use the existing versioned properties to store the info.  I
> think we would need to introduce a lot of new concepts and
> restrictions to support this feature in a way that was invisible.  For
> example, I think a WC would need to know when there was an uncommitted
> merge in the WC and disallow any commit that did not include the
> entire working copy.  This might have been a good design change to
> make, but it is probably too late.
>
> I still think the best change is the one Paul made that will be in 1.7
> and that is to be better about when we need to update subtree
> mergeinfo.

In case what Mark is referring to isn't clear: In 1.7 if our merge
target has pre-existing subtree mergeinfo, we no longer
unconditionally record mergeinfo on each of these subtrees to describe
a merge. Only subtrees which are touched by the merge are updated.

Paul

> The next best change would be the ones Hyrum has in a
> branch and that is to allow a user to choose to ignore those
> properties in certain commands like diff and log.
>
> --
> Thanks
>
> Mark Phippard
> http://markphip.blogspot.com/
Received on 2011-05-18 16:40:52 CEST

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