info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS loginfo message output


From: McCann, Brian
Subject: CVS loginfo message output
Date: Wed, 16 May 2001 08:21:27 -0400

Hi,

after I commit a file I've been getting "Status: Needs Checkout"  when this
file was just committed
usually the message states "Status:Up-to-date".Also the message "File: no
file MediaServerConsoleInterface.cpp"   
appears even though the file was just worked on.

I put the perl script I'm using and the output from a recent commit below.
also here is the entry from my loginfo file which calls the perl script
^source_code /cvs/cvsroot/CVSROOT/log.pl %s -f
/cvs/cvsroot/CVSROOT/commitlog -m address@hidden

Thanks,
Brian

############################################################################
######################


Date:   Tuesday May 15, 2001 @ 9:15
Author: bmccann

Update of
/cvs/cvsroot/source_code/internal_product/server/src/processes/ps_mgcp_agent
In directory scrumhalf.pactolus.com:/tmp/cvs-serv16298

Modified Files:
        MediaServerConsoleInterface.cpp MediaServerConsoleInterface.h 
        MediaServerRes.cpp MediaServerRes.h 
Log Message:
Console support for media server /endpoint disconnected status 
===================================================================
File: no file MediaServerConsoleInterface.cpp           Status: Needs
Checkout

   Working revision:    1.9     Tue May 15 13:15:50 2001
   Repository revision: 1.9
/cvs/cvsroot/source_code/internal_product/server/src/processes/ps_mgcp_agent
/MediaServerConsoleInterface.cpp,v


############################################################################
##################################################
#!/usr/bin/perl  
# -*-Perl-*-
#
# XXX: FIXME: handle multiple '-f logfile' arguments
#
# XXX -- I HATE Perl!  This *will* be re-written in shell/awk/sed soon!
#

# Usage:  log.pl [[-m user] ...] [-s] -f logfile 'dirname file ...'
#
#       -m user         - for each user to receive cvs log reports
#                       (multiple -m's permitted)
#       -s              - to prevent "cvs status -v" messages
#       -f logfile      - for the logfile to append to (mandatory,
#                       but only one logfile can be specified).

# here is what the output looks like:
#
#    From: address@hidden
#    Subject: CVS update: testmodule
#
#    Date: Wednesday November 23, 1994 @ 14:15
#    Author: woods
#
#    Update of /local/src-CVS/testmodule
#    In directory kuma:/home/kuma/woods/work.d/testmodule
#    
#    Modified Files:
#       test3 
#    Added Files:
#       test6 
#    Removed Files:
#       test4 
#    Log Message:
#    - wow, what a test
#
# (and for each file the "cvs status -v" output is appended unless -s is
used)
#
#    ==================================================================
#    File: test3                Status: Up-to-date
#    
#       Working revision:       1.41    Wed Nov 23 14:15:59 1994
#       Repository revision:    1.41
/local/src-CVS/cvs/testmodule/test3,v
#       Sticky Options: -ko
#    
#       Existing Tags:
#       local-v2                        (revision: 1.7)
#       local-v1                        (revision: 1.1.1.2)
#       CVS-1_4A2                       (revision: 1.1.1.2)
#       local-v0                        (revision: 1.2)
#       CVS-1_4A1                       (revision: 1.1.1.1)
#       CVS                             (branch: 1.1.1)

$cvsroot = $ENV{'CVSROOT'};

# turn off setgid
#
$) = $(;

$dostatus = 1;

# parse command line arguments
#
while (@ARGV) {
        $arg = shift @ARGV;

        if ($arg eq '-m') {
                $users = "$users " . shift @ARGV;
        } elsif ($arg eq '-f') {
                ($logfile) && die "Too many '-f' args";
                $logfile = shift @ARGV;
        } elsif ($arg eq '-s') {
                $dostatus = 0;
        } else {
                ($donefiles) && die "Too many arguments!\n";
                $donefiles = 1;
                @files = split(/ /, $arg);
        }
}

# the first argument is the module location relative to $CVSROOT
#
$modulepath = shift @files;

$mailcmd = "| Mail -s 'CVS update: $modulepath'";

# Initialise some date and time arrays
#
@mos = (January,February,March,April,May,June,July,August,September,
        October,November,December);
@days = (Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
$year = $year += 1900;

# get a login name for the guy doing the commit....
#
$login = getlogin || (getpwuid($<))[0] || "nobody";

# open log file for appending
#
open(OUT, ">>" . $logfile) || die "Could not open(" . $logfile . "): $!\n";

# send mail, if there's anyone to send to!
#
if ($users) {
        $mailcmd = "$mailcmd $users";
        open(MAIL, $mailcmd) || die "Could not Exec($mailcmd): $!\n";
}

# print out the log Header
# 
print OUT "\n";
print OUT "****************************************\n";
print OUT "Date:\t$days[$wday] $mos[$mon] $mday, $year @ $hour:" .
sprintf("%02d", $min) . "\n";
print OUT "Author:\t$login\n\n";

if (MAIL) {
        print MAIL "\n";
        print MAIL "Date:\t$days[$wday] $mos[$mon] $mday, $year @ $hour:" .
sprintf("%02d", $min) . "\n";
        print MAIL "Author:\t$login\n\n";
}

# print the stuff from logmsg that comes in on stdin to the logfile
#
open(IN, "-");
while (<IN>) {
        print OUT $_;
        if (MAIL) {
                print MAIL $_;
        }
}
close(IN);

print OUT "\n";

# after log information, do an 'cvs -Qq status -v' on each file in the
arguments.
#
if ($dostatus != 0) {
        while (@files) {
                $file = shift @files;
                if ($file eq "-") {
                        print OUT "[input file was '-']\n";
                        if (MAIL) {
                                print MAIL "[input file was '-']\n";
                        }
                        last;
                }
                $pid = open(RCS, "-|");
                if ( !defined $pid )
                {
                        die "fork failed: $!";
                }
                if ($pid == 0)
                {
                        exec 'cvs', '-nQq', 'status', '-v', $file;
                        die "cvs exec failed: $!";
                }
                while (<RCS>) {
                        print OUT;
                        if (MAIL) {
                                print MAIL;
                        }
                }
                close(RCS);
        }
}

close(OUT);
die "Write to $logfile failed" if $?;

close(MAIL);
die "Pipe to $mailcmd failed" if $?;

## must exit cleanly
##
exit 0;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]