[Cvsnt] How can checkout CVSROOT/modules
Jo.Kilian at gmx.de
Jo.Kilian at gmx.de
Mon Feb 11 09:01:42 GMT 2002
>I'm not a WinCVS user (I prefer the command-line tool),
>but all you will probably need is to convert:
>
> cvs history -c -a -l | awk '{sub(/[/].*/,"",$8); print $8;}' | sort -u
>
>to Python. All the above does is:
> a) collect the output of the cvs history
> b) strip field 8 (delimited by spaces/tabs) of all
> characters following the first '/' character
> c) prints _only_ field 8 (throws away all other fields)
> d) perform a unique sort (throwaway duplicates) of
> the result.
>
>I imagine that would be quite easy in Python.
It's qite easy in Perl too ... ;-)
Johannes
cvsmodules.pl:
-------------------------------------------------------
#!/usr/bin/perl -w
#
# cvsmodules - List all modules in repository
#
# by Johannes Kilian (jo.kilian at gmx,de)
#
use strict;
use vars qw($VERSION);
$VERSION = '1.000';
open LOG, "cvs history -c -a -l |";
my %modules;
while (<LOG>) {
# Replace all tabs with space
$_ =~ s/\t+/ /g;
# Replace all multiple spaces with single space
$_ =~ s/ +/ /g;
# Split the line into words (word separator: space)
my @words = split(/ /, $_);
# Build a hash containing only the module names
$modules{$words[7]}="";
}
# Print out a sorted list of all the modules
print "$_\n" for sort { lc $a cmp lc $b } keys(%modules);
exit 0;
__END__
=head1 NAME
cvsmodules - List CVS modules
=head1 SYNOPSIS
B<cvsmodules>
=head1 DESCRIPTION
Use B<cvsmodules> to determine all the modules defined in the
current CVS repository. The CVS repository can be set, using
the environmenet variable CVSROOT.
As a prerequisite, the history feature of CVS has to be turned
on. To do this, you will need to make a file called history
in <cvs-repository>/CVSROOT. Changes to the repository are
recorded in that file.
=head1 OPTIONS
None.
=head1 AUTHOR
Johannes Kilian <jo.kilian at gmx.de> (based on a suggestion from
Andrew Hamilton-Wright )
=cut
#
# End of file.
#
----------------------------------------------------------
--
GMX - Die Kommunikationsplattform im Internet.
http://www.gmx.net
_______________________________________________
Cvsnt mailing list
Cvsnt at cvsnt.org
http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt
More information about the cvsnt
mailing list