extended list and search and test arch commands in same way as unpack, to handle...
[feisty_meow.git] / scripts / rev_control / version_control.sh
index e3e0c4b17c1132835f36787d4a4e0c7613e78857..5f5725c09543164319b397a830713172213f1516 100644 (file)
@@ -191,7 +191,7 @@ function squash_first_few_crs()
   i=0
   while read line; do
     i=$((i+1))
-    if [ $i -le 3 ]; then
+    if [ $i -le 5 ]; then
       echo -n "$line  "
     else
       echo $line
@@ -255,11 +255,11 @@ function generate_rev_ctrl_filelist()
 {
   local dir="$1"; shift
   pushd "$dir" &>/dev/null
-  local dirhere="$(\pwd)"
+  local dirhere="$( \cd "$(\dirname "$dir")" && \pwd )"
   local tempfile=$(mktemp /tmp/zz_rev_checkin.XXXXXX)
   echo >$tempfile
-  find $dirhere -maxdepth 5 -type d -iname ".svn" -exec echo {}/.. ';' >>$tempfile
-  find $dirhere -maxdepth 5 -type d -iname ".git" -exec echo {}/.. ';' >>$tempfile
+  find $dirhere -follow -maxdepth 5 -type d -iname ".svn" -exec echo {}/.. ';' >>$tempfile 2>/dev/null
+  find $dirhere -follow -maxdepth 5 -type d -iname ".git" -exec echo {}/.. ';' >>$tempfile 2>/dev/null
   # CVS is not well behaved like git and (now) svn, and we seldom use it anymore.
   popd &>/dev/null
   local sortfile=$(mktemp /tmp/zz_rev_checkin_sort.XXXXXX)
@@ -270,21 +270,19 @@ function generate_rev_ctrl_filelist()
 
 # iterates across a list of directories contained in a file (first parameter).
 # on each directory name, it performs the action (second parameter) provided.
-function perform_action_on_file()
+function perform_revctrl_action_on_file()
 {
   local tempfile="$1"; shift
   local action="$1"; shift
 
-  dirs=($(cat $tempfile))
-
-  for dirname in ${dirs[@]}; do
+  while read -u 3 dirname; do
     if [ -z "$dirname" ]; then continue; fi
-    pushd $dirname &>/dev/null
+    pushd "$dirname" &>/dev/null
     echo "[$(pwd)]"
     $action .
     echo "======="
     popd &>/dev/null
-  done 
+  done 3<"$tempfile"
 
   rm $tempfile
 }