List Info

Thread: New - Handle mergeinfo when deleting a child you don't have




New - Handle mergeinfo when deleting a child you don't have
user name
2007-08-30 10:43:26
http://subversion.tigris.org/issues/show_bug.cgi?id=2898

                 Issue #|2898
                 Summary|Handle mergeinfo when deleting a
child you don't have
               Component|subversion
                 Version|trunk
                Platform|All
                     URL|
              OS/Version|All
                  Status|NEW
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|DEFECT
                Priority|P3
            Subcomponent|libsvn_client
             Assigned to|issuessubversion
             Reported by|pburba






------- Additional comments from pburbatigris.org Thu Aug 30 08:43:26 -0700 2007 -------
Spun off from issue #2827

Mergeinfo for a target with missing children is not handled
correctly when the
merge attempts to delete the missing children (or adds
children in a way that
conflicts with the target's depth, e.g. tries to add a dir,
when the wc --depth
is 'files').

To see an example of this problem, apply the attached
merge_test.py patch and
run
merge_tests.py:65:"merge_to_sparse_directories"
without --cleanup.

For this example we'll look at the WC checked out at --depth
files.

>svn st -v merge_tests-1.files
                9        2 jrandom      merge_tests-1.files
                9        1 jrandom     
merge_tests-1.filesmu

>svn pl -vR merge_tests-1.files
Properties on 'merge_tests-1.files':
  svn:mergeinfo : /A:1

>set
URL=file:///C:/SVN/src-trunk/Release/subversion/tests/cmdlin
e/svn-test-work/repositories/merge_tests-1

# Now we merge -r6:10 into the sparse WC.
#
# fyi:
#   r7  - text change to %URL%/A/mu
#   r8  - Prop add to %URL%/A/D
#   r9  - Prop add to %URL%/A.
#   r10 - Delete %URL%/A/C and add %URL%/A/I.
#
# r7 and r9 are applied to the WC, but since r8 and r10
effect paths that
# are not present due to the depth of the WC neither of
those changes take
# place.
>svn merge %URL%/A merge_tests-1.files -r6:10
--- Merging r7 through r10:
U    merge_tests-1.filesmu
--- Merging r7 through r10:
 U   merge_tests-1.files

# The target of the merge gets non-inheritable mergeinfo and
the one
# child present, file 'mu', gets inheritable mergeinfo. 
This is
# correct to the extent that no missing children of the
target should
# inherit this new mergeinfo...
>svn pl -vR merge_tests-1.files
Properties on 'merge_tests-1.files':
  prop:name : propval
  svn:mergeinfo : /A:1,7-10*
Properties on 'merge_tests-1.filesmu':
  svn:mergeinfo : /A/mu:1,7-10

# ...the problem arises if we bring the missing child we
tried to delete
# back and also permit the child we tried to add to actually
be added,
# a.k.a updating the WC to depth infinity:
>svn up merge_tests-1.files --depth infinity
A    merge_tests-1.filesB
A    merge_tests-1.filesBlambda
A    merge_tests-1.filesBE
A    merge_tests-1.filesBEalpha
A    merge_tests-1.filesBEbeta
A    merge_tests-1.filesBF
A    merge_tests-1.filesC
A    merge_tests-1.filesD
A    merge_tests-1.filesDgamma
A    merge_tests-1.filesDG
A    merge_tests-1.filesDGpi
A    merge_tests-1.filesDGrho
A    merge_tests-1.filesDGtau
A    merge_tests-1.filesDH
A    merge_tests-1.filesDHchi
A    merge_tests-1.filesDHomega
A    merge_tests-1.filesDHpsi
Updated to revision 10.

# The problem is that the mergeinfo on the WC root prevents
repeat merges
# from touching the root.  Changes deeper in the WC, like
r8's prop add to
# 'D' are allowed, but r10's add/delete of the root's
children are prevented
# by our 'avoid repeat merge' logic.
>svn merge %URL%/A merge_tests-1.files -r6:10
--- Merging r7 through r10:
--- Merging r7 through r10:
 U   merge_tests-1.filesD

Within our current merge-tracking solution, I don't see any
obvious solution. 
Of course this seems like a bit of an edge case...but one
man's edge case is
another man's SOP.

------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


Handle mergeinfo when deleting a child you don't have
user name
2007-08-30 10:46:34
http://subversion.tigris.org/issues/show_bug.cgi?id=2898




User pburba changed the following:

                What    ld value 
               |New value
============================================================
====================
         Attachment data|                          |Created
an attachment (id=
                        |                          |721)
merge_tests.py patch 
                        |                          |to demo
problem

------------------------------------------------------------
--------------------




------- Additional comments from pburbatigris.org Thu Aug 30 08:46:34 -0700 2007 -------
Created an attachment (id=721)
merge_tests.py patch to demo problem


------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


Handle mergeinfo when deleting a child you don't have
user name
2007-08-30 10:47:05
http://subversion.tigris.org/issues/show_bug.cgi?id=2898




User pburba changed the following:

                What    ld value 
               |New value
============================================================
====================
                Keywords|                         
|merge-tracking
------------------------------------------------------------
--------------------
        Target milestone|---                      
|1.5-consider
------------------------------------------------------------
--------------------




------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


Handle mergeinfo when deleting a child you don't have
user name
2007-08-30 11:04:22
http://subversion.tigris.org/issues/show_bug.cgi?id=2898







------- Additional comments from pburbatigris.org Thu Aug 30 09:04:22 -0700 2007 -------
An Ugly Workaround:

# After doing the first merge and changing the depth of the
WC,
# use a --record-only merge on the target to allow a repeat
merge.
>svn merge %URL%/A merge_tests-1.files -r6:10
--- Merging r7 through r10:
U    merge_tests-1.filesmu
--- Merging r7 through r10:
 U   merge_tests-1.files

>svn up merge_tests-1.files --depth infinity
A    merge_tests-1.filesB
A    merge_tests-1.filesBlambda
A    merge_tests-1.filesBE
A    merge_tests-1.filesBEalpha
A    merge_tests-1.filesBEbeta
A    merge_tests-1.filesBF
A    merge_tests-1.filesC
A    merge_tests-1.filesD
A    merge_tests-1.filesDgamma
A    merge_tests-1.filesDG
A    merge_tests-1.filesDGpi
A    merge_tests-1.filesDGrho
A    merge_tests-1.filesDGtau
A    merge_tests-1.filesDH
A    merge_tests-1.filesDHchi
A    merge_tests-1.filesDHomega
A    merge_tests-1.filesDHpsi
Updated to revision 10.

>svn pl -vR merge_tests-1.files
Properties on 'merge_tests-1.files':
  prop:name : propval
  svn:mergeinfo : /A:1,7-10*
Properties on 'merge_tests-1.filesmu':
  svn:mergeinfo : /A/mu:1,7-10

>svn merge %URL%/A merge_tests-1.files -r10:6
--record-only

>svn pl -vR merge_tests-1.files
Properties on 'merge_tests-1.files':
  prop:name : propval
  svn:mergeinfo : /A:1
  
>svn merge %URL%/A merge_tests-1.files -r6:10
--- Merging r7 through r10:
D    merge_tests-1.filesC
 U   merge_tests-1.filesD
A    merge_tests-1.filesI
 G   merge_tests-1.files

Of course if a long period of time passes between the first
merge and the new
depth update, the user is hardly going to know the reverse
--record-only merge
is needed.  That's what's so annoying about this, the second
merge doesn't give
you a hint anything is wrong!

One final insult: Seems it would be preferrable to only
reverse the mergeinfo
for the target, and allow any subtrees with differing
mergeinfo to keep their
mergeinfo (not that there are any in this example) , but
that doesn't currently
work on trunk (r26388):

>svn merge %URL%/A merge_tests-1.files -r10:6
--record-only --depth immediates
......subversionlibsvn_wclock.c:996: (apr_err=155005)
svn: Unable to lock 'merge_tests-1.filesB'

------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


Handle mergeinfo when deleting/adding children you don't have access to
user name
2007-08-30 11:13:21
http://subversion.tigris.org/issues/show_bug.cgi?id=2898




User pburba changed the following:

                What    ld value 
               |New value
============================================================
====================
                 Summary|Handle mergeinfo when dele|Handle
mergeinfo when dele
                        |ting a child you don't
hav|ting/adding children you d
                        |e                         |on't
have access to
------------------------------------------------------------
--------------------




------- Additional comments from pburbatigris.org Thu Aug 30 09:13:21 -0700 2007 -------
Tweaked summary a bit.

------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


[1-5]

about | contact  Other archives ( Real Estate discussion Medical topics )