Skip to content
Snippets Groups Projects
Commit 256c92d0 authored by cvs2svn's avatar cvs2svn
Browse files

This commit was manufactured by cvs2svn to create branch 'b1_6'.

parents a1af019b 4d0283e1
No related merge requests found
#
# There are four ways this Makefile can be called:
#
#
# 1. As a subdirectory from the toplevel, for automake
#
# 2. A wrapper around the kernel's makefile when building modules, to
# possibly override the .config file
#
# 3. At configure time, as the toplevel module dir for building
# kernel tests
#
# 4. At configure time, to determine the kernel's idea of $(ARCH)
#
ifeq ($(PATCHLEVEL),)
ifeq ($(LUSTRE_LINUX_CONFIG),)
# case #1
include autoMakefile
else
# case #2
# Note that this comes from make -C $LINUX -f $LUSTRE/build/Makefile
# so "include Makefile" below includes $LINUX/Makefile, not this file
include $(LUSTRE_LINUX_CONFIG)
include Makefile
endif # LUSTRE_LINUX_CONFIG
else # PATCHLEVEL
# case 3
ifneq ($(LUSTRE_KERNEL_TEST),)
ifeq ($(PATCHLEVEL),4)
all: $(LUSTRE_KERNEL_TEST)
else
extra-y = $(LUSTRE_KERNEL_TEST)
endif
endif
obj-m := conftest.o
ifeq ($(PATCHLEVEL),4)
include $(TOPDIR)/Rules.make
endif
endif # PATCHLEVEL
# case 4
echoarch:
echo $(ARCH) >$(ARCHFILE)
#! /bin/bash
#set -x
OPTVAL=`getopt -o -b:l:du:v -n 'apidoc.publish' -- "$@"`
# Note the quotes around `$OPTVAL': they are essential!
eval set -- "$OPTVAL"
if [ -d lustre/CVS ] ;then
if [ -r lustre/CVS/Tag ] ;then
branch=$(cut -c2- lustre/CVS/Tag)
else
branch=HEAD
fi
else
branch=''
fi
verbose=0
label=''
user=$USER
while true ;do
case "$1" in
-b)
branch="$2"
shift 2
;;
-l)
label="$label$2"
shift 2
;;
-u)
user="$2"
shift 2
;;
-d)
label="$label$(date '+%Y.%m.%d')"
shift
;;
-v)
verbose=$(($verbose + 1))
shift
;;
--)
shift
break
;;
*)
echo "Internal error!"
exit 1
;;
esac
done
if [ x$branch = x ] ;then
echo "No branch specified"
exit 1
fi
echo "Updating documentation for branch \`$branch'"
if [ x$label != x ] ;then
echo "Label: $label"
fi
dst="$user@shell.lustre.sun.com:/home/www/apidoc/$branch$label"
opt="-rltvzp --delete"
sshopt="ssh -l $user -oPort=922"
if [ -d apidoc.api/html ] ;then
chmod -R a+rx apidoc.api/html
rsync $opt --rsh="$sshopt" apidoc.api/html $dst/api
fi
if [ -d apidoc.ref/html ] ;then
chmod -R a+rx apidoc.ref/html
rsync $opt --rsh="$sshopt" apidoc.ref/html $dst/ref
fi
EXTRA_DIST := Makefile \
autoMakefile.am.toplevel lbuild linux-merge-config.awk \
linux-merge-modules.awk linux-rhconfig.h lmake \
lustre-kernel-2.4.spec.in \
suse-functions.sh suse-post.sh suse-postun.sh \
suse-trigger-script.sh.in README.kernel-source \
sles8-post.sh sles8-postun.sh sles8-pre.sh \
sles8-update_INITRD_MODULES.sh \
sles8-update_rcfile_setting.sh \
update_oldconfig
MOSTLYCLEANFILES := @MOSTLYCLEANFILES@
# Override the default distclean, which removes Makefile
distclean: distclean-recursive
@true
SUBDIRS := autoconf
#!/bin/bash -e
CVS=${CVS:-cvs}
progname=${0##*/}
if [ $# -lt 2 -o $# -gt 3 ]; then
echo "This creates a new branch in CVS. Usage: $progname parent child <dir>"
exit
fi
parent=$1
child=$2
CHILD=`echo $child | sed -e "s/^b_//" | tr "[a-z]" "[A-Z]"`
dir=${3:-.}
if [ ! -d $dir ]; then
echo >&2 "${progname}: directory '$dir' does not exist."
exit 1
fi
module=$(basename $(<$dir/CVS/Repository))
if [ "$module" = "lustre" ]; then
echo >&2 "${progname}: You probably want to branch lustre or lnet."
echo >&2 "${progname}: Try using ${0} $parent $child lustre"
exit 1
fi
case $parent in
HEAD) : ;;
b_*|b1*) : ;;
*) parent="b_$parent" ;;
esac
case $child in
HEAD) : ;;
b_*|b1*) : ;;
*) child="b_$child"
esac
#if [ "$parent" != "HEAD" -a -f $dir/CVS/Tag ]; then
# put in separate condition as bash evaluates all conditions unlike C
# if [ "`cat $dir/CVS/Tag`" != "T$parent" ]; then
# echo "This script must be run within the $parent branch"
# exit 1
# fi
#fi
echo parent: $parent CHILD: $CHILD child: $child date: $date
echo -n "tagging $parent as '${CHILD}_BASE' ...."
$CVS rtag -r $parent ${CHILD}_BASE $module
echo "done"
echo -n "branching $child at ${CHILD}_BASE' ...."
$CVS rtag -b -r ${CHILD}_BASE $child $module
echo -n "updating $dir to $child ...."
$CVS update -r $child $dir
echo "done"
#!/bin/bash
# Put this script and cvs-modified-files.pl into your PATH (~bin is good) and
#
# export CVSEDITOR=cvsdiffclient
#
# in your .bashrc and you will get a nice bunch of CVS commit reminders:
# <merge/land tag information>
# b=<bug_number>
# i=<inspected_by>
# i=<inspected_by>
#
# Remember to remove the leading "CVS: " part of the comment before saving
# your commit comment if you want those entries to be saved.
[ -f .mergeinfo ] && . ./.mergeinfo
CVS_MODIFIED_FILES_PL=$(which cvs-modified-files.pl 2>/dev/null)
if [ -z "$CVS_MODIFIED_FILES_PL" ]; then
CVS_MODIFIED_FILES_PL=$(dirname $0)/cvs-modified-files.pl
fi
FILES=$($CVS_MODIFIED_FILES_PL $1)
TMP=`mktemp /tmp/cvslog-XXXXXXXX`
if [ -f $TMP ]; then
cat - >> $TMP <<- EOH
CVS: did you test your fix properly (acc-sm.sh, or as needed)?
CVS: did you update the ChangeLog for a bug fix?
CVS: did you verify/update affected user documentation?
CVS: Remove "CVS:" from lines below to include in commit message
EOH
[ -f .mergeinfo ] && . .mergeinfo
[ -z "$PARENT" -a -f lustre/.mergeinfo ] && . lustre/.mergeinfo
if [ "$PARENT" ]; then
[ "$OPERATION" ] || OPERATION=Update
[ "$OPERWHERE" ] || OPERWHERE=from
echo "CVS: $OPERATION $child $OPERWHERE $parent ($date)" >> $TMP
else
[ -r CVS/Tag ] && TAG=CVS/Tag
[ -z "$TAG" -a -r lustre/CVS/Tag ] && TAG=lustre/CVS/Tag
[ "$TAG" ] && BRANCH="`sed 's/^T//' $TAG`" || BRANCH="HEAD"
echo "CVS: Branch $BRANCH" >> $TMP
fi
# We can't just put these into the commit template without the leading
# "CVS: ", otherwise exiting the commend edit would still leave a valid
# comment in the file and the commit will still be done. We need to
# make a file without valid comments to allow the commit to be aborted.
cat - >> $TMP <<- EOB
CVS: b=<bug>
CVS: i=<inspected_by>
CVS: i=<inspected_by>
EOB
cat $1 >> $TMP
cp $TMP $1
rm $TMP
fi
if [ "${FILES:+have_files}"x = have_filesx ]; then
echo Diffing $1 : $FILES
cvs diff -wbBup $FILES 2>/dev/null | sed "s/^/CVS: /" >>$1
fi
#gnuclient $1 || vi $1
[ "$EDITOR" ] || EDITOR=vi
$EDITOR $1
<hr size="1"><address style="text-align: right;"><small>
Generated on $datetime for $projectname by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> $doxygenversion</small></address><br>
<small><a href="http://www.sun.com/contact">Contact</a>&nbsp;|&nbsp;<a href="http://www.sun.com/aboutsun/index.html">About Sun</a>&nbsp;|&nbsp;<a href="http://www.sun.com/aboutsun/media/index.html">News</a>&nbsp;|&nbsp;<a href="http://www.sun.com/corp_emp/">Employment</a>&nbsp;|&nbsp;<a href="http://www.sun.com/privacy/">Privacy</a>&nbsp;|&nbsp;<a href="http://www.sun.com/share/text/termsofuse.html">Terms of Use</a>&nbsp;|&nbsp;<a href="http://www.sun.com/suntrademarks/">Trademarks</a>&nbsp;|&nbsp;(C) 2008 Sun Microsystems, Inc.</small>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>$title</title>
<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css">
<link href="$relpath$tabs.css" rel="stylesheet" type="text/css">
</head><body fgcolor="#202020">
<img src="http://wiki.lustre.org/apidoc/header.jpg">
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
font-family: Geneva, Arial, Helvetica, sans-serif;
}
BODY,TD {
font-size: 90%;
}
H1 {
text-align: center;
font-size: 160%;
}
H2 {
font-size: 120%;
}
H3 {
font-size: 100%;
}
CAPTION { font-weight: bold }
DIV.qindex {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.nav {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.navtab {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
TD.navtab {
font-size: 70%;
}
A.qindex {
text-decoration: none;
font-weight: bold;
color: #1A419D;
}
A.qindex:visited {
text-decoration: none;
font-weight: bold;
color: #1A419D
}
A.qindex:hover {
text-decoration: none;
background-color: #ddddff;
}
A.qindexHL {
text-decoration: none;
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
A.qindexHL:hover {
text-decoration: none;
background-color: #6666cc;
color: #ffffff;
}
A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
A.el { text-decoration: none; font-weight: bold }
A.elRef { font-weight: bold }
A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
A.codeRef:link { font-weight: normal; color: #0000FF}
A.codeRef:visited { font-weight: normal; color: #0000FF}
A:hover { text-decoration: none; background-color: #f2f2ff }
DL.el { margin-left: -1cm }
.fragment {
font-family: monospace, fixed;
font-size: 95%;
}
PRE.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
margin-top: 4px;
margin-bottom: 4px;
margin-left: 2px;
margin-right: 8px;
padding-left: 6px;
padding-right: 6px;
padding-top: 4px;
padding-bottom: 4px;
}
DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
DIV.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
BODY {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
TD.indexkey {
background-color: #e8eef2;
font-weight: bold;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TD.indexvalue {
background-color: #e8eef2;
font-style: italic;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TR.memlist {
background-color: #f0f0f0;
}
P.formulaDsp { text-align: center; }
IMG.formulaDsp { }
IMG.formulaInl { vertical-align: middle; }
SPAN.keyword { color: #008000 }
SPAN.keywordtype { color: #604020 }
SPAN.keywordflow { color: #e08000 }
SPAN.comment { color: #800000 }
SPAN.preprocessor { color: #806020 }
SPAN.stringliteral { color: #002080 }
SPAN.charliteral { color: #008080 }
.mdescLeft {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.mdescRight {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.memItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplParams {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
color: #606060;
background-color: #FAFAFA;
font-size: 80%;
}
.search { color: #003399;
font-weight: bold;
}
FORM.search {
margin-bottom: 0px;
margin-top: 0px;
}
INPUT.search { font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
TD.tiny { font-size: 75%;
}
a {
color: #1A41A8;
}
a:visited {
color: #2A3798;
}
.dirtab { padding: 4px;
border-collapse: collapse;
border: 1px solid #84b0c7;
}
TH.dirtab { background: #e8eef2;
font-weight: bold;
}
HR { height: 1px;
border: none;
border-top: 1px solid black;
}
/* Style for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #606060;
font-weight: normal;
}
.memnav {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 4px;
background-color: #eef3f5;
border-width: 1px;
border-style: solid;
border-color: #dedeee;
-moz-border-radius: 8px 8px 8px 8px;
}
.memname {
white-space: nowrap;
font-weight: bold;
}
.memdoc{
padding-left: 10px;
}
.memproto {
background-color: #d5e1e8;
width: 100%;
border-width: 1px;
border-style: solid;
border-color: #84b0c7;
font-weight: bold;
-moz-border-radius: 8px 8px 8px 8px;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
font-style: italic;
white-space: nowrap;
}
/* End Styling for detailed member documentation */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin:0.5em;
}
.directory { font-size: 9pt; font-weight: bold; }
.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
.directory > h3 { margin-top: 0; }
.directory p { margin: 0px; white-space: nowrap; }
.directory div { display: none; margin: 0px; }
.directory img { vertical-align: -30%; }
.footerlinks a{border-right:1px solid #A3B8CB;padding-right:5px;padding-left:2px;text-decoration:none !important}
\ No newline at end of file
#!/bin/bash -e
progname=${0##*/}
CONFLICTS=cvs-merge-conflicts
CVS=cvs
if [ -f .mergeinfo ] ; then
echo ".mergeinfo exists - clean up first"
exit
fi
if [ -f $CONFLICTS ] ; then
echo "$CONFLICTS exists - clean up first"
exit
fi
if [ $# -lt 2 -o $# -gt 3 ]; then
echo "This is phase 1 of merging branches. Usage: $0 parent child [dir]"
exit
fi
parent=$1
PARENT=`echo $parent | sed -e "s/^b_//" | tr "[a-z]" "[A-Z]"`
child=$2
CHILD=`echo $child | sed -e "s/^b_//" | tr "[a-z]" "[A-Z]"`
date=`date +%Y%m%d_%H%M`
dir=${3:-.}
module=$(basename $(<$dir/CVS/Repository))
if [ "$module" = "lustre" ] ; then
echo >&2 "${progname}: You probably want to land lustre or lnet, not the whole tree."
echo >&2 "${progname}: Try using ${0} $parent $child lustre"
exit 1
fi
case $parent in
HEAD) : ;;
b_*|b[1-4]*) : ;;
*) parent="b_$parent" ;;
esac
case $child in
HEAD) : ;;
b_*|b[1-4]*) : ;;
*) child="b_$child"
esac
if [ "$parent" != "HEAD" -a "`cat $dir/CVS/Tag 2> /dev/null`" != "T$parent" ]; then
echo "${progname}: this script must be run within the $parent branch"
exit 1
fi
TEST_FILE=${TEST_FILE:-ChangeLog} # does this need to be smarter?
check_tag() {
[ -z "$1" ] && echo "check_tag() missing arg" && exit3
[ "$1" = "HEAD" ] && return
$CVS log ${dir%%/*}/$TEST_FILE 2> /dev/null | grep -q " $1: " && return
echo "${progname}: tag $1 not found in $dir/$TEST_FILE"
exit 2
}
check_tag $child
check_tag ${CHILD}_BASE
cat << EOF > ".mergeinfo"
parent=$parent
PARENT=$PARENT
child=$child
CHILD=$CHILD
date=$date
module=$module
dir=$dir
CONFLICTS=$CONFLICTS
OPERATION=Land
OPERWHERE=onto
EOF
echo PARENT $PARENT parent $parent CHILD $CHILD child $child date $date
# Update your tree to the PARENT branch; HEAD is not really a branch, so you
# need to update -A instead of update -r HEAD, or the commit will fail. -p
echo -n "Updating to $parent ...."
if [ $parent == "HEAD" ]; then
$CVS update -AdP $dir
else
$CVS update -r $parent -dP $dir
fi
echo "done"
echo -n "Create land-to point on $parent as ${PARENT}_${CHILD}_LAND_PARENT_$date ..."
$CVS rtag -r $parent ${PARENT}_${CHILD}_LAND_PARENT_$date $module
echo "done"
echo -n "Create land-from point on ${child} ${PARENT}_${CHILD}_LAND_CHILD_$date ..."
$CVS rtag -r ${child} ${PARENT}_${CHILD}_LAND_CHILD_$date $module
echo "done"
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 ${CHILD}_BASE -j ${PARENT}_${CHILD}_LAND_CHILD_$date ..."
$CVS update -j ${CHILD}_BASE -j ${PARENT}_${CHILD}_LAND_CHILD_$date -dP $dir
echo "done"
echo -n "Recording conflicts in $CONFLICTS ..."
$CVS update | awk '/^C/ { print $2 }' > $CONFLICTS
if [ -s $CONFLICTS ] ; then
echo "Conflicts found, fix before committing."
cat $CONFLICTS
else
echo "No conflicts found"
rm -f $CONFLICTS
fi
echo "done"
echo "Build, test, commit and then run land2.sh (no arguments)"
export QUILT_DIFF_OPTS="-upa"
export QUILT_NO_DIFF_TIMESTAMPS=1
#!/bin/bash -e
progname=${0##*/}
CONFLICTS=cvs-merge-conflicts
CVS=cvs
if [ -f .mergeinfo ] ; then
echo ".mergeinfo exists - clean up first"
exit
fi
if [ -f $CONFLICTS ] ; then
echo "$CONFLICTS exists - clean up first"
exit
fi
if [ $# -lt 2 -o $# -gt 3 ]; then
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
parent=$1
PARENT=`echo $parent | sed -e "s/^b_//" | tr "[a-z]" "[A-Z]"`
child=$2
CHILD=`echo $child | sed -e "s/^b_//" | tr "[a-z]" "[A-Z]"`
date=`date +%Y%m%d_%H%M`
dir=${3:-.}
module=$(basename $(<$dir/CVS/Repository))
if [ "$module" = "lustre" ] ; then
echo >&2 "${progname}: You probably want to land lustre or lnet, not the whole tree."
echo >&2 "${progname}: Try using ${0} $parent $child lustre"
exit 1
fi
case $parent in
HEAD) : ;;
b_*|b[1-4]*) : ;;
*) parent="b_$parent" ;;
esac
case $child in
HEAD) : ;;
b_*|b[1-4]*) : ;;
*) child="b_$child"
esac
if [ "$parent" != "HEAD" -a "`cat $dir/CVS/Tag 2> /dev/null`" != "T$parent" ]; then
echo "${progname}: this script must be run within the $parent branch"
exit 1
fi
TEST_FILE=${TEST_FILE:-ChangeLog} # does this need to be smarter?
check_tag() {
[ -z "$1" ] && echo "check_tag() missing arg" && exit3
[ "$1" = "HEAD" ] && return
$CVS log ${dir%%/*}/$TEST_FILE 2> /dev/null | grep -q " $1: " && return
echo "${progname}: tag $1 not found in $dir/$TEST_FILE"
exit 2
}
check_tag $child
check_tag ${CHILD}_BASE
cat << EOF > ".mergeinfo"
parent=$parent
PARENT=$PARENT
child=$child
CHILD=$CHILD
date=$date
module=$module
dir=$dir
CONFLICTS=$CONFLICTS
OPERATION=Replace
OPERWHERE=onto
EOF
echo PARENT $PARENT parent $parent CHILD $CHILD child $child date $date
# Update your tree to the PARENT branch; HEAD is not really a branch, so you
# need to update -A instead of update -r HEAD, or the commit will fail. -p
echo -n "Updating to $parent ...."
if [ $parent == "HEAD" ]; then
$CVS update -AdP $dir
else
$CVS update -r $parent -dP $dir
fi
echo "done"
# Tag parent before merge
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-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 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 -dP $dir
echo "done"
echo -n "Recording conflicts in $CONFLICTS ..."
$CVS update $dir | awk '/^C/ { print $2 }' > $CONFLICTS
if [ -s $CONFLICTS ] ; then
echo "Conflicts found, fix before committing."
cat $CONFLICTS
fi
echo "done"
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
else
echo "No conflicts found"
rm -f $CONFLICTS
fi
echo "done"
echo "Build, test, commit and then run replace2.sh (no arguments)"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment