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

Tree conflicts - see what happens in the current state

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Fri, 26 Sep 2008 20:26:05 +0100

Tree conflict fans,

To become aware of what happens in the current state of tree conflict
detection, please try the following exercises. You'll see several things
that work better than in v1.5, and several things that remain to be
done.

[[[

# Apply the attached patch (which adds a pseudo-test to
update_tests.py).
patch -p0 < ...

# Run the pseudo-test. [*1]
cd subversion/tests/cmdline/
./update_tests.py 51

# Change directory to the WC.
cd svn-test-work/working-copies/update_tests-51/
cd uc1

# Try one of these:
svn up # or ...
svn switch ^/uc2 # or ...
svn merge -c3 ^/uc1

# Try some of these:
svn status # status currently shows on both parent and victim
svn info . # info is shown on the parent
svn commit -m 'try to commit with unresolved conflicts'
svn resolved . # resolving is currently done to the parent
svn commit -m ''

# For UC2, don't be in the directory "uc2" when running "svn up": [*2]
cd ..
svn up uc2 # or ...
svn switch ^/uc2 uc2 # or ...
svn merge -c3 ^/uc1 uc2

...
]]]

The changes set up by the pseudo-test are:

Branch Incoming change (-c3) Local scheduled change
------ -------------------- --------------------
uc1/ edit Foo.c move Foo.c Bar.c
uc2/ move Foo.c Bar.c edit Foo.c
uc3/ move Foo.c Bar.c move Foo.c Bix.c

These correspond to Use Cases 1/2/3 in
notes/tree-conflicts/use-cases.txt if you exercise them with "update",
or cases 4/5/6 if you exercise them with "merge".

[*1] I think that's how you would run an individual test if you build in
the source tree. I build Subversion in an object tree that is separate
from the source tree, and running an individual test is a bit more
complex. I need a "bin" directory somewhere (mine is in the source tree)
containing either installed executables or symlinks to the versions of
"svn" and "svnadmin" in the object tree. I run the test like this:
[[[
(cd $OBJECT/subversion/tests/cmdline/ &&
$SOURCE/subversion/tests/cmdline/update_tests.py 51 --bin=$SOURCE/bin)
]]]

[*2] I just found a bug triggered by UC2 where, if you try to do the
update from within the directory "uc2" itself, it throws an error
because it doesn't like raising a tree conflict in a directory whose
path is passed as the empty string "".

- Julian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org

Received on 2008-09-26 21:26:34 CEST

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