-#!/bin/sh -e
+#!/bin/bash -e
progname=${0##*/}
fi
if [ $# -lt 2 -o $# -gt 3 ]; then
- echo "This is phase 1 of replacing branches. Usage: $0 parent(old) child(new) [dir]"
+ echo "This is phase 1 of replacing branches. Run this in the PARENT tree. Usage: $0 parent(will be replaced) child(will become the new parent) [dir]"
exit
fi
echo "done"
# Tag parent before merge
-echo -n "Tagging as ${PARENT}_${CHILD}_REPLACE_PARENT_$date ..."
-$CVS tag ${PARENT}_${CHILD}_REPLACE_PARENT_$date $dir
+echo -n "Create land-to point on $parent as ${PARENT}_${CHILD}_REPLACE_PARENT_$date ..."
+$CVS rtag -r $parent ${PARENT}_${CHILD}_REPLACE_PARENT_$date $module
echo "done"
# Tag child before merge
-echo -n "Create land point on ${child} ${PARENT}_${CHILD}_REPLACE_CHILD_$date ..."
-$CVS tag -r ${child} ${PARENT}_${CHILD}_REPLACE_CHILD_$date $dir
+echo -n "Create land-from point on ${child} ${PARENT}_${CHILD}_REPLACE_CHILD_$date ..."
+$CVS rtag -r ${child} ${PARENT}_${CHILD}_REPLACE_CHILD_$date $module
echo "done"
# In case someone tries to re-land later
-echo -n "Preserve old base tag ${CHILD}_BASE as ${CHILD}_BASE_PREV ..."
-$CVS tag -F -r ${CHILD}_BASE ${CHILD}_BASE_PREV $dir
+echo -n "Preserve old base tag on $parent ${CHILD}_BASE as ${CHILD}_BASE_PREV ..."
+$CVS rtag -F -r ${CHILD}_BASE ${CHILD}_BASE_PREV $module
echo "done"
# Apply all of the changes to your local tree:
echo -n "Updating as -j $parent -j $child ..."
-$CVS update -j $parent -j $child $dir
+$CVS update -j $parent -j $child -dP $dir
echo "done"
echo -n "Recording conflicts in $CONFLICTS ..."
-$CVS update | awk '/^C/ { print $2 }' > $CONFLICTS
+$CVS update $dir | awk '/^C/ { print $2 }' > $CONFLICTS
if [ -s $CONFLICTS ] ; then
echo "Conflicts found, fix before committing."
cat $CONFLICTS
fi
+echo "done"
-$CVS diff --brief -r $CHILD $dir >> $CONFLICTS
+echo -n "Verifying that there are no diffs from $child ..."
+$CVS diff --brief -r $child $dir >> $CONFLICTS
if [ -s $CONFLICTS ] ; then
echo "Danger! The child branch $CHILD differs from the updated branch $dir"
cat $CONFLICTS
echo "No conflicts found"
rm -f $CONFLICTS
fi
-
echo "done"
echo "Build, test, commit and then run replace2.sh (no arguments)"