On Apr 21, 2011, at 6:36 , Daniel Shahaf wrote: > I can reproduce this with current trunk.
This looks like issue 3569 "svn update --depth <DEPTH> allows making a working copy incomplete". http://subversion.tigris.org/issues/show_bug.cgi?id=3569 The issue lists two ways to trigger the bug: 1. "svn up --depth" where depth < wc-depth 2. revert the victim of a tree conflict (local edit, incoming replacement) Steve > > Output immediately after the 'update' which introduces a conflict: > [[[ > % svnqlite3-dump ../ | grep iota > INSERT INTO "ACTUAL_NODE" > VALUES(1,'trunk/iota','trunk',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'(conflict > iota file update deleted edited (version file:///tmp/svn/r1 1 1 trunk/iota > file) (version file:///tmp/svn/r1 1 2 trunk/iota none))',NULL,NULL,NULL,NULL); > INSERT INTO "NODES" > VALUES(1,'trunk/iota',2,'trunk',1,'trunk/iota',1,'normal',NULL,NULL,'file',(),NULL,'$sha1$2c0aa9014a0cd07f01795a333d82485ef6d083e2',NULL,1,"Thu > Apr 21 07:30:46 2011",'daniel',25,"Thu Apr 21 07:30:48 2011",NULL,NULL); > INSERT INTO "NODES" > VALUES(1,'trunk/iota',0,'trunk',1,'trunk/iota',2,'not-present',NULL,NULL,'file',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL); > % $svnversion > 2M > % $svn st > A + C iota >> local edit, incoming delete upon update > Summary of conflicts: > Tree conflicts: 1 > ]]] > > After reverting 'iota': > > [[[ > % $svn revert iota > Reverted 'iota' > % svnqlite3-dump ../ | grep iota > INSERT INTO "NODES" > VALUES(1,'trunk/iota',0,'trunk',1,'trunk/iota',2,'not-present',NULL,NULL,'file',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL); > % $svnversion > 2 > % $svn st -q > % $svn st -v iota > ? iota > ]]] > > I've used the following meta-recipe to reproduce: > > [[[ > create a greek tree working copy > > cd wc1/trunk > $svn rm -q iota > echo alt > iota > $svn add -q iota > $svn ci -qm replace > > $svn up -qr 1 > echo mod >> iota > > $svn up > ]]] > > On Wed, 20 Apr 2011 16:34 -0700, "Andrew Buchanan" <abucha...@grio.com> wrote: >> Hello all, >> I just got bitten by what looks like a bug in the handling of tree conflicts >> involving replaced files. To demonstrate: >> User A replaces foo.txt and commits their change: >> $ svn st -v >> R 4 4 abuchanan foo.txt >> $ svn commit -m 'replacing foo' >> Replacing foo.txt >> >> User B has modified foo.txt and gets a tree conflict when they svn up: >> $ svn up >> C foo.txt >> At revision 5. >> Summary of conflicts: >> Tree conflicts: 1 >> $ svn st -v >> A + C - 4 abuchanan foo.txt >>> local edit, incoming delete upon update >> >> Knowing that their modifications can be discarded, user B tries to get >> things on track by reverting foo.txt. >> ***This results in their local foo.txt no longer being versioned and their >> working directory "forgetting" about the incoming replacement.*** >> $ svn revert foo.txt >> Reverted 'foo.txt' >> $ svn st -v >> 5 5 abuchanan . >> ? foo.txt >> $ svn up >> At revision 5. >> $ svn st -v >> 5 5 abuchanan . >> ? foo.txt >> $ >> >> foo.txt is in the repository, but svn up doesn't grab it. Deleting the now >> unversioned copy and running svn up with foo.txt as the explicit target will >> correctly check it out, but it can be hard to realize that something's >> missing when svn st and svn up of that directory say that everything's up to >> date. >> >> Thanks, >> -Andrew >> -- Stephen Butler | Senior Consultant elego Software Solutions GmbH Gustav-Meyer-Allee 25 | 13355 Berlin | Germany tel: +49 30 2345 8696 | mobile: +49 163 25 45 015 fax: +49 30 2345 8695 | http://www.elegosoft.com Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194