Attached is a script to reproduce the error.
I also have a packed rr debugger session that I can provide (I highly
recommend the rr reversible debugger). Its ~30meg
--
Joshua Kordani
Senior Engineer
Robotic Research, LLC
jkord...@roboticresearch.com
CONFIDENTIALITY NOTICE: This communication may contain private, confidential
and privileged material for the sole use of the intended recipient. If you are
not the intended recipient, please delete this e-mail and any attachments
permanently.
#!/bin/bash
repo=$(mktemp -d)
wc=$(mktemp -d)
pushd /tmp/
svnadmin create $repo
svn co file:///$repo $wc
cd $wc
mkdir -p {trunk,branches/feature}/module{1,2}/
touch trunk/module1/m1file{1,2}
touch trunk/module2/m2file{1,2}
svn add trunk branches
svn commit -m "initial state"
svn copy -m "created feature" ^/trunk ^/branches/feature1
svn up
cd branches/feature1/module1
svn move m1file1 ../module2/m1file1-from-module1
cd ../
svn commit -m "Moved file to other module"
cd ../../trunk/
cd module1
svn up
svn merge -c3 ^/branches/feature1/module1 .
svn commit -m "cherry picked deletion into module folder"
touch mfile3
rm mfile3
touch m1file3
svn add m1file3
svn revert m1file3
rm m1file3
cd ../../branches/feature1/module1
touch m1file3
svn add m1file3
svn commit -m "created a new file in module1 of feature branch"
svn copy -m "made test branch of feature" ^/branches/feature{1,2}
svn up
cd ../../feature2
cd ../../feature2/
svn up
cd ../../
svn up
cd feature2
cd module1
touch m1file4
svn add m1file4
svn commit -m "meant to do this in the accidental branch I created called
feature (not feature1)"
echo meaningless1>m1file2
svn add m1file2
svn st
svn commit -m "meaningless change to module1 in test branch"
echo meaningless2 > m1file2
svn commit -m "meaningless change to module1 in test branch"
cd ../../feature1
svn merge ^/branches/feature2 .
svn commit -m "merged test into feature1 after file was created on test"
cd module1
svn move m1file4 m1file4new
svn commit -m "moved file4 in feature1 branch"
svn move m1file4new ../module2/
cd ../
svn commit -m "moved file4 from module1 to module2 in feature"
ls module1
ls module2
cd ../../
ls
cd branches/
cd ../trunk/
svn merge -c12 ^/branches/feature1/ .
svn up
svn merge -c12 ^/branches/feature1/ .
popd
#output below
# jkordani@host:~/Code/svncrash$ svnadmin create repo-1
# jkordani@host:~/Code/svncrash$ svn co file:///$(pwd)/repo-1 wc1.2
# Checked out revision 0.
# jkordani@host:~/Code/svncrash$ cd wc1.2
# jkordani@host:~/Code/svncrash/wc1.2$ mkdir -p
{trunk,branches/feature}/module{1,2}/
# jkordani@host:~/Code/svncrash/wc1.2$ touch trunk/module1/m1file{1,2}
# jkordani@host:~/Code/svncrash/wc1.2$ touch trunk/module2/m2file{1,2}
# jkordani@host:~/Code/svncrash/wc1.2$ svn add trunk branches
# A trunk
# A trunk/module1
# A trunk/module1/m1file1
# A trunk/module1/m1file2
# A trunk/module2
# A trunk/module2/m2file1
# A trunk/module2/m2file2
# A branches
# A branches/feature
# A branches/feature/module1
# A branches/feature/module2
# jkordani@host:~/Code/svncrash/wc1.2$ svn commit -m "initial state"
# Adding branches
# Adding branches/feature
# Adding branches/feature/module1
# Adding branches/feature/module2
# Adding trunk
# Adding trunk/module1
# Adding trunk/module1/m1file1
# Adding trunk/module1/m1file2
# Adding trunk/module2
# Adding trunk/module2/m2file1
# Adding trunk/module2/m2file2
# Transmitting file data ....done
# Committing transaction...
# Committed revision 1.
# jkordani@host:~/Code/svncrash/wc1.2$ svn copy ^/trunk ^/branches/feature1
# Waiting for Emacs...
# Log message unchanged or not specified
# (a)bort, (c)ontinue, (e)dit:
# a
# jkordani@host:~/Code/svncrash/wc1.2$ svn copy -m "created feature" ^/trunk
^/branches/feature1
# Committing transaction...
# Committed revision 2.
# jkordani@host:~/Code/svncrash/wc1.2$ svn up
# Updating '.':
# A branches/feature1
# A branches/feature1/module1
# A branches/feature1/module1/m1file1
# A branches/feature1/module1/m1file2
# A branches/feature1/module2
# A branches/feature1/module2/m2file1
# A branches/feature1/module2/m2file2
# Updated to revision 2.
# jkordani@host:~/Code/svncrash/wc1.2$ cd branches/feature1/module1
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ svn move
m1file1 ../module2/m1file1-from-module1
# A
/home/jkordani/Code/svncrash/wc1.2/branches/feature1/module2/m1file1-from-module1
# D m1file1
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ #svn commit -m
"Moved file to other module"
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ cd ../
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1$ svn commit -m "Moved
file to other module"
# Deleting module1/m1file1
# Adding module2/m1file1-from-module1
# Committing transaction...
# Committed revision 3.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1$ cd ../../trunk/
# jkordani@host:~/Code/svncrash/wc1.2/trunk$ cd module1
# jkordani@host:~/Code/svncrash/wc1.2/trunk/module1$ svn up
# Updating '.':
# At revision 3.
# jkordani@host:~/Code/svncrash/wc1.2/trunk/module1$ svn merge -c3
^/branches/feature1/module1 .
# --- Merging r3 into '.':
# D m1file1
# --- Recording mergeinfo for merge of r3 into '.':
# U .
# jkordani@host:~/Code/svncrash/wc1.2/trunk/module1$ svn commit -m "cherry
picked deletion into module folder"
# Sending .
# Deleting m1file1
# Committing transaction...
# Committed revision 4.
# jkordani@host:~/Code/svncrash/wc1.2/trunk/module1$ touch mfile3
# jkordani@host:~/Code/svncrash/wc1.2/trunk/module1$ rm mfile3
# jkordani@host:~/Code/svncrash/wc1.2/trunk/module1$ touch m1file3
# jkordani@host:~/Code/svncrash/wc1.2/trunk/module1$ svn add m1file3
# A m1file3
# jkordani@host:~/Code/svncrash/wc1.2/trunk/module1$ svn revert m1file3
# Reverted 'm1file3'
# jkordani@host:~/Code/svncrash/wc1.2/trunk/module1$ rm m1file3
# jkordani@host:~/Code/svncrash/wc1.2/trunk/module1$ cd
../../branches/feature1/module1
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ touch m1file3
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ svn add m1file3
# A m1file3
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ svn commit -m
"created a new file in module1 of feature branch"
# Adding m1file3
# Transmitting file data .done
# Committing transaction...
# Committed revision 5.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ svn copy
^/branches/feature{1,2}
# Waiting for Emacs...
# Log message unchanged or not specified
# (a)bort, (c)ontinue, (e)dit:
# a
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ svn copy -m
"made test branch of feature" ^/branches/feature{1,2}
# Committing transaction...
# Committed revision 6.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ svn up
# Updating '.':
# At revision 6.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ #fucked up my
log. doing similar but not identical thing
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ cd
../../feature2
# bash: cd: ../../feature2: No such file or directory
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ cd
../../feature2/
# bash: cd: ../../feature2/: No such file or directory
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ svn up
# Updating '.':
# At revision 6.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ cd ../../
# jkordani@host:~/Code/svncrash/wc1.2/branches$ svn up
# Updating '.':
# A feature2
# A feature2/module1
# A feature2/module1/m1file2
# A feature2/module1/m1file3
# A feature2/module2
# A feature2/module2/m1file1-from-module1
# A feature2/module2/m2file1
# A feature2/module2/m2file2
# Updated to revision 6.
# jkordani@host:~/Code/svncrash/wc1.2/branches$ cd feature2
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2$ cd module1
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2/module1$ touch m1file4
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2/module1$ svn add m1file4
# A m1file4
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2/module1$ svn commit -m
"meant to do this in the accidental branch I created called feature (not
feature1)"
# Adding m1file4
# Transmitting file data .done
# Committing transaction...
# Committed revision 7.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2/module1$ echo
meaningless1>m1file2
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2/module1$ svn add m1file2
# svn: warning: apr_err=SVN_ERR_ENTRY_EXISTS
# svn: warning: W150002:
'/home/jkordani/Code/svncrash/wc1.2/branches/feature2/module1/m1file2' is
already under version control
# subversion/svn/add-cmd.c:109,
# subversion/svn/add-cmd.c:104: (apr_err=SVN_ERR_ILLEGAL_TARGET)
# svn: E200009: Could not add all targets because some targets are already
versioned
# subversion/svn/add-cmd.c:95: (apr_err=SVN_ERR_ILLEGAL_TARGET)
# svn: E200009: Illegal target for the requested operation
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2/module1$ svn st
# M m1file2
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2/module1$ svn commit -m
"meaningless change to module1 in test branch"
# Sending m1file2
# Transmitting file data .done
# Committing transaction...
# Committed revision 8.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2/module1$ echo
meaningless2 > m1file2
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2/module1$ svn commit -m
"meaningless change to module1 in test branch"
# Sending m1file2
# Transmitting file data .done
# Committing transaction...
# Committed revision 9.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature2/module1$ cd
../../feature1
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1$ svn merge
^/branches/feature2 .
# --- Merging r6 through r9 into '.':
# U module1/m1file2
# A module1/m1file4
# --- Recording mergeinfo for merge of r6 through r9 into '.':
# U .
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1$ svn commit -m "merged
test into feature1 after file was created on test"
# Sending .
# Sending module1/m1file2
# Adding module1/m1file4
# Transmitting file data .done
# Committing transaction...
# Committed revision 10.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1$ cd module1
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ svn move
m1file4 m1file4new
# A m1file4new
# D m1file4
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ svn commit -m
"moved file4 in feature1 branch"
# Deleting m1file4
# Adding m1file4new
# Committing transaction...
# Committed revision 11.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ svn move
m1file4new ../module2/
# A
/home/jkordani/Code/svncrash/wc1.2/branches/feature1/module2/m1file4new
# D m1file4new
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1/module1$ cd ../
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1$ svn commit -m "moved
file4 from module1 to module2 in feature"
# Deleting module1/m1file4new
# Adding module2/m1file4new
# Committing transaction...
# Committed revision 12.
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1$ ls module1
# m1file2 m1file3
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1$ ls module2
# m1file1-from-module1 m1file4new m2file1 m2file2
# jkordani@host:~/Code/svncrash/wc1.2/branches/feature1$ cd ../../
# jkordani@host:~/Code/svncrash/wc1.2$ ls
# branches trunk
# jkordani@host:~/Code/svncrash/wc1.2$ cd branches/
# jkordani@host:~/Code/svncrash/wc1.2/branches$ cd ../trunk/
# jkordani@host:~/Code/svncrash/wc1.2/trunk$ svn merge -c12
^/branches/feature1/ .
# subversion/svn/util.c:557,
# subversion/libsvn_client/merge.c:12035,
# subversion/libsvn_client/merge.c:11875,
# subversion/libsvn_client/merge.c:10442,
# subversion/libsvn_client/merge.c:10314:
(apr_err=SVN_ERR_CLIENT_MERGE_UPDATE_REQUIRED)
# svn: E195020: Cannot merge into mixed-revision working copy [2:4]; try
updating first
# jkordani@host:~/Code/svncrash/wc1.2/trunk$ svn up
# Updating '.':
# At revision 12.
# jkordani@host:~/Code/svncrash/wc1.2/trunk$ svn merge -c12
^/branches/feature1/ .
# --- Merging r12 into '.':
# C module1/m1file4new
# A module2/m1file4new
# --- Recording mergeinfo for merge of r12 into '.':
# U .
# --- Recording mergeinfo for merge of r12 into 'module1':
# U module1
# Summary of conflicts:
# Tree conflicts: 1
# Searching tree conflict details for 'module1/m1file4new' in repository:
# Checking r7...subversion/libsvn_subr/token.c:40:
(apr_err=SVN_ERR_ASSERTION_FAIL)
# svn: E235000: In file 'subversion/libsvn_subr/token.c' line 40: internal
malfunction
# Aborted (core dumped)
# jkordani@host:~/Code/svncrash/wc1.2/trunk$