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

Possible Merge Tracking TODO: No notification of merges on children with mergeinfo unaffected by the merge

From: Paul Burba <pburba_at_collab.net>
Date: 2007-03-27 15:24:54 CEST

The current notification behavior when merging into a target with child
file paths that contain their own merge info seems a bit off when those
children are unaffected by the merge:

An example will probably make what I'm trying to say clearer:

Starting with a standard test suite greek tree:

1) Make a branch and commit it
------------------------------
>set
URL=file:///C:/SVN/src-trunk/Release/subversion/tests/cmdline/svn-test-w
ork/repositories/merge_tests-1

>svn copy %URL%/A/D merge_tests-1/A/D_COPY
A merge_tests-1\A\D_COPY\gamma
A merge_tests-1\A\D_COPY\G
A merge_tests-1\A\D_COPY\G\pi
A merge_tests-1\A\D_COPY\G\rho
A merge_tests-1\A\D_COPY\G\tau
A merge_tests-1\A\D_COPY\H
A merge_tests-1\A\D_COPY\H\chi
A merge_tests-1\A\D_COPY\H\omega
A merge_tests-1\A\D_COPY\H\psi
Checked out revision 1.
A merge_tests-1\A\D_COPY

>svn ci -m "" merge_tests-1
Adding merge_tests-1\A\D_COPY

Committed revision 2.

2) Make two mods to the source of the branch
--------------------------------------------
>echo new content > merge_tests-1\A\D\H\chi

>svn ci -m "" merge_tests-1
Sending merge_tests-1\A\D\H\chi
Transmitting file data .
Committed revision 3.

>echo new content > merge_tests-1\A\D\G\rho

>svn ci -m "" merge_tests-1
Sending merge_tests-1\A\D\G\rho
Transmitting file data .
Committed revision 4.

4) Merge one of the mods into a branch
   target unaffected by the merge. Note
   that there are no notifications, but the
   mergeinfo on the target is appropriately
   updated.
------------------------------------------
>svn merge %URL%/A/D/G merge_tests-1\A\D_COPY\G -c3

>svn pl -vR merge_tests-1
Properties on 'merge_tests-1\A\D_COPY':
  svn:mergeinfo : /A/D:1
Properties on 'merge_tests-1\A\D_COPY\G':
  svn:mergeinfo : /A/D/G:1,3

5) Revert the previous merge
----------------------------
>svn revert -R merge_tests-1
Reverted 'merge_tests-1\A\D_COPY\G'

6) Now merge the other mod into the same
   target, one of the target's children is
   affected this time and we get an
   appropriate notification and mergeinfo.
------------------------------------------
>svn merge %URL%/A/D/G/rho merge_tests-1\A\D_COPY\G\rho -c4
U merge_tests-1\A\D_COPY\G\rho

>svn pl -vR merge_tests-1
Properties on 'merge_tests-1\A\D_COPY':
  svn:mergeinfo : /A/D:1
Properties on 'merge_tests-1\A\D_COPY\G\rho':
  svn:mergeinfo : /A/D/G/rho:1,4

7) Now repeat the first merge we performed,
   the mergeinfo is set correctly, but we get
   a notification that rho is mer'G'ed which
   isn't true since r3 doesn't affect rho.
------------------------------------------
>svn merge %URL%/A/D/G merge_tests-1\A\D_COPY\G -c3
G merge_tests-1\A\D_COPY\G\rho

>svn pl -vR merge_tests-1
Properties on 'merge_tests-1\A\D_COPY':
  svn:mergeinfo : /A/D:1
Properties on 'merge_tests-1\A\D_COPY\G':
  svn:mergeinfo : /A/D/G:1,3
Properties on 'merge_tests-1\A\D_COPY\G\rho':
  svn:mergeinfo : /A/D/G/rho:1,3-4

Note: If the target child is a directory the 'G' notification doesn't
occur.
 
So, should the notification in 7) not occur? If so I'll add this to the
"Handle notifications resulting from a merge." section in
http://svn.collab.net/repos/svn/trunk/notes/merge-tracking.txt and/or
look into a fix.

Paul B.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Mar 27 15:25:14 2007

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