Hi,
I have made the following changes to the CVS source code so that it better
suits my needs; it would be nice if you could roll these into the official
codebase.
The first change involves adding the following logic to the end of the
remove_entry_and_file() function in client.c:
else
{
char *p = short_pathname;
if(strlen(p) > 2)
if(!strncmp(p, "./", 2))
p += 2;
cvs_output("X ", 0);
cvs_output(p, 0);
cvs_output("\n", 1);
}
This causes CVS to print out an update record for files that have been deleted
from the repository since the last update, e.g.:
U src/foo.c
A src/bar.c
X src/baz.c
which means foo.c was updated, bar.c was added, and baz.c was removed. This
makes it much easier for tools and scripts that use CVS to determine that a
file has been removed (the alternative was to parse the stderr output for "xxx
is no longer pertinent" warnings, which was ugly).
====
The second change entails adding a new command line switch to the 'cvs update'
command. I chose '-z' but that was arbitrary. In update.c, in the argument
parsing loop, I modified the while statement as follows:
while ((c = getopt (argc, argv, "+ApPflRQqduk:r:D:j:I:W:z:")) != -1)
and added the switch statement:
case 'z':
ign_dir_add(strdup(optarg));
break;
This allows me to specify directories to ignore when doing a 'cvs update'. All
the support for ignoring directories already exists in CVS: it's just not
accessible because AFAIK there is no command line switch to invoke the
behavior (-I apparently only ignores files, not directories). For example:
cvs update -d -z skipme
Would ignore the directory 'skipme' during update.
====
These two changes are trivial but make my life soooo much easier...it would be
great if you could incorporate them into the CVS codebase.
Cheers,
Mark
------------------------------------------------------------------------------
Mark Lindner http://www.dystance.net/ [EMAIL PROTECTED]
------------------------------------------------------------------------------
begin:vcard
n:Lindner;Mark
x-mozilla-html:FALSE
org:eBuilt, Inc.;Engineering
adr:;;;;;;
version:2.1
email;internet:[EMAIL PROTECTED]
title:Java Developer / UNIX Evangelist
x-mozilla-cpt:;0
fn:Mark Lindner
end:vcard