CvsCheckin
From Pickwiki
Jump to navigationJump to search
HomePage >> BasicSource >> TclStack
A helper program to check programs in to CVS
SUBROUTINE CVS.CHECKIN(RTN, FILE, ITEM, OPTIONS) *************************************************************************** * Program: CVS.CHECKIN * Author : $Author: dsiroot $ * Date : 11/08/2002 * Edited : $Id: CVS.CHECKIN,v 1.7 2003/10/02 22:02:08 dsiroot Exp $ * Comment: *************************************************************************** *$Log: CVS.CHECKIN,v $ *Revision 1.7 2003/10/02 22:02:08 dsiroot *mcgowan:Do not allow double quotes in checkin message * *Revision 1.6 2003/04/10 03:30:58 dsiroot *mcgowan:Change CVS.STATUS return params * *Revision 1.5 2002/12/18 17:32:34 dsiroot *mcgowan:Supress screen output if auto checkin * *Revision 1.4 2002/11/12 09:46:39 dsiroot *Auto Checkin * *Revision 1.3 2002/11/12 08:27:09 dsiroot *dsiroot:Fix heading, use : rather than - * *Revision 1.2 2002/11/12 08:23:16 dsiroot *dsiroot-Prepend user name to checkin message * *Revision 1.1 2002/11/12 07:44:02 dsiroot *Add AUTO option * *Revision 1.0 2002/11/09 02:01:06 mcgowan *INITIAL CHECKIN * IF OPTIONS<1>='AUTO' THEN AUTO=1 ELSE AUTO=0 PROMPT '' RTN='' CALL CVS.GETDIR(DIR,FILE) * Decide if we need to add or commit CALL CVS.STATUS(STATUS.RTN,FILE,ITEM,'') STATUS=STATUS.RTN<1> WORK.VER=STATUS.RTN<2> CVS.VER=STATUS.RTN<3> BEGIN CASE CASE STATUS='NOTINCVS' GOSUB ADD.IT; SLEEP 3; GOSUB COMMIT.IT CASE STATUS='UPTODATE' IF NOT(AUTO) THEN PRINT 'Already up-to-date' CASE STATUS='MODIFIED' IF NOT(AUTO) THEN CALL CVS.DIFF(DIFF.RTN,FILE,ITEM,'SHOW') GOSUB COMMIT.IT CASE 1 PRINT 'Weird status, aborting-':STATUS END CASE RETURN ADD.IT: E=\!cd \:DIR:\;cvs add \:ITEM IF NOT(AUTO) THEN PRINT E EXECUTE E CAPTURING OUTPUT IF NOT(AUTO) THEN I=DCOUNT(OUTPUT,@AM) FOR F=1 TO I; PRINT OUTPUT<F>; NEXT F END RETURN COMMIT.IT: IF AUTO THEN MSG="Auto Checkin" END ELSE PRINT "Enter short comment: ": INPUT MSG CONVERT \"\ TO \'\ IN MSG IF MSG = "/" OR MSG="" THEN PRINT "Checkin aborted" ; RETURN END MSG=@LOGNAME:":":MSG END E=\!cd \:DIR:\;cvs commit -m "\:MSG:\" \:ITEM IF NOT(AUTO) THEN PRINT E EXECUTE E CAPTURING OUTPUT IF NOT(AUTO) THEN I=DCOUNT(OUTPUT,@AM) FOR F=1 TO I; PRINT OUTPUT<F>; NEXT F END RETURN