info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Help! Disappearing log messages


From: J Krugman
Subject: Re: Help! Disappearing log messages
Date: Fri, 28 May 2004 13:51:03 +0000 (UTC)
User-agent: nn/6.6.5

In <address@hidden> "address@hidden" <address@hidden> writes:

>J Krugman writes:
>>
>> This was the problem!  Thanks!!  (I can't believe commit fails
>> silently like this=2E)

>It doesn't fail, it works just fine=2E  Commit commits *changes*; if there=

>aren't any changes, then there's nothing to commit!

Well, what about this case:

  $ rm    non_existent_file 2>/dev/null ; echo $?
  1
  $ rm -f non_existent_file 2>/dev/null ; echo $?
  0

One could argue that rm should return 0 in both cases: there was
nothing to remove!  I think the author(s) of this rm got it right:
the user issued a command, which implies he/she had some expectations
*other* than "do nothing"; good software, IMO, informs the user
when these likely expectations are not fulfilled.

>> During
>> my *very* short acquaintance with CVS, I've already come across
>> many oddities=2E  Its exit status is meaningless, apparently=2E

>That's because a typical command performs a bunch of functions and it's
>quite possible for some of them to succeed and some of them to fail=2E  It=
>'s
>not at all clear how to encode that into a single exit status=2E

If the functions returns non-zero (i.e. failure) then it should at
least issue a warning explaining why.  Check this out:

  % cvs -d ~/dummy_cvs init
  % mkdir DummyProj
  % cd DummyProj
  % ln -s $HOME/.bashrc dummy_link
  % cvs -d ~/dummy_cvs im -m 'just a test' DummyProj krugman start ; echo $?
  L DummyProj/dummy_link

  No conflicts created by this import

  1

Even though no warnings are issued, and in fact the reassuring "No
conflicts" message is issued at the end, this import command returns
a failure code.  To the uninitiated (like me) this sort of stuff
is bewildering.

>> The global -Q flag works for some commands, but not for others=2E


>> CVS does not save any human-readable information about tags=2E

>What information would you have it save?  People use tags for a very wide
>variety of reasons; in most cases, the name of the tag is the only propert=
>y
>of interest=2E

There have been a few occasions when I've wanted to provide a bit
of detail about why a branch was created, and having a way to add
comments to the tag would have been very useful.  I'm not the only
one who thinks this way.  Fogel and Bar (of Open Source Development
with CVS) write:

  Given their importance as descriptors, it's a bit unfortunate
  that log messages can't be included with tags or that the tags
  themselves can't be full paragraphs of prose... sometimes you
  might want to make snapshots of a ... complex state, which can
  result in ungainly tag names such as:

  yarkon$ cvs tag testing-release-3_pre-20010525-public-release

>CVS does provide facilities for recording additional data =
>if
>you want to do so=2E

About tags?  I'd be interested in knowing what those facilities are.

Don't get me wrong.  I think that, once one learns its many quirks,
cvs is a very useful tool.  On the whole, I'm very glad it is freely
available.  But it is decidedly weird from the point of view of
software design, particularly given that its user base is software
developers.  It reminds me of a Spanish saying: "en casa del herrero,
cuchillo de palo", which can be losely translated to "in the
blacksmith's home, the knives are made of wood."

jill
-- 
To  s&e^n]d  me  m~a}i]l  r%e*m?o\v[e  bit from my a|d)d:r{e:s]s.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]