projects
/
feisty_meow.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added normal storage area of old code.
[feisty_meow.git]
/
scripts
/
rev_control
/
version_control.sh
diff --git
a/scripts/rev_control/version_control.sh
b/scripts/rev_control/version_control.sh
index 86cfaeffb710e9db84524279eb88903246a5d4f7..068bd66d3e3034091dc68d975e300baf8e18c61b 100644
(file)
--- a/
scripts/rev_control/version_control.sh
+++ b/
scripts/rev_control/version_control.sh
@@
-3,8
+3,12
@@
# these are helper functions for doing localized revision control.
# this script should be sourced into other scripts that use it.
# these are helper functions for doing localized revision control.
# this script should be sourced into other scripts that use it.
+# the maximum depth that the recursive functions will try to go below the starting directory.
+export MAX_DEPTH=5
+
+#hmmm: re-address this code, since it doesn't make a lot of sense to me right now...
# one unpleasantry to take care of first; cygwin barfs aggressively if the TMP directory
# one unpleasantry to take care of first; cygwin barfs aggressively if the TMP directory
-# is a DOS path, but we need it to be a DOS path for our
XSEDE
testing, so that blows.
+# is a DOS path, but we need it to be a DOS path for our
GFFS
testing, so that blows.
# to get past this, TMP gets changed below to a hopefully generic and safe place.
if [[ "$TMP" =~ .:.* ]]; then
# to get past this, TMP gets changed below to a hopefully generic and safe place.
if [[ "$TMP" =~ .:.* ]]; then
@@
-12,7
+16,7
@@
if [[ "$TMP" =~ .:.* ]]; then
export TMP=/tmp/rev_control_$USER
fi
if [ ! -d "$TMP" ]; then
export TMP=/tmp/rev_control_$USER
fi
if [ ! -d "$TMP" ]; then
- mkdir $TMP
+ mkdir
-p
$TMP
fi
if [ ! -d "$TMP" ]; then
echo "Could not create the temporary directory TMP in: $TMP"
fi
if [ ! -d "$TMP" ]; then
echo "Could not create the temporary directory TMP in: $TMP"
@@
-102,6
+106,11
@@
function compute_modifier()
function do_checkin()
{
local directory="$1"; shift
function do_checkin()
{
local directory="$1"; shift
+ do_update "$directory"
+ if [ $? -ne 0 ]; then
+ echo "Repository update failed; this should be fixed before check-in."
+ return 1
+ fi
pushd "$directory" &>/dev/null
retval=0 # normally successful.
if [ -d "CVS" ]; then
pushd "$directory" &>/dev/null
retval=0 # normally successful.
if [ -d "CVS" ]; then
@@
-186,7
+195,7
@@
function squash_first_few_crs()
i=0
while read line; do
i=$((i+1))
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
echo -n "$line "
else
echo $line
@@
-202,18
+211,24
@@
function squash_first_few_crs()
function do_update()
{
directory="$1"; shift
function do_update()
{
directory="$1"; shift
-
+ # plan on success for now.
+ retval=0
pushd "$directory" &>/dev/null
if [ -d "CVS" ]; then
cvs update . | squash_first_few_crs
pushd "$directory" &>/dev/null
if [ -d "CVS" ]; then
cvs update . | squash_first_few_crs
+ retval=${PIPESTATUS[0]}
elif [ -d ".svn" ]; then
svn update . | squash_first_few_crs
elif [ -d ".svn" ]; then
svn update . | squash_first_few_crs
+ retval=${PIPESTATUS[0]}
elif [ -d ".git" ]; then
git pull 2>&1 | grep -v "X11 forwarding request failed" | squash_first_few_crs
elif [ -d ".git" ]; then
git pull 2>&1 | grep -v "X11 forwarding request failed" | squash_first_few_crs
+ retval=${PIPESTATUS[0]}
else
else
+ # this is not an error necessarily; we'll just pretend they planned this.
echo no repository in $directory
fi
popd &>/dev/null
echo no repository in $directory
fi
popd &>/dev/null
+ return $retval
}
# gets all the updates for a list of folders under revision control.
}
# gets all the updates for a list of folders under revision control.
@@
-244,11
+259,11
@@
function generate_rev_ctrl_filelist()
{
local dir="$1"; shift
pushd "$dir" &>/dev/null
{
local dir="$1"; shift
pushd "$dir" &>/dev/null
- local dirhere="$(
\pwd
)"
+ local dirhere="$(
\cd "$(\dirname "$dir")" && /bin/pwd
)"
local tempfile=$(mktemp /tmp/zz_rev_checkin.XXXXXX)
echo >$tempfile
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 $MAX_DEPTH -type d -iname ".svn" -exec echo {}/.. ';' >>$tempfile 2>/dev/null
+ find $dirhere -
follow -maxdepth $MAX_DEPTH -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)
# 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)
@@
-259,21
+274,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.
# 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
{
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
if [ -z "$dirname" ]; then continue; fi
- pushd
$dirname
&>/dev/null
+ pushd
"$dirname"
&>/dev/null
echo "[$(pwd)]"
$action .
echo "======="
popd &>/dev/null
echo "[$(pwd)]"
$action .
echo "======="
popd &>/dev/null
- done
+ done
3<"$tempfile"
rm $tempfile
}
rm $tempfile
}