Zdravo,
nekdo je vprasal za nekaj podobnega kar pocne skripta cvslist.pl
ki je prilozena temu mail-u. Za vsako datoteko iz CVSja izpise
revizijo (in zadnji tag ce obstaja). Nekoc je izpisala se datum
zadnje spremembe a pri uporabi remote CVS-ja (a-la sourceforge)
tega podatka ni na voljo tako da sem raje razsiril druga polja in
to vrgel ven.
Skripta cvslog.sh pa izpise komentar ki je bil uporabljen pri
check-inu za vsako revizijo podane datoteke. Upam da bo komu
to v pomoc.
Lp,
Darko
cvslist.pl
#!/bin/sh
#
# cvslog.sh v1.0
# Copyright (C) 2001 by Darko K. <[EMAIL PROTECTED]>
#
# Distributed under the GNU GPL
#
# For given file print cvs log history
#
if [ $# -lt 1 ]
then
echo Usage: `basename $0` filename
exit 1
fi
CVSFILE=`cvs log -h $1 | grep "Working file: $1" | awk '{print $3}'`
echo $CVSFILE
cvs log $CVSFILE > /tmp/cvslogtmp.$$ 2>&1
if [ "$CVSFILE" = "" ];
then
echo File $1 not in CVS
rm -f /tmp/cvslogtmp.$$
exit 1
fi
tac /tmp/cvslogtmp.$$ | awk '
/^=====/ {
comment=1;
count=0
}
/^-----/ {
comment=1;
count=0
}
/^branches:/ {
comment=0
}
/^date:/ {
filedate=$2" "$3;
author=$5;
sub(";","",filedate);
sub(";","",author);
comment=0
}
/^revision/ {
printf "%s rev %7s %s ",filedate,$2,author
for (i=count-1;i>=0;i--) printf "%s ",comments[i];
printf "\n";
count=0;
comment=0
}
{
if (comment>1) {
comments[count]=$0;
count++;
}
else {
comment++;
}
}
'
rm -f /tmp/cvslogtmp.$$
exit 0