Script started on Thu Aug 18 11:57:26 2011 dave@DEV-PC-1 ~/Documents/SVNTest $ export MYSVNROOT=http://intranet/svn/branches/dave/svntest1 dave@DEV-PC-1 ~/Documents/SVNTest $ #I'm treating this as the root of my "svn test repository" dave@DEV-PC-1 ~/Documents/SVNTest $ svn mkdir $MYSVNROOT Committed revision 8028. dave@DEV-PC-1 ~/Documents/SVNTest $ svn mkdir $MYSVNROOT/trunk Committed revision 8029. dave@DEV-PC-1 ~/Documents/SVNTest $ svn mkdir $MYSVNROOT/branches -m "branch area for this test" Committed revision 8030. dave@DEV-PC-1 ~/Documents/SVNTest $ svn mkdir $MYSVNROOT/branches/dave -m "Dave's branch area in this test" Committed revision 8031. dave@DEV-PC-1 ~/Documents/SVNTest $ svn mkdir $MYSVNROOT/branches/alice -m "Alice's branch area in this test" Committed revision 8032. dave@DEV-PC-1 ~/Documents/SVNTest $ svn co $MYSVNROOT/trunk trunk/ Checked out revision 8032. dave@DEV-PC-1 ~/Documents/SVNTest $ ls svn-commit.tmp~ test1 trunk dave@DEV-PC-1 ~/Documents/SVNTest $ pushd trunk ~/Documents/SVNTest/trunk ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ ls dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ cat >file1.txt line1 line2 line3 line4 line5 line6 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ svn add file1.txt A file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ svn commit -m "create a file on the main trunk of this test" Adding file1.txt Transmitting file data . Committed revision 8033. dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ pushd +1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest $ ls svn-commit.tmp~ test1 trunk dave@DEV-PC-1 ~/Documents/SVNTest $ svn copy $MYSVNROOT/trunk $MYSVNROOT/branches/dave/davebr1 Committed revision 8034. dave@DEV-PC-1 ~/Documents/SVNTest $ #Dave creates his first branch dave@DEV-PC-1 ~/Documents/SVNTest $ svn copy $MYSVNROOT/trunk $MYSVNROOT/branches/alice/alicebr1 Committed revision 8035. dave@DEV-PC-1 ~/Documents/SVNTest $ # And so does Alice dave@DEV-PC-1 ~/Documents/SVNTest $ svn co $MYSVNROOT/branches/dave/davebr1 davebr1/ A davebr1/file1.txt Checked out revision 8035. dave@DEV-PC-1 ~/Documents/SVNTest $ svn co $MYSVNROOT/branches/alice/alicebr1 alicebr1/ A alicebr1/file1.txt Checked out revision 8035. dave@DEV-PC-1 ~/Documents/SVNTest $ ls -cF alicebr1/ davebr1/ svn-commit.tmp~ trunk/ test1 dave@DEV-PC-1 ~/Documents/SVNTest $ pushd davebr1 ~/Documents/SVNTest/davebr1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ ls file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ cat file1.txt line1 line2 line3 line4 line5 line6 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ sed -i s/line2/line2 changed in davebr1/ file1.txt sed: -e expression #1, char 13: unterminated `s' command dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ sed -i "s/line2/line2 changed in davebr1/" file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ cat file1.txt line1 line2 changed in davebr1 line3 line4 line5 line6 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ cat >file2.txt f2line1 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ svn add file2.txt A file2.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ # Dave has made some changes, including adding a new file in this branch dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ svn info Path: . URL: http://intranet/svn/branches/dave/svntest1/branches/dave/davebr1 Repository Root: http://intranet/svn Repository UUID: 1f636d61-85ed-45a8-9e1f-4bdb2d97db5c Revision: 8035 Node Kind: directory Schedule: normal Last Changed Author: dave Last Changed Rev: 8034 Last Changed Date: 2011-08-18 12:11:10 -0700 (Thu, 18 Aug 2011) dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ svn commit -m "Dave makes changes in branch1, including adding a file" Sending file1.txt Adding file2.txt Transmitting file data .. Committed revision 8036. dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ dirs ~/Documents/SVNTest/davebr1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ pushd -1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk ~/Documents/SVNTest/davebr1 dave@DEV-PC-1 ~/Documents/SVNTest $ pushd -1 ~/Documents/SVNTest/trunk ~/Documents/SVNTest/davebr1 ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ sed -i "s/line4/line4 changed back on trunk" file1.txt sed: -e expression #1, char 35: unterminated `s' command dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ sed -i "s/line4/line4 changed back on trunk/ dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ cat file1.txt line1 line2 line3 line4 changed back on trunk line5 line6 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ svn commit -m "Meanwhile, someone else changes the trunk" Sending file1.txt Transmitting file data . Committed revision 8037. dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ dirs ~/Documents/SVNTest/trunk ~/Documents/SVNTest/davebr1 ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ pushd 1 sh: pushd: 1: No such file or directory dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ pushd +1 ~/Documents/SVNTest/davebr1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ pushd +1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk ~/Documents/SVNTest/davebr1 dave@DEV-PC-1 ~/Documents/SVNTest $ ls alicebr1 davebr1 svn-commit.tmp~ test1 trunk dave@DEV-PC-1 ~/Documents/SVNTest $ pushd alicebr1 ~/Documents/SVNTest/alicebr1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk ~/Documents/SVNTest/davebr1 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ ls file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ cat file1.txt line1 line2 line3 line4 line5 line6 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ # Meanwhile, Alice has been working... dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ sed -i "s/line6/line6 changed by Alice in br1" file1.txt sed: -e expression #1, char 37: unterminated `s' command dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ sed -i "s/line6/line6 changed by Alice in br1/" file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ cat file1.txt line1 line2 line3 line4 line5 line6 changed by Alice in br1 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ dirs ~/Documents/SVNTest/alicebr1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk ~/Documents/SVNTest/davebr1 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ pushd +1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk ~/Documents/SVNTest/davebr1 ~/Documents/SVNTest/alicebr1 dave@DEV-PC-1 ~/Documents/SVNTest $ # Meanwhile, Dave freezes further development on davebr1, so Alice can work dave@DEV-PC-1 ~/Documents/SVNTest $ # with those changes, and creates a new branch for his continuing development . dave@DEV-PC-1 ~/Documents/SVNTest $ svn copy $MYSVNROOT/trunk $MYSVNROOT/branches/dave/davebr2 Committed revision 8038. dave@DEV-PC-1 ~/Documents/SVNTest $ ls -cF svn-commit.tmp~ alicebr1/ trunk/ davebr1/ test1 dave@DEV-PC-1 ~/Documents/SVNTest $ svn co $MYSVNROOT/branches/dave/davebr2 A davebr2/file1.txt Checked out revision 8038. dave@DEV-PC-1 ~/Documents/SVNTest $ ls -cF davebr2/ svn-commit.tmp~ alicebr1/ trunk/ davebr1/ test1 dave@DEV-PC-1 ~/Documents/SVNTest $ #Now both dave and alice want to know what revisions are in davebr1; both dave@DEV-PC-1 ~/Documents/SVNTest $ #check it out with svn log --stop-on-copy dave@DEV-PC-1 ~/Documents/SVNTest $ dirs ~/Documents/SVNTest ~/Documents/SVNTest/trunk ~/Documents/SVNTest/davebr1 ~/Documents/SVNTest/alicebr1 dave@DEV-PC-1 ~/Documents/SVNTest $ pushd +2 ~/Documents/SVNTest/davebr1 ~/Documents/SVNTest/alicebr1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ svn log --stop-on-copy ------------------------------------------------------------------------ r8034 | dave | 2011-08-18 12:11:10 -0700 (Thu, 18 Aug 2011) | 2 lines "Dave creates his first branch" ------------------------------------------------------------------------ dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ svn up At revision 8038. dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ svn log --stop-on-copy ------------------------------------------------------------------------ r8036 | dave | 2011-08-18 12:18:53 -0700 (Thu, 18 Aug 2011) | 1 line Dave makes changes in branch1, including adding a file ------------------------------------------------------------------------ r8034 | dave | 2011-08-18 12:11:10 -0700 (Thu, 18 Aug 2011) | 2 lines "Dave creates his first branch" ------------------------------------------------------------------------ dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ #Ok, the relevant revisions are 8034:8036. dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ dirs ~/Documents/SVNTest/davebr1 ~/Documents/SVNTest/alicebr1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest/davebr1 $ popd ~/Documents/SVNTest/alicebr1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ # Alice merges in dave's changes from davebr1 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn st M file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn commit -m Sending file1.txt Transmitting file data . Committed revision 8039. dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn merge -r 8034:8036 $MYSVNROOT/branches/dave/davebr1 --- Merging r8035 through r8036 into '.': A file2.txt U file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ cat file1.txt line1 line2 changed in davebr1 line3 line4 line5 line6 changed by Alice in br1 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ cat file2.txt f2line1 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn commit -m "Alice merged in changes from davebr1" Sending . svn: Commit failed (details follow): svn: File or directory '.' is out of date; try updating svn: resource out of date; try updating dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn up At revision 8039. dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn commit -m "Alice merged in changes from davebr1" Sending . Sending file1.txt Adding file2.txt Transmitting file data . Committed revision 8040. dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ popd ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest $ ls -cF alicebr1/ davebr2/ svn-commit.tmp~ trunk/ davebr1/ test1 dave@DEV-PC-1 ~/Documents/SVNTest $ pushd davebr2 ~/Documents/SVNTest/davebr2 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ ls file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn up At revision 8040. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn merge -r 8034:8036 $MYSVNROOT/branches/dave/davebr1 --- Merging r8035 through r8036 into '.': A file2.txt U file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st M . A + file2.txt M file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn commit -m "Dave merges from davebr1 to davebr2" Sending . Sending file1.txt Adding file2.txt Transmitting file data . Committed revision 8041. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ cat file1.txt line1 line2 changed in davebr1 line3 line4 changed back on trunk line5 line6 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ sed -i "s/line8/line8 Dave continues changing file on davebr2/" file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ cat file1.txt line1 line2 changed in davebr1 line3 line4 changed back on trunk line5 line6 line7 line8 Dave continues changing file on davebr2 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st M file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn commit -m "Dave continues changing file1.txt on davebr2" Sending file1.txt Transmitting file data . Committed revision 8042. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ dirs ~/Documents/SVNTest/davebr2 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ popd ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest $ pushd alicebr1/ ~/Documents/SVNTest/alicebr1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ ls file1.txt file2.txt dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ cat file1.txt line1 line2 changed in davebr1 line3 line4 line5 line6 changed by Alice in br1 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ cat file2.txt f2line1 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ sed -i "s/f2line1/f2line1 Alice makes more changes to file2/" file2.txt dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ cat file2.txt f2line1 Alice makes more changes to file2 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn st M file2.txt dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn commit -m "Alice continues Dave's work from davebr1" Sending file2.txt Transmitting file data . Committed revision 8043. dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn up At revision 8043. dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn merge $MYSVNROOT/trunk --- Merging r8035 through r8043 into '.': U file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ cat file1.txt line1 line2 changed in davebr1 line3 line4 changed back on trunk line5 line6 changed by Alice in br1 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ cat file2.txt f2line1 Alice makes more changes to file2 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn commit -m "Alice merges changes from trunk into her branch" Sending . Sending file1.txt Transmitting file data . Committed revision 8044. dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn up At revision 8044. dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ #Now Alice checks revision nums in prep for merging back to trunk dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ svn log --stop-on-copy ------------------------------------------------------------------------ r8044 | dave | 2011-08-18 12:45:18 -0700 (Thu, 18 Aug 2011) | 1 line Alice merges changes from trunk into her branch ------------------------------------------------------------------------ r8043 | dave | 2011-08-18 12:43:45 -0700 (Thu, 18 Aug 2011) | 1 line Alice continues Dave's work from davebr1 ------------------------------------------------------------------------ r8040 | dave | 2011-08-18 12:35:31 -0700 (Thu, 18 Aug 2011) | 1 line Alice merged in changes from davebr1 ------------------------------------------------------------------------ r8039 | dave | 2011-08-18 12:33:42 -0700 (Thu, 18 Aug 2011) | 1 line Save Alice's first changes ------------------------------------------------------------------------ r8035 | dave | 2011-08-18 12:12:08 -0700 (Thu, 18 Aug 2011) | 2 lines And so does Alice ------------------------------------------------------------------------ dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ dirs ~/Documents/SVNTest/alicebr1 ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest/alicebr1 $ popd ~/Documents/SVNTest ~/Documents/SVNTest/trunk dave@DEV-PC-1 ~/Documents/SVNTest $ pushd +1 ~/Documents/SVNTest/trunk ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ svn up At revision 8044. dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ cat file1.txt line1 line2 line3 line4 changed back on trunk line5 line6 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ cat file2.txt cat: file2.txt: No such file or directory dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ #Now Alice wants to merge her branch back to trunk dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ svn merge -r8035:8044 $MYSVNROOT/branches/alice/alicebr1 --- Merging r8036 through r8044 into '.': A file2.txt U file1.txt U . dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ svn st M . A + file2.txt M file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ cat file1.txt line1 line2 changed in davebr1 line3 line4 changed back on trunk line5 line6 changed by Alice in br1 line7 line8 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ cat file2.txt f2line1 Alice makes more changes to file2 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ svn commit -m "Alice merges her changes back to trunk" Sending . Sending file1.txt Adding file2.txt Transmitting file data . Committed revision 8045. dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ svn up At revision 8045. dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ st sh: st: command not found dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ dirs ~/Documents/SVNTest/trunk ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/trunk $ popd ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest $ pushd davebr2 ~/Documents/SVNTest/davebr2 ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ ls file1.txt file2.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ cat file1.txt line1 line2 changed in davebr1 line3 line4 changed back on trunk line5 line6 line7 line8 Dave continues changing file on davebr2 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ cat file2.txt f2line1 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn up At revision 8045. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ dirs ~/Documents/SVNTest/davebr2 ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ pushd +1 ~/Documents/SVNTest ~/Documents/SVNTest/davebr2 dave@DEV-PC-1 ~/Documents/SVNTest $ # Meanwhile, Dave has another copy of davebr2 on another machine... dave@DEV-PC-1 ~/Documents/SVNTest $ svn co $MYSVNROOT/branches/dave/davebr2 davebr2A/ A davebr2A/file2.txt A davebr2A/file1.txt U davebr2A Checked out revision 8045. dave@DEV-PC-1 ~/Documents/SVNTest $ pushd davebr2a ~/Documents/SVNTest/davebr2a ~/Documents/SVNTest ~/Documents/SVNTest/davebr2 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2a $ ls file1.txt file2.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2a $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr2a $ svn up At revision 8045. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2a $ popd ~/Documents/SVNTest ~/Documents/SVNTest/davebr2 dave@DEV-PC-1 ~/Documents/SVNTest $ pushd +1 ~/Documents/SVNTest/davebr2 ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # Now Dave wants to merge in Alice's latest changes from trunk dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn merge $MYSVNROOT/trunk --- Merging r8038 through r8045 into '.': C file2.txt U file1.txt G . Summary of conflicts: Tree conflicts: 1 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # And -- we have a tree conflict on file2 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn diff file2.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # Dave looks at the changes, realizes that trunk has the latest copy, dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # and wants to resolve the conflict by importing the history from trunk dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # to facilitate a later merge back to trunk. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn revert -R . Reverted '.' Reverted 'file2.txt' Reverted 'file1.txt' dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn up At revision 8045. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn del file2.txt D file2.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ ls file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn commit -m "Create a temporary version of davebr2 without file2.txt" Deleting file2.txt Committed revision 8046. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ ls file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ #Not sure if Dave did an svn up here in the original case - I'll leave it dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # out for the moment... dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn merge $MYSVNROOT/trunk --- Merging r8038 through r8046 into '.': A file2.txt U file1.txt G . dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ #Ok, the merge went well... dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st M . A + file2.txt M file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ cat file1.txt line1 line2 changed in davebr1 line3 line4 changed back on trunk line5 line6 changed by Alice in br1 line7 line8 Dave continues changing file on davebr2 line9 line10 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ cat file2.txt f2line1 Alice makes more changes to file2 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # Ok, we seem to have all the latest changes... dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn commit -m "Dave merges in latest changes from trunk" Sending . svn: Commit failed (details follow): svn: File or directory '.' is out of date; try updating svn: resource out of date; try updating dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn up C file2.txt At revision 8046. Summary of conflicts: Tree conflicts: 1 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn cat file2.txt f2line1 Alice makes more changes to file2 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn resolve --accept working svn: Try 'svn help' for more info svn: Not enough arguments provided dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn resolve --accept working --recursive . Resolved conflicted state of 'file2.txt' dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ #Ok, that sounds good - let's check the status of file2: dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ cat file2.txt f2line1 Alice makes more changes to file2 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ #That's the right version dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st M . A + file2.txt M file1.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # All looks good, let's commit dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn commit -m "Dave merges in latest changes from trunk" Sending . Sending file1.txt Adding file2.txt Transmitting file data . Committed revision 8047. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn up At revision 8047. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ cat file2.txt f2line1 Alice makes more changes to file2 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ #Ok, everything looks good here, we've committed our changes and are dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # in synch with the repository, right? dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ dirs ~/Documents/SVNTest/davebr2 ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ pushd +1 ~/Documents/SVNTest ~/Documents/SVNTest/davebr2 dave@DEV-PC-1 ~/Documents/SVNTest $ ls alicebr1 davebr1 davebr2 davebr2A svn-commit.tmp~ test1 trunk dave@DEV-PC-1 ~/Documents/SVNTest $ pushd davebr2A ~/Documents/SVNTest/davebr2A ~/Documents/SVNTest ~/Documents/SVNTest/davebr2 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ ls file1.txt file2.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ # Now let's update our other version of the branch... dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ svn up U file1.txt U . Updated to revision 8047. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ #Uh, oh -- what happened to file2? dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ cat file2.txt f2line1 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ svn up At revision 8047. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ # svn claims this version is at 8047... dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ dirs ~/Documents/SVNTest/davebr2A ~/Documents/SVNTest ~/Documents/SVNTest/davebr2 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ pushd +2 ~/Documents/SVNTest/davebr2 ~/Documents/SVNTest/davebr2A ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn up At revision 8047. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # and svn claims this version is also at 8047... dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ cat file2.txt f2line1 Alice makes more changes to file2 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # But they have two different versions of file2!!! dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ pushd +2 ~/Documents/SVNTest ~/Documents/SVNTest/davebr2 ~/Documents/SVNTest/davebr2A dave@DEV-PC-1 ~/Documents/SVNTest $ diff davebr2 davebr2A Common subdirectories: davebr2/.svn and davebr2A/.svn diff davebr2/file2.txt davebr2A/file2.txt 1c1 < f2line1 Alice makes more changes to file2 --- > f2line1 dave@DEV-PC-1 ~/Documents/SVNTest $ svn diff davebr2/file2.txt dave@DEV-PC-1 ~/Documents/SVNTest $ svn diff davebr2A/file2.txt dave@DEV-PC-1 ~/Documents/SVNTest $ svn --version svn, version 1.6.17 (r1128011) compiled Jun 2 2011, 10:39:28 Copyright (C) 2000-2009 CollabNet. Subversion is open source software, see http://subversion.apache.org/ This product includes software developed by CollabNet (http://www.Collab.Net/). The following repository access (RA) modules are available: * ra_neon : Module for accessing a repository via WebDAV protocol using Neon. - handles 'http' scheme - handles 'https' scheme * ra_svn : Module for accessing a repository using the svn network protocol. - with Cyrus SASL authentication - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme * ra_serf : Module for accessing a repository via WebDAV protocol using serf. - handles 'http' scheme - handles 'https' scheme dave@DEV-PC-1 ~/Documents/SVNTest $ # Ok, let's check out a new version of davebr2 and see which one matches dave@DEV-PC-1 ~/Documents/SVNTest $ # the repository... dave@DEV-PC-1 ~/Documents/SVNTest $ svn co $MYSVNROOT/branches/dave/davebr2 davebr2-repos/ A davebr2-repos/file2.txt A davebr2-repos/file1.txt U davebr2-repos Checked out revision 8047. dave@DEV-PC-1 ~/Documents/SVNTest $ cat davebr2-repos/file2.txt f2line1 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest $ # The change to file2.txt on the branch never hit the repository - yet the dave@DEV-PC-1 ~/Documents/SVNTest $ # commit seemed to go fine and svn st in davebr2/ seems to indicate that dave@DEV-PC-1 ~/Documents/SVNTest $ # all is well, and the working copy is in synch with the repository... dave@DEV-PC-1 ~/Documents/SVNTest $ # This is serious bad mojo... dave@DEV-PC-1 ~/Documents/SVNTest $ # And ... let's see what happens when we try to fix things from another dave@DEV-PC-1 ~/Documents/SVNTest $ # working directory... dave@DEV-PC-1 ~/Documents/SVNTest $ dirs ~/Documents/SVNTest ~/Documents/SVNTest/davebr2 ~/Documents/SVNTest/davebr2A dave@DEV-PC-1 ~/Documents/SVNTest $ pushd +2 ~/Documents/SVNTest/davebr2A ~/Documents/SVNTest ~/Documents/SVNTest/davebr2 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ cat file2.txt f2line1 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ cp ../trunk/file2.txt . dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ svn st M file2.txt dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ svn diff file2.txt Index: file2.txt =================================================================== --- file2.txt (revision 8047) +++ file2.txt (working copy) @@ -1,3 +1,3 @@ -f2line1 +f2line1 Alice makes more changes to file2 f2line2 f2line3 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ svn commit -m "Try to fix file2.txt for real..." Sending file2.txt Transmitting file data . Committed revision 8048. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ svn up At revision 8048. dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ # Ok, this working directory is good... dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ dirs ~/Documents/SVNTest/davebr2A ~/Documents/SVNTest ~/Documents/SVNTest/davebr2 dave@DEV-PC-1 ~/Documents/SVNTest/davebr2A $ pushd +2 ~/Documents/SVNTest/davebr2 ~/Documents/SVNTest/davebr2A ~/Documents/SVNTest dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn st dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ svn up svn: Checksum mismatch for 'file2.txt'; expected: 'bec51ddc8576aaf4284f521d2a43af03', recorded: '1bd1122a6741a69d4655e462da86c87a' dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # And this working directory (the original) appears to be trashed, along dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ # presumably, with any subsequent modifications. SERIOUS bad mojo.... dave@DEV-PC-1 ~/Documents/SVNTest/davebr2 $ exit Script done on Thu Aug 18 13:21:01 2011