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

Reply via email to