blob: f09cd2f433a31056ac8b805502dba0fb375d817d [file] [log] [blame]
Vikram S. Adve5e1a0d92002-09-15 16:45:10 +00001#!/bin/csh -f
Vikram S. Adve355df3f2002-02-11 20:59:26 +00002#
3# This script updates the entire tree, saves the output in cvs.out,
4# and then separately prints out the files that had merge conflicts,
5# those that were merged successfully, and those that are new.
6# Note that this script uses "cvs update -P -d".
7#
8# USAGE:
9# cvsupdate ## normal run
10# cvsupdate -n ## run grep commands on output of the last run of cvs
11# cvsupdate -h ## usage information
12#
13
14set pstatus = 0
15onintr cleanup
16alias usage 'echo "USAGE: $0:t [-h][-n]"; set pstatus = 1; goto cleanup'
17
18set doit = 1
Vikram S. Adve38bb2ff82002-10-31 15:32:24 +000019set printnew = 0
Vikram S. Adve355df3f2002-02-11 20:59:26 +000020unset options_done
21while ( !( $?options_done ) && ($#argv > 0))
22 switch ($argv[1])
23 case -h :
24 usage
25 case -n :
26 set doit = 0; shift argv; breaksw
Vikram S. Adve38bb2ff82002-10-31 15:32:24 +000027 case -new :
28 set printnew = 1; shift argv; breaksw
Vikram S. Adve355df3f2002-02-11 20:59:26 +000029 default :
30 set options_done; breaksw
31 endsw
32end
33
34if ($doit == 1) then
Misha Brukman3578d7e2003-05-25 16:38:24 +000035 /bin/mv -f cvs.out cvs.out.bak >&/dev/null
Vikram S. Adve355df3f2002-02-11 20:59:26 +000036 cvs update -P -d >& cvs.out
Vikram S. Adve38bb2ff82002-10-31 15:32:24 +000037## if ($status != 0) then
38## echo "ERROR: CVS update failed: "
39## cat cvs.out
40## exit 1
Vikram S. Adve5e1a0d92002-09-15 16:45:10 +000041 endif
Vikram S. Adve355df3f2002-02-11 20:59:26 +000042else
Vikram S. Adve38bb2ff82002-10-31 15:32:24 +000043 echo ""; echo "NOT UPDATING FILES. RESULTS FROM LAST RUN:"; echo ""
Vikram S. Adve355df3f2002-02-11 20:59:26 +000044endif
45
Chris Lattner868cb7d2002-04-29 19:11:01 +000046echo ""; echo " FILES UPDATED:"
47grep '^U' cvs.out
48
49echo ""; echo " UPDATE CONFLICTS OCCURRED FOR THE FOLLOWING FILES:"
Vikram S. Adve355df3f2002-02-11 20:59:26 +000050grep '^C' cvs.out
51
Chris Lattnerfecaf562002-09-16 18:09:42 +000052echo ""; echo " FILES REMOVED FROM YOUR DIRECTORY:"
53grep 'no longer in the repository' cvs.out
54
Chris Lattner868cb7d2002-04-29 19:11:01 +000055echo ""; echo " FILES SUCCESSFULLY MERGED (or locally modified):"
Vikram S. Adve355df3f2002-02-11 20:59:26 +000056grep '^M' cvs.out | grep -v Merging
57
58echo ""; echo " NEW FILES AND DIRECTORIES:"
Vikram S. Adve38bb2ff82002-10-31 15:32:24 +000059if ($printnew != 0) then
60 grep '^\?' cvs.out | & grep -v '\.bc' | grep -v Updating | grep -v cvsup | grep -v 'cvs.out' | grep -v gnumake.out | grep -v '\.mc$' | grep -v '\.s$' | grep -v '\.native'
61else
62 echo '(USE "cvsupdate -n -new" TO SEE NEW FILES AND DIRECTORIES.)'
63endif
Vikram S. Adve355df3f2002-02-11 20:59:26 +000064
65echo ""
66
67
68#=========================================================
69# CODE TO BE EXECUTED IF INTERRUPT IS RECEIVED
70#=========================================================
71cleanup:
72 exit($pstatus)