projects
/
feisty_meow.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
new fortune.
[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..e004964ae095b3030dd920a61945328e26cf3fd0 100644
(file)
--- a/
scripts/rev_control/version_control.sh
+++ b/
scripts/rev_control/version_control.sh
@@
-102,6
+102,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
@@
-202,18
+207,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.
@@
-264,16
+275,17
@@
function perform_action_on_file()
local tempfile="$1"; shift
local action="$1"; shift
local tempfile="$1"; shift
local action="$1"; shift
- dirs=($(cat $tempfile))
+
#
dirs=($(cat $tempfile))
- for dirname in ${dirs[@]}; do
+ while read -u 3 dirname; do
+# for dirname in "${dirs[@]}"; 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
}