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

Re: exit codes and locking

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: 2005-04-08 20:41:04 CEST

Jim Correia wrote:
> On Apr 8, 2005, at 1:27 PM, Julian Foad wrote:
>>> However, if I attempt to lock a file that is locked in another
>>> working copy, it fails with an error message, but the exit code is 0.
>> Bug. Thanks for reporting it.

On second thoughts, I wonder if this was intentional?

> Should I file it in the issue tracker?

It would be best if you could wait a day or so first, to see if anyone refutes
this or is likely to fix this quickly. (They might, as the locking code is
fresh in some people's minds.) But if there is no such response, or if you
can't conveniently wait, yes please file an issue.

>>> This is using the 1.2rc1 tarball.
>>> ===
>>> I picked rm as another random operation to try:
>>> correia$ svn rm someFileThatDoesNotExist
>>> correia$ echo $?
>>> 0
>>> Is that as it should be, or should it complain that the file doesn't
>>> exist?
>> Hmm... svn is not very good at responding to files that do not exist
>> (neither on disk nor in version control) - it tends to ignore them as
>> if you hadn't mentioned them. I think that's what's happening here
>> ("OK, I've removed any files you asked me to - which wasn't any at
>> all"). Likewise "svn up foo" and "svn st foo" silently succeed even
>> if "foo" is nonexistent and unknown. I regard those all as bugs. I
>> don't know if they are all filed in the issue tracker.
> Should I file a bug against the rm case in the issue tracker, or not?

Yes, please. But don't assume that the resolution will necessarily be that the
operation should fail. There was recently a very similar comment on the
behaviour of "propdel" silently succeeding on a non-existent property, and the
same three options apply:

1. Silently skip the item (as we do now), and continue successfully. Document
the behaviour as intentional. Currently:
   svn rm
   svn status
   svn update

2. Print a warning, skip the item, and continue successfully. Currently:
   svn revert

3. Print an error and fail immediately. Currently:
   all other commands

Although (3) is only changing undocumented behaviour in the presence of invalid
inputs, it could be argued to be an incompatible change in behaviour.

> What happens if I do
> svn rm foo bar
> and foo exists, but bar does not? What should it return in that case? :-)

Case 3: failure. Cases 1 and 2: success.

- Julian

To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Apr 8 20:42:29 2005

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