On Wed, Nov 12, 2008 at 10:01 AM, Mark Phippard <markphip_at_gmail.com> wrote:
> On Wed, Nov 12, 2008 at 9:59 AM, C. Michael Pilato <cmpilato_at_collab.net> wrote:
>> Mark Phippard wrote:
>>> On Fri, Nov 7, 2008 at 7:10 PM, Paul Burba <ptburba_at_gmail.com> wrote:
>>>
>>>> REALLY FIXING THE PROBLEM:
>>>>
>>>> Stopping all the WC-to-WC production of needless explicit mergeinfo
>>>> would go a longggg way to avoiding this, but that doesn't help those
>>>> (including us) with lots of historical subtree mergeinfo. More and
>>>> more I think that copy and move (all, not just WC-to-WC) should never
>>>> produce mergeinfo on the destination *unless* the source has it. It
>>>> can't be worse than what we deal with now...
>>>
>>> I propose we just do this ... now. Let's just rip this code out of WC
>>> to WC copy. Do not create mergeinfo when copying stuff. Forget about
>>> making it smarter, let's just stop doing it. The problems we have
>>> created by doing this are far worse than the theoretical problems we
>>> could prevent by getting it right.
>>>
>>> Ripping this out will make our product better now and reduce user
>>> frustration. If the theoretical problems turn into real problems and
>>> if someone is motivated enough to put this code back then they can do
>>> so in a way that gets it right.
>>>
>>> Let's stop the madness. If this one feature had not been put into
>>> 1.5, then most of the problems relating to mergeinfo handling we
>>> complain about would not even exist.
>>
>> At the risk of having you show up on my doorstep in a few hours wielding a
>> battle axe, I'd suggest:
>>
>> 1. making 'svn copy WC WC' be mergeinfo-ignorant,
>> 2. having that type of invocation print a warning about the fact
>> that mergeinfo wasn't honored, and
>> 3. add -g as the flag to calculate mergeinfo *with full repository
>> access*?
>
> My only objection is that we have said this at least 100 times now. I
> am saying lets do #1 .. today. If someone cares enough to do #2 and 3
> it will get done.
Nothing but +1s on #1, so I am going to do this, and soon, unless
someone raises an objection.
Re #3, so this would be the equivalent of a REPOS-to-WC copy right?
Unfortunately that is often just as ugly as the WC-to-WC copy. Taking
our own trunk as an example, there is some explicit mergeinfo on
subversion/libsvn_subr:
C:\SVN\src-trunk-3>svn pg svn:mergeinfo -Rv subversion\libsvn_subr
Properties on 'subversion\libsvn_subr':
svn:mergeinfo
/branches/1.5.x-r30215/subversion/libsvn_subr:30238
/branches/bdb-reverse-deltas/subversion/libsvn_subr:31976-32455
/branches/diff-callbacks3/subversion/libsvn_subr:29985-30687
/branches/dont-save-plaintext-passwords-by-default/subversion/libsvn_subr:30654-31044
/branches/double-delete/subversion/libsvn_subr:30437-32896
/branches/file-externals/subversion/libsvn_subr:31705-33228
/branches/fs-rep-sharing/subversion/libsvn_subr:28962-33729
/branches/gnome-keyring/subversion/libsvn_subr:30484-31336
/branches/in-memory-cache/subversion/libsvn_subr:29755-31378
/branches/issue-2843-dev/subversion/libsvn_subr:31358-34105
/branches/issue-3000/subversion/libsvn_subr:31639,31642-31645,31647-31652,31654,31660
/branches/issue-3067-deleted-subtrees/subversion/libsvn_subr:33301-34010
/branches/issue-3220-dev/subversion/libsvn_subr:32136-32152
/branches/kwallet/subversion/libsvn_subr:30711-31240
/branches/log-g-performance/subversion/libsvn_subr:30867-30958
/branches/reintegrate-improvements/subversion/libsvn_subr:33779-34090
/branches/svn-mergeinfo-enhancements/subversion/libsvn_subr:30045-30214
/branches/svnpatch-diff/subversion/libsvn_subr:31831,31912
/branches/svnserve-logging/subversion/libsvn_subr:29754-30819
/branches/tc-merge-notify/subversion/libsvn_subr:33943-33988
/branches/tree-conflicts/subversion/libsvn_subr:28217-33080
/branches/tree-conflicts-notify/subversion/libsvn_subr:33852-33934
Let's make a WC-to-WC copy of one of libsvn_subr's children with no
explicit mergeinfo:
C:\SVN\src-trunk-3>svn copy subversion\libsvn_subr\auth.c
subversion\libsvn_subr\auth_wc_to_wc_copy.c
A subversion\libsvn_subr\auth_wc_to_wc_copy.c
As this WC is at a uniform revision the newly added file get's
explicit mergeinfo equal to what its copy source inherited:
C:\SVN\src-trunk-3>svn pg svn:mergeinfo -v
subversion\libsvn_subr\auth_wc_to_wc_copy.c
Properties on 'subversion\libsvn_subr\auth_wc_to_wc_copy.c':
svn:mergeinfo
/branches/1.5.x-r30215/subversion/libsvn_subr/auth.c:30238
/branches/bdb-reverse-deltas/subversion/libsvn_subr/auth.c:31976-32455
/branches/diff-callbacks3/subversion/libsvn_subr/auth.c:29985-30687
/branches/dont-save-plaintext-passwords-by-default/subversion/libsvn_subr/auth.c:30654-31044
/branches/double-delete/subversion/libsvn_subr/auth.c:30437-32896
/branches/file-externals/subversion/libsvn_subr/auth.c:31705-33228
/branches/fs-rep-sharing/subversion/libsvn_subr/auth.c:28962-33729
/branches/gnome-keyring/subversion/libsvn_subr/auth.c:30484-31336
/branches/in-memory-cache/subversion/libsvn_subr/auth.c:29755-31378
/branches/issue-2843-dev/subversion/libsvn_subr/auth.c:31358-34105
/branches/issue-3000/subversion/libsvn_subr/auth.c:31639,31642-31645,31647-31652,31654,31660
/branches/issue-3067-deleted-subtrees/subversion/libsvn_subr/auth.c:33301-34010
/branches/issue-3220-dev/subversion/libsvn_subr/auth.c:32136-32152
/branches/kwallet/subversion/libsvn_subr/auth.c:30711-31240
/branches/log-g-performance/subversion/libsvn_subr/auth.c:30867-30958
/branches/reintegrate-improvements/subversion/libsvn_subr/auth.c:33779-34090
/branches/svn-mergeinfo-enhancements/subversion/libsvn_subr/auth.c:30045-30214
/branches/svnpatch-diff/subversion/libsvn_subr/auth.c:31831,31912
/branches/svnserve-logging/subversion/libsvn_subr/auth.c:29754-30819
/branches/tc-merge-notify/subversion/libsvn_subr/auth.c:33943-33988
/branches/tree-conflicts/subversion/libsvn_subr/auth.c:28217-33080
/branches/tree-conflicts-notify/subversion/libsvn_subr/auth.c:33852-33934
Now do a REPOS-to-WC copy of the same file:
C:\SVN\src-trunk-3>svn copy
http://svn.collab.net/repos/svn/trunk/subversion/libsvn_subr/auth.c
subversion\libsvn_subr\auth_repos_to_wc_copy.c
A subversion\libsvn_subr\auth_repos_to_wc_copy.c
It still gets the same explicit mergeinfo!
C:\SVN\src-trunk-3>svn pg svn:mergeinfo -v
subversion\libsvn_subr\auth_repos_to_wc_copy.c
Properties on 'subversion\libsvn_subr\auth_repos_to_wc_copy.c':
svn:mergeinfo
/branches/1.5.x-r30215/subversion/libsvn_subr/auth.c:30238
/branches/bdb-reverse-deltas/subversion/libsvn_subr/auth.c:31976-32455
/branches/diff-callbacks3/subversion/libsvn_subr/auth.c:29985-30687
/branches/dont-save-plaintext-passwords-by-default/subversion/libsvn_subr/auth.c:30654-31044
/branches/double-delete/subversion/libsvn_subr/auth.c:30437-32896
/branches/file-externals/subversion/libsvn_subr/auth.c:31705-33228
/branches/fs-rep-sharing/subversion/libsvn_subr/auth.c:28962-33729
/branches/gnome-keyring/subversion/libsvn_subr/auth.c:30484-31336
/branches/in-memory-cache/subversion/libsvn_subr/auth.c:29755-31378
/branches/issue-2843-dev/subversion/libsvn_subr/auth.c:31358-34105
/branches/issue-3000/subversion/libsvn_subr/auth.c:31639,31642-31645,31647-31652,31654,31660
/branches/issue-3067-deleted-subtrees/subversion/libsvn_subr/auth.c:33301-34010
/branches/issue-3220-dev/subversion/libsvn_subr/auth.c:32136-32152
/branches/kwallet/subversion/libsvn_subr/auth.c:30711-31240
/branches/log-g-performance/subversion/libsvn_subr/auth.c:30867-30958
/branches/reintegrate-improvements/subversion/libsvn_subr/auth.c:33779-34090
/branches/svn-mergeinfo-enhancements/subversion/libsvn_subr/auth.c:30045-30214
/branches/svnpatch-diff/subversion/libsvn_subr/auth.c:31831,31912
/branches/svnserve-logging/subversion/libsvn_subr/auth.c:29754-30819
/branches/tc-merge-notify/subversion/libsvn_subr/auth.c:33943-33988
/branches/tree-conflicts/subversion/libsvn_subr/auth.c:28217-33080
/branches/tree-conflicts-notify/subversion/libsvn_subr/auth.c:33852-33934
So in this common case, -g actually gives us the same old result. Not
to say we shouldn't implement copy/move -g, but it might be a mistake
to advertise it as "gives the correct results".
Paul "I love mergeinfo so much I want to marry it. So then I can
divorce it an have a bitter custody battle over our kids, psi, omega,
gamma, and beta" Burba
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-11-12 16:46:48 CET