You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Johan Corveleyn <jc...@gmail.com> on 2016/06/16 21:32:12 UTC

Making working copy sparse loses local deletes / moves

Hi all,

I'm following through on a thread I started on the users list, about
"sparsifying a working copy" [1] (i.e. invoking 'svn up --set-depth
empty' on a parent directory, in order to selectively retrieve
specific children later). It looks like there is a bug when "emptying"
a directory like that, and I'd like to get some opinions here about
the expected behaviour.

When making a directory depth=empty, svn is careful not to lose local
modifications (modified files are left there as part of the sparse
working copy -- same for added files). However, local deletes are lost
(and consequently also moves are broken, only the A+ is left). It
think that's a bug, it makes it hard to confidently make a working
copy more sparse.

Copy-pasting some reproduction transcripts from the users@-thread below:

Sparsification breaking a move [2]:
[[[
C:\svntest>svnadmin create r

C:\svntest>svn co -q file:///c:/svntest/r wc

C:\svntest>cd wc

C:\svntest\wc>touch iota

C:\svntest\wc>svn add -q iota

C:\svntest\wc>svn ci -q -m r1

C:\svntest\wc>svn up -q

C:\svntest\wc>svn mv iota kappa
A kappa
D iota

C:\svntest\wc>svn st
D iota
> moved to kappa
A + kappa
> moved from iota

C:\svntest\wc>svn up --set-depth empty
D iota
Updating '.':
Updated to revision 1.

C:\svntest\wc>svn st
A + kappa
]]]


Sparsification losing a simple delete [3]:
[[[
C:\svntest>svn co file:///c:/svntest/r wc2
A wc2\iota
Checked out revision 1.

C:\svntest>cd wc2

C:\svntest\wc2>svn rm iota
D iota

C:\svntest\wc2>svn st
D iota

C:\svntest\wc2>svn up --set-depth empty
D iota
Updating '.':
Updated to revision 1.

C:\svntest\wc2>svn st

]]]

[1] http://svn.haxx.se/users/archive-2016-06/0064.shtml
[2] http://svn.haxx.se/users/archive-2016-06/0077.shtml
[3] http://svn.haxx.se/users/archive-2016-06/0088.shtml

-- 
Johan

Re: Making working copy sparse loses local deletes / moves

Posted by Johan Corveleyn <jc...@gmail.com>.
On Thu, Jun 16, 2016 at 11:32 PM, Johan Corveleyn <jc...@gmail.com> wrote:
> Hi all,
>
> I'm following through on a thread I started on the users list, about
> "sparsifying a working copy" [1] (i.e. invoking 'svn up --set-depth
> empty' on a parent directory, in order to selectively retrieve
> specific children later). It looks like there is a bug when "emptying"
> a directory like that, and I'd like to get some opinions here about
> the expected behaviour.
>
> When making a directory depth=empty, svn is careful not to lose local
> modifications (modified files are left there as part of the sparse
> working copy -- same for added files). However, local deletes are lost
> (and consequently also moves are broken, only the A+ is left). It
> think that's a bug, it makes it hard to confidently make a working
> copy more sparse.

Filed an issue:
https://issues.apache.org/jira/browse/SVN-4636

-- 
Johan