Thanks for catching the problem.

I guess, it will be practical to use 1971 unless someone's timezone is off
by a year :-) Folks, who used RCS before 1971 are out of luck as well. Here
is a better featured version:

------------------ cut here --------------------------
#!/bin/sh

# lists files and directories in the module(s) on the server without
# checking them out
#
# Eugene Kramer <[EMAIL PROTECTED]>

usage()
{
                echo "Usage:"
                echo "  cvsls [-bql] [-r rev | -D date] modules..."
                echo "  -b      Print basename for files"
                echo "  -q      Do not print versions"
                echo "  -l      Local directory only, not recursive"
                echo "  -r rev  List files and revisions for tag rev"
                echo "  -D date List files and revisions as of date"
}

while getopts lbqD:r: arg
do
        case $arg in 
                r)      tagsw="-r $OPTARG";;
                D)      datesw="-D $OPTARG";;
                l)      flat="-l";;
                q)      padver=" ";;
                b)      basename=" ";;
                H)      usage
                        exit 0;;
                \?)     usage
                        exit 1;;
        esac
done

shift `expr $OPTIND - 1`

[ $# = 0 -o \( ! -z "$tagsw" -a ! -z "$datesw" \) ] && usage && exit 1
[ -z "$padver" ] && padver='(\1)'               # extract revision in sed
[ -z "$basename" ] && basename='\1'     # preserve file's path

cvs rdiff -s $flat -D 01/01/1971 $tagsw $datesw "$@"  2>&1 \
    | sed -e 's/File.//' \
                  -e 's/is new; current revision./      (/' \
                  -e "s/(\([0-9][\.0-9]*\)/$padver/" \
                  -e 's/^cvs server: Diffing/cvs server: Listing/' \
                  -e "/^cvs server: Listing/!s@^\(.*/\)@$basename@" \
                  -e 's/[       ]*$//'

Reply via email to