Tags:
create new tag
view all tags
My method to upgrade from Sep 2001 to Dec 2001 releases

I manage 3 wiki webs with different levels of customization. upgrading releases is becoming a bit tricky... Here is the procedure I use, this may be useful for others, and hints to what should be changed in TWiki distrib structure as well for easier upgrade...

It works for my case: standard dir hierarchy, unix utils available.

I cut-n-paste the shell parts into a bash shell window, belonging to the user ID of the apache web server or root.

First, define the 3 variables below for you installation, and check you have the following programs installed:

The following part is different for each of my sites:

  set -a
  CUR=/www/wiki            # where your current wiki install is running
  OLD=/tmp/TWiki20010901   # where you uncompresseded the plain Sep rel
  NEW=/tmp/TWiki20011201   # where you uncompresseded the plain Dec rel
  TMP=/www/wiki2           # working copy of new wiki

be cautious and do a backup (once is sufficient):

  # backup wiki in case something goes wrong, dont overwrite sane backup
  # restore by: cd /;rm -rf $CUR;tar xfzpsPS /tmp/wiki-backup-for-dec01-upg.tgz
  if test ! -e /tmp/wiki-backup-for-dec01-upg.tgz;then
    cd $CUR; tar cfzpsPS /tmp/wiki-backup-for-dec01-upg.tgz .
  fi

then, here is my procedure: I just cut-n-paste this: (this part can be re-issued as long as something fails)

# make working copy, excluding the contents
rm -rf $TMP
rsync  -au --hard-links --whole-file --devices  --delete \
  --sparse --one-file-system --force --include='data/TWiki**' \
  --exclude='pub/[A-Z]**' --exclude='data/[A-Z]**' --exclude '*,v' \
  $CUR/. $TMP

cd $NEW
>/tmp/null
# remove distrib parts that should not be used
rm -rf data/Main data/Test data/Trash pub/Test pub/Trash
rm -rf data/debug.txt data/warning.txt data/.htpasswd pub/favicon.ico pub/wikiHome.gif
rm -rf data/[A-Z]*/WebNotify.txt* data/[A-Z]*/WebPreferences.txt* data/[A-Z]*/WebStatistics.txt* data/*/.changes

rm -rf $TMP/MERGE_BIN $TMP/MERGE_CONFLICTS $TMP/MERGE_ERRORS
for i in `find . -type d`;do if test ! -d $TMP/$i;then mkdir $TMP/$i;fi;done
for i in `find . -type f`;do
  i="${i#./}"
  case "$i" in
  *,v) ;;
  *.[dD][lL][lL]|*.[gG][iI][fF])
    if cmp -s $OLD/$i $NEW/$i; then :; else 
      if test ! -e  $TMP/$i; then cp -a $i $TMP/$i
      elif cmp $TMP/$i $NEW/$i; then :
      else
        echo "$i" >> $TMP/MERGE_BIN
      fi
    fi ;;
  *) if test ! -e $TMP/$i; then cp -a $i $TMP/$i
     else
       if test -e $OLD/$i; then OLDF=$OLD/$i; else OLDF=/tmp/null;fi
       cr-remove $TMP/$i $OLDF $NEW/$i
       merge -q $TMP/$i $OLDF $NEW/$i
       case $? in
        1) echo $i >> $TMP/MERGE_CONFLICTS;;
        2) echo $i >> $TMP/MERGE_ERRORS;;
       esac
     fi;;
  esac
done

echo "============ echo Solving `wc -l $TMP/MERGE_CONFLICTS` conflicts by hand:"
for i in `cat $TMP/MERGE_CONFLICTS`; do
  echo $i
  tkdiff -o $TMP/$i -conflict $TMP/$i 
done
if test -s $TMP/MERGE_ERRORS; then
echo '============ MERGE ERRORS:'; cat $TMP/MERGE_ERRORS
fi
if test -s $TMP/MERGE_BIN; then
echo '============ MERGE BIN FILES:'; cat $TMP/MERGE_BIN
fi

Version-specific upgrades

# From Sep 2001 to Dec 2001
cd $TMP
for i in data/*/WebIndex.txt;do if test ! -e ${i%/*}/WebTopicList.txt;then cp data/_default/WebTopicList.txt ${i%/*};fi;done

Then, if all went well above, you can test in place the new version in $NEW, and then copy back the updated version:

  cd $TMP;tar cfpsPS - .| ( cd $CUR; tar xfpsPS -)

So here it is. It may help some other people out there...

-- ColasNahaboo - 14 Dec 2001

Notes

  • If you do this as another user as the UID of the web server, check file permissions afterwards
  • check the first line of the bin/ script, to see if the perl path is the good one

-- ColasNahaboo - 14 Dec 2001

There is an UpgradeTwiki script available for the latest TWikiRelease01Sep2004.

-- PeterThoeny - 16 Sep 2004

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r3 - 2004-09-16 - PeterThoeny
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2026 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.