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

Re: svn commit --non-recursive dir_path gives error "Cannot non-recursively commit a directory deletion"

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: 2005-07-26 21:12:42 CEST

Jim Correia wrote:
> On Jul 26, 2005, at 2:23 PM, Julian Foad wrote:
>
>> To do things like that you would need to be able to specify "non-
>> recursive" per target rather than per command, which is an
>> enhancement worth thinking about about.
>
> I'm not even sure what the syntax would be for the command line or the
> --targets file. Do you have any ideas?

We don't need to decide on an invocation syntax before we decide whether we
want the behaviour. If we want the behaviour we'll design a user interface for it.

>> svn commit -N dir1 `find dir2 -name .svn -prune -o -print`
>
> I see how that works around the cannot recursively add problem. But I
> don't see how it solves my original problem of needing to non-
> recursively commit a propchange and a delete in a single revision. Am I
> missing something?

Ah - I see - that doesn't work. Subversion refuses to delete the directory
even if it is empty or all of its children are being deleted by the same
command. I consider that to be a bug. I don't think it's fair to refuse to
treat the directory as a leaf node in those situations. I'd welcome a patch to
fix that.

John Peacock wrote:
>
> I would argue that any action on a directory (which is a container
> object, not a leaf) is inherently a recursive operation, even if the
> directory itself is empty. Personally, I would always throw an error if
> you tried to non-recursively delete a directory (even empty) because of
> the high likelyhood that this is not what you meant to do.

I disagree. I think it would be fine and useful to treat an empty directory as
a leaf.

> We could be
> nice and just warn "non-recursive delete not permitted on directories"
> and permit other non-recursive actions to proceed unabated.

Yuck. Double yuck during a commit, which is the operation we are talking
about, because the user wouldn't get a chance to correct their working copy or
their command and try again.

- Julian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Jul 26 21:13:37 2005

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

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