[svk-users] pull + incremental push causes whole-branch merge

Minero Aoki aamine at loveruby.net
Sun Dec 23 09:32:58 EST 2007


Hello --

I met merge-related strange problem in these days.  When I synchronize
remote repository and local depot using "svk pull" and "svk push" under
some conditions, already merged files are merged again like this:

   Syncing file:///Users/aamine/tmp/svktest/repos
   Retrieving log information from 3 to 3
   Committed revision 6 from revision 3.
   Auto-merging (3, 6) /mirror/project to /project (base /mirror/ 
project:3).
   A + branches/vrf1          <------------------ vrf1 branch pulled...
   New merge ticket: 050d88c0-9161-4a2b-a6ea-44abd792cee8:/:3
   Committed revision 7.
   (snip...)

   Syncing file:///Users/aamine/tmp/svktest/repos
   Auto-merging (6, 8) /mirror/project to /project (base /project:5).
   g   branches/vrf1/a
   g   branches/vrf1/b        <----------------- all files in branch  
are merged???
   g   branches/vrf1/c
   g   branches/vrf1/d
   G   branches/vrf1
   New merge ticket: 050d88c0-9161-4a2b-a6ea-44abd792cee8:/:4
   Committed revision 10.
   (snip...)

These files are not edited, but merged again.  Since my real repository
contains over 25000 files, SVK run out of 4GB memory and dumps core.
Am I doing something wrong here?

I attaches problem-reproducing ksh script and its log file.
Problem occurs when...

   1.  do "svn copy" on the mirror repository (SVK depot).
   2.  commit any changes on the master (main) repository.
   3.  svk pull     # non-incremental merge
   4.  svk push    # incremental merge
   5.  do "svn copy" on the mirror repository (SVK depot) again.
   6.  svk pull     # non-incremental merge
   7.  svk push    # incremental merge

The problem occurs only when I use incremental merge as second
command.  If I use incremental merge command first, this problem
does not occur (please check reproducing script for details).

My environments:

   * SVK 2.0.1 + Perl 5.8.8 + Mac OS X 10.5.1/i686
   * SVK 2.0.2 + Perl 5.8.8 + Solaris 8/SPARC (32bit)

This merge problem occurs on both environments.

Thanks for any advance.


Best Regards,
Minero Aoki

-------------- next part --------------
A non-text attachment was scrubbed...
Name: reproduce.ksh
Type: application/octet-stream
Size: 2349 bytes
Desc: not available
Url : http://lists.bestpractical.com/pipermail/svk-users/attachments/20071223/c37e0095/reproduce.obj
-------------- next part --------------


==== Init master ==============

Committed revision 1.
A         trunk/a
A         trunk/b
A         trunk/c
A         trunk/d
Adding         trunk/a
Adding         trunk/b
Adding         trunk/c
Adding         trunk/d
Transmitting file data ....
Committed revision 2.


==== Init SVK depot ==============
Repository /Users/aamine/tmp/svktest/depot/local does not exist, create? (y/n)y
Mirror initialized.  Run svk sync //mirror/project to start mirroring.
Syncing file:///Users/aamine/tmp/svktest/repos
Retrieving log information from 1 to 2
Committed revision 2 from revision 1.
Committed revision 3 from revision 2.
Committed revision 4.


==== Create branch on mirror (1) ==============

Committed revision 5.


==== Create branch on master (1) ==============

Committed revision 3.


==== Synchronize ==============
Syncing file:///Users/aamine/tmp/svktest/repos
Retrieving log information from 3 to 3
Committed revision 6 from revision 3.
Auto-merging (3, 6) /mirror/project to /project (base /mirror/project:3).
A + branches/vrf1
New merge ticket: b4028410-6dee-4033-ab98-0ef637cecfc7:/:3
Committed revision 7.
Auto-merging (0, 7) /project to /mirror/project (base /mirror/project:6).
===> Auto-merging (0, 4) /project to /mirror/project (base /mirror/project:3).
Merging back to mirror source file:///Users/aamine/tmp/svktest/repos.
Empty merge.
===> Auto-merging (4, 5) /project to /mirror/project (base /mirror/project:3).
Merging back to mirror source file:///Users/aamine/tmp/svktest/repos.
A + branches/dev1
New merge ticket: cc627e03-4a1b-4db5-a896-b0975801854f:/project:5
Merge back committed as revision 4.
Syncing file:///Users/aamine/tmp/svktest/repos
Retrieving log information from 4 to 4
Committed revision 8 from revision 4.
===> Auto-merging (5, 7) /project to /mirror/project (base */project:5).
Merging back to mirror source file:///Users/aamine/tmp/svktest/repos.
Empty merge.


==== Create branch on mirror (2) ==============

Committed revision 9.


==== Synchronize ==============
Syncing file:///Users/aamine/tmp/svktest/repos
Auto-merging (6, 8) /mirror/project to /project (base /project:5).
g   branches/vrf1/a
g   branches/vrf1/b
g   branches/vrf1/c
g   branches/vrf1/d
G   branches/vrf1
New merge ticket: b4028410-6dee-4033-ab98-0ef637cecfc7:/:4
Committed revision 10.
Auto-merging (5, 10) /project to /mirror/project (base */project:9).
===> Auto-merging (5, 7) /project to /mirror/project (base */project:5).
Merging back to mirror source file:///Users/aamine/tmp/svktest/repos.
Empty merge.
===> Auto-merging (7, 9) /project to /mirror/project (base /mirror/project:6).
Merging back to mirror source file:///Users/aamine/tmp/svktest/repos.
g   branches/dev1/a
g   branches/dev1/b
g   branches/dev1/c
g   branches/dev1/d
G   branches/dev1
A + branches/dev2
New merge ticket: cc627e03-4a1b-4db5-a896-b0975801854f:/project:9
Merge back committed as revision 5.
Syncing file:///Users/aamine/tmp/svktest/repos
Retrieving log information from 5 to 5
Committed revision 11 from revision 5.
===> Auto-merging (9, 10) /project to /mirror/project (base */project:9).
Merging back to mirror source file:///Users/aamine/tmp/svktest/repos.
Empty merge.


More information about the svk-users mailing list