[svk-devel] smerge on mirror

Marcin Konarski marcin.konarski at gmail.com
Sat Sep 1 13:24:26 EDT 2007


On Tue, Aug 28, 2007 at 10:18:36PM +0200, Marcin Konarski wrote:
> 
> Hello list.
> 
> Somehow I am unable to perform smerge on branches via mirror.
> Is that kind of operation supported at all?

In previous email I failed to mention my environment, I am fixing it
now. I use Debian Sid and svk 2.0.2.

I have extended my test script (which again I am attaching
in this very email) a bit. This time besides triggering bad behavior
script allows you to observe peculiar output from `svk info' (the second
invocation in this script). I am also attaching log from script run.

How to execute it for yourself.
Just create empty directory, descend into it and run this script.
Warning: this script detaches "/a/" and "/b/" depots.

Thank you for your attention. I am hoping for some feedback here.

Best regards.

# ------ script starts here -------

#! /bin/sh

invoke() {
	echo "\$ ${@}" >&2
	"${@}"
}

ROOT=`pwd`

invoke /bin/rm -rf a b c d1
invoke svk depotmap --detach a
invoke svk depotmap --detach b

if [ "x${1}" = "xc" ] ; then
	exit 0
fi

invoke svnadmin create a
invoke svnadmin create b
invoke svk depotmap a ${ROOT}/a
invoke svk depotmap b ${ROOT}/b
invoke svk mirror file://${ROOT}/a/ /b/
invoke svk sync /b/
invoke mkdir c
invoke echo "base" > c/base.txt
invoke svk import -m "one and only module" c /a/c/trunk
invoke svk mkdir -m "branches" /a/c/branches
invoke svk sync /b/
invoke svk cp -m "cp" /b/c/trunk /b/c/branches/d1
invoke svk sm /a/c/trunk /a/c/branches/d1 # work ok
invoke svk info /b/c/branches/d1
invoke svk sm /b/c/trunk /b/c/branches/d1 # fails badly
invoke svk sm --direct -Is -b:1 /b/c/trunk /b/c/branches/d1
invoke svk info /b/c/branches/d1

# ------ script ends here -------

# ------ output from script starts here -------

# FYI for this output script was run from: /home/amok/tmp/svk-stress
# directory

$ /bin/rm -rf a b c d1
$ svk depotmap --detach a
Depot 'a' detached.
$ svk depotmap --detach b
Depot 'b' detached.
$ svnadmin create a
$ svnadmin create b
$ svk depotmap a /home/amok/tmp/svk-stress/a
New depot map saved.
$ svk depotmap b /home/amok/tmp/svk-stress/b
New depot map saved.
$ svk mirror file:///home/amok/tmp/svk-stress/a/ /b/
Mirror initialized.  Run svk sync /b/ to start mirroring.
$ svk sync /b/
Syncing file:///home/amok/tmp/svk-stress/a
$ mkdir c
$ echo base
$ svk import -m one and only module c /a/c/trunk
Committed revision 1.
Import path /a/c/trunk initialized.
Committed revision 2.
Directory /home/amok/tmp/svk-stress/c imported to depotpath /a/c/trunk as revision 2.
$ svk mkdir -m branches /a/c/branches
Committed revision 3.
$ svk sync /b/
Syncing file:///home/amok/tmp/svk-stress/a
Retrieving log information from 1 to 3
Committed revision 1 from revision 1.
Committed revision 2 from revision 2.
Committed revision 3 from revision 3.
$ svk cp -m cp /b/c/trunk /b/c/branches/d1
Merging back to mirror source file:///home/amok/tmp/svk-stress/a.
Merge back committed as revision 4.
Syncing file:///home/amok/tmp/svk-stress/a
Retrieving log information from 4 to 4
Committed revision 4 from revision 4.
$ svk sm /a/c/trunk /a/c/branches/d1
Auto-merging (2, 2) /c/trunk to /c/branches/d1 (base /c/trunk:2).
Empty merge.
$ svk info /b/c/branches/d1
Use of uninitialized value in join or string at (eval 62) line 2.
Depot Path: /b/c/branches/d1
Revision: 4
Last Changed Rev.: 4
Mirrored From: file:///home/amok/tmp/svk-stress/a, Rev. 
Copied From: /c/trunk, Rev. 2
Merged From: /c/trunk, Rev. 2

$ svk sm /b/c/trunk /b/c/branches/d1
Can't find merge base for /c/trunk and /c/branches/d1
$ svk sm --direct -Is -b:1 /b/c/trunk /b/c/branches/d1
Syncing file:///home/amok/tmp/svk-stress/a
Auto-merging (1, 2) /c/trunk to /c/branches/d1 (base /c/trunk:1).
===> Auto-merging (1, 2) /c/trunk to /c/branches/d1 (base /c/trunk:1).
g   base.txt
New merge ticket: e77e2d96-4348-459c-844b-d9046f3263dc:/c/trunk:2
Committed revision 5.
$ svk info /b/c/branches/d1
Use of uninitialized value in join or string at (eval 62) line 2.
Depot Path: /b/c/branches/d1
Revision: 5
Last Changed Rev.: 5
Mirrored From: file:///home/amok/tmp/svk-stress/a, Rev. 
Copied From: /c/trunk, Rev. 2
Merged From: //c/trunk, Rev. 2
Merged From: /c/trunk, Rev. 2

# ------ output from script end here -------

-- 
  Huginn
GCS d? s:+>: a- C++$() UB++++$ P++ L++++$ E---
W+(-) N++ o? K? w-- O M- V- PS+ PE++ Y PGP-
t--- 5-- X- R !tv b++ DI++ D+ G e* h+ !r>++ y>+


More information about the svk-devel mailing list