Whamcloud - gitweb
land b_v26 (20040316_1603)
[fs/lustre-release.git] / lustre / scripts / merge1.sh
1 #!/bin/sh -e 
2
3 CONFLICTS=cvs-merge-conflicts
4 CVS="cvs -z3"
5
6 if [ -f .mergeinfo ] ; then
7     echo ".mergeinfo exists - clean up first"
8     exit 
9 fi
10
11 if [ -f $CONFLICTS ] ; then
12     echo "$CONFLICTS exists - clean up first"
13     exit 
14 fi
15
16 if [ $# != 2 ]; then
17     echo "This is phase 1 of merging branches. Usage: $0 parent child"
18     exit
19 fi
20
21 parent=$1
22 PARENT=`echo $parent | sed -e "s/^b_//" | tr "[a-z]" "[A-Z]"`
23 child=$2
24 CHILD=`echo $child | sed -e "s/^b_//" | tr "[a-z]" "[A-Z]"`
25 date=`date +%Y%m%d_%H%M`
26 module=lustre
27
28 case $parent in
29   HEAD) : ;;
30   b_*|b1*) : ;;
31   *) parent="b_$parent" ;;
32 esac
33 case $child in
34   HEAD) : ;;
35   b_*|b1*) : ;;
36   *) child="b_$child"
37 esac
38
39 if [ "$child" != "HEAD" -a "`cat CVS/Tag`" != "T$child" ]; then
40         echo "This script must be run within the $child branch"
41         exit 1
42 fi
43
44 cat << EOF > .mergeinfo
45 parent=$parent
46 PARENT=$PARENT
47 child=$child
48 CHILD=$CHILD
49 date=$date
50 module=$module
51 CONFLICTS=$CONFLICTS
52 EOF
53
54 echo PARENT: $PARENT parent: $parent CHILD: $CHILD child: $child date: $date
55
56 echo -n "tagging $parent as '${PARENT}_${CHILD}_UPDATE_PARENT_$date' ...."
57 $CVS rtag -r $parent ${PARENT}_${CHILD}_UPDATE_PARENT_$date $module
58 echo "done"
59 echo -n "tagging $child as '${PARENT}_${CHILD}_UPDATE_CHILD_$date' ...."
60 $CVS rtag -r $child ${PARENT}_${CHILD}_UPDATE_CHILD_$date $module
61 echo "done"
62 echo "Updating: -j ${CHILD}_BASE -j ${PARENT}_${CHILD}_UPDATE_PARENT_$date ...."
63 $CVS update -j ${CHILD}_BASE -j ${PARENT}_${CHILD}_UPDATE_PARENT_$date -dP
64 echo "done"
65 echo -n "Recording conflicts in $CONFLICTS ..."
66 if $CVS update | grep '^C' > $CONFLICTS; then
67     echo "Conflicts found, fix before committing."
68     cat $CONFLICTS
69 else 
70     echo "No conflicts found"
71     rm -f $CONFLICTS
72 fi
73 echo "Test, commit and then run merge2.sh (no arguments)"