Why does CVS treat removed files in such a special way? To be more specific,
consider the following example:
> ls
CVS/
blah.c
main.c
blah.h
> cvs tag -F some_tag
T blah.c
T main.c
T blah.h
[ make changes in blah.c ]
[ make changes in blah.h ]
> cvs remove -f main.c
> cvs commit -m ''
1.2 <--- blah.c
1.2 <--- main.c
1.2 <--- blah.h
> cvs tag -F some_tag
T blah.c
T blah.h
Note that main.c DOES NOT get tagged. Even if you 'cvs tag -F some_tag main.c'
it does not get tagged. You can ONLY tag the new (dead) revision, via
'cvs tag -r 1.2 main.c', which is cumbersome, because not all files in a source
tree are on the same revision. You can also do 'cvs tag -r HEAD main.c', but
this doesn't have the correct behaviour on a branch.
also, doing commands like 'cvs log' and 'cvs stat' (with no file arguments) do
not produce output for removed files.
This makes it extremely difficult to do ANYTHING in batch mode with CVS and I
can think of no explanation for it (other than convienience while coding CVS
features/throwback to RCS).
Can anyone think of a reason why CVS behaves this way and if others think this
actually a bug?
At the very least there should be an option to cvs that says "Run the command
on removed/dead revisions"
Dave
--
David Copeland
Software Engineering Director
NOVO
Relationship Architects for e-Business
Voice 415 646 7026 | Fax 415 646 7001
http://www.novocorp.com