##############
+#hmmm: move this to core
+# this makes the status of pipe N into the main return value.
+function promote_pipe_return()
+{
+ ( exit ${PIPESTATUS[$1]} )
+}
+
+##############
+
# 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 GFFS testing, so that blows.
# to get past this, TMP gets changed below to a hopefully generic and safe place.
$blatt
# put all changed and new files in the commit. not to everyone's liking.
- git add --all .
+ git add --all . | $TO_SPLITTER
+ promote_pipe_return 0
test_or_die "git add all new files"
# see if there are any changes in the local repository.
# upload any changes to the upstream repo so others can see them.
git push origin "$(my_branch_name)" 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER
+ promote_pipe_return 0
test_or_die "git push"
fi
fi
# first update all our remote branches to their current state from the repos.
- git remote update
+ git remote update | $TO_SPLITTER
+ promote_pipe_return 0
test_or_die "git remote update"
local this_branch="$(my_branch_name)"
local bran
for bran in $branch_list; do
# echo "synchronizing remote branch: $bran"
- git checkout "$bran"
+ git checkout "$bran" | $TO_SPLITTER
+ promote_pipe_return 0
test_or_die "git switching checkout to remote branch: $bran"
state=$(check_branch_state "$bran")
remote_branch_info=$(git ls-remote --heads origin $bran 2>/dev/null)
if [ ! -z "$remote_branch_info" ]; then
# we are pretty sure the remote branch does exist.
- git pull --no-ff origin "$bran"
+ git pull --no-ff origin "$bran" | $TO_SPLITTER
+ promote_pipe_return 0
fi
test_or_die "git pull of remote branch: $bran"
done
# now switch back to our branch.
- git checkout "$this_branch"
+ git checkout "$this_branch" | $TO_SPLITTER
+ promote_pipe_return 0
test_or_die "git checking out our current branch: $this_branch"
# now pull down any changes in our own origin in the repo, to stay in synch
# with any changes from others.
- git pull --no-ff --all
+ git pull --no-ff --all | $TO_SPLITTER
+ promote_pipe_return 0
test_or_die "git pulling all upstream"
popd &>/dev/null
if test_writeable "CVS"; then
$blatt
cvs update . | $TO_SPLITTER
+ promote_pipe_return 0
test_or_die "cvs update"
fi
elif [ -d ".svn" ]; then
if test_writeable ".svn"; then
$blatt
svn update . | $TO_SPLITTER
+ promote_pipe_return 0
test_or_die "svn update"
fi
elif [ -d ".git" ]; then
if test_writeable ".git"; then
$blatt
git pull --no-ff 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER
- if [ ${PIPESTATUS[0]} -ne 0 ]; then false; fi
+ promote_pipe_return 0
test_or_die "git pull of origin without fast forwards"
fi
else