chiark / gitweb /
really: Document -R option in the manpage. Closes:#693354.
[chiark-utils.git] / scripts / cvs-repomove
index 62f850ef6037c85ab5ea7d9e8888ec2aca64439e..a3bb60f1d70d3873cf71087851249a333674c86b 100755 (executable)
@@ -10,6 +10,23 @@ usage:
 END
 }
 
+# Copyright 2004-2006 Ian Jackson <ian@chiark.greenend.org.uk>
+#
+# This script and its documentation (if any) are free software; you
+# can redistribute it and/or modify them under the terms of the GNU
+# General Public License as published by the Free Software Foundation;
+# either version 3, or (at your option) any later version.
+# 
+# chiark-named-conf and its manpage are distributed in the hope that
+# it will be useful, but WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+# PURPOSE.  See the GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, consult the Free Software Foundation's
+# website at www.fsf.org, or the GNU Project website at www.gnu.org.
+
+
 # We do things in the following order:
 #                                              src             dst
 #  0. Check things                             @/..moving-to   none/..moved-to
@@ -80,7 +97,7 @@ do_move () {
  ls -d -- $srcrepo/CVSROOT >/dev/null
        '"
 
-       dstrepotrans="$(printf "%s" "$dstrepo" | tr / :)"
+       dstrepotrans="$(printf '%s\n' "$dstrepo" | tr / :)"
        movingto="moving-to-$dsthost:$dstrepotrans"
        resume="$("$CVS_RSH" "$srchost" bash -ec "'
  if test -d $srcrepo/$module..$movingto; then
@@ -115,11 +132,21 @@ do_move () {
  fi
  for f in $module..*; do
   case \"\$f\" in
-  *..moved-to-*)   echo \"    btw, module was previously at destn repo\" ;;
+  *..moved-to-*)
+   echo \"    btw, module was previously at destn repo\"
+   mv -- \"\$f\" \
+    \"\${f/..moved-to-/..previously-\$(date +%s)-moved-to-}\"
+   ;;
   *..previously-*) ;;
-  *..tmp-*)       echo \"    nb: possibly-stale temp/partial copy \$f\" ;;
-  *..\*)          ;;
-  *)              echo >&2 \"error: found unexpected subdir \$f\"; exit 8;;
+  *..tmp-*)
+   echo \"    nb: possibly-stale temp/partial copy \$f\"
+   ;;
+  *..\*)
+   ;;
+  *)
+   echo >&2 \"error: found unexpected subdir \$f\"
+   exit 8
+   ;;
   esac
  done
        '"
@@ -176,7 +203,7 @@ do_furtle () {
                        remotehost="${goose%%:*}"
                        path="${goose#*:}"
                        check_hostname "$remotehost"
-                       check_remote_path "$remotepath/$module"
+                       check_remote_path "$path/$module"
                        isremote=true
                        compute_fqdn_data "$remotehost"
                        if [ "x$fqdn_data" = "x$our_fqdn_data" -a \
@@ -217,7 +244,7 @@ do_furtle () {
                        exit 4
                        ;;
                *..moved-to-*)
-                       goose="$(printf "%s" \
+                       goose="$(printf '%s\n' \
                                "${new_goose_info#*..moved-to-}" | \
                                tr : / | sed -e 's,/,:,')"
                        ;;