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

"svn update --set-depth=exclude" exits prematurely, leaving repo in need of cleanup

From: Jim Barry <jim_at_chez-jim.net>
Date: Mon, 27 Jun 2016 14:51:48 +0000 (UTC)

When excluding a subtree from the working copy, if any unversioned items
are present then the svn update command fails silently, leaving the
working copy locked and requiring cleanup.

This is with version 1.9.4, the current release.

Reproducing the problem is fairly straightforward. Create a new repo (or
just use an existing one):

$ svnadmin create repo
$ svn checkout file://`pwd`/repo wc
Checked out revision 0.

Add a directory and subdirectory:

$ cd wc
$ mkdir dir
$ mkdir dir/subdir1
$ svn add dir
A dir
A dir/subdir1
$ svn commit -m "Added dir"
Adding dir
Adding dir/subdir1
Committing transaction...
Committed revision 1.

Create another subdirectory, without adding it to the repo:

$ mkdir dir/subdir2

Now, let's exclude "dir" from the working copy:

$ svn update --set-depth exclude dir
D dir/subdir1

OK, so svn says it has deleted "dir/subdir1", but has left "dir" alone.
Fair enough, as "dir" contains the unversioned item "subdir2".

But wait - let's take a peek:

$ ls dir
subdir1 subdir2

Huh? What is "subdir1" still doing there? Let's quickly do a regular

$ svn update
svn: E155037: Previous operation has not finished; run 'cleanup' if it
was interrupted

Oooh, that's not good! Let's take a closer look:

$ svn status
  L .
  L dir
? dir\subdir1
? dir\subdir2

Yikes! Looks like svn bailed out without finishing the job.

This must be a bug, right? Any chance somebody can take a look at it?

Received on 2016-06-27 17:00:15 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.