From efb98ac868f15a8fcb0ff6bc8ca545b26c90ae5c Mon Sep 17 00:00:00 2001 From: mjmac Date: Thu, 22 Mar 2007 11:57:59 +0000 Subject: [PATCH] * Add support for date-pinned co/update r=adilger --- lustrecvs | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/lustrecvs b/lustrecvs index ecebb87..b0f8088 100755 --- a/lustrecvs +++ b/lustrecvs @@ -19,8 +19,9 @@ fatal () usage () { cat < +Usage: $progname where is a tag of the lustre-core module + and is an optional quoted timestamp suitable for cvs -D EOF } @@ -36,13 +37,14 @@ fi buildtag="HEAD" lustretag="$1" shift +pindate=$1 +shift if [ "$*" ] ; then usage >&2 exit 1 fi - case "$lustretag" in '') warn "a lustretag is required." @@ -90,25 +92,33 @@ cvs_cmd () update="" if [ "$tag" = "HEAD" ] ; then - cotag="" - uptag="-A" + cotag="" + uptag="-A" elif [ "$tag" ] ; then - cotag="-r $tag" - uptag="-r $tag" + cotag="-r $tag" + uptag="-r $tag" + else + # silently skip if no tag was specified + return + fi + + # create a cvs date format that will survive shell expansion + if [ -n "$pindate" ]; then + datecmd=$(date -u +%s -d "$pindate") + datecmd="-D @$datecmd" else - # silently skip if no tag was specified - return + datecmd="" fi if [ -d "$dir" ] ; then - echo "$progname: Updating $dir to $tag" - ( cd "$dir" && cvs up -dP $uptag ) + echo "$progname: Updating $dir to $tag" + ( cd "$dir" && cvs up $datecmd -dAP $uptag ) else - echo "$progname: Checking out $dir from $tag" - cvs co -P $cotag -d "$dir" "$module" + echo "$progname: Checking out $dir from $tag" + cvs co $datecmd -P $cotag -d "$dir" "$module" fi if [ $? != 0 ] ; then - error_modules="$dir $error_modules" + error_modules="$dir $error_modules" fi } -- 1.8.3.1