[ -n "$merge" -o -n "$restarted" ] || merge="$deps "
for d in $deps; do
- git rev-parse --verify "$d" >/dev/null 2>&1 ||
+ ref_exists "$d" ||
die "unknown branch dependency '$d'"
done
-! git rev-parse --verify "$name" >/dev/null 2>&1 ||
+! ref_exists "$name" ||
die "branch '$name' already exists"
# Clean up any stale stuff
if [ "$driver" = "collapse" ]; then
[ -n "$output" ] ||
die "no target branch specified"
- ! git rev-parse --verify "$output" >/dev/null 2>&1 ||
+ ! ref_exists "$output" ||
die "target branch '$output' already exists; first run: git branch -D $output"
elif [ "$driver" = "quilt" ]; then
[ -z "$(git rev-list ^"$1" "$2")" ]
}
+# ref_exists REF
+# Whether REF is a valid ref name
+ref_exists()
+{
+ git rev-parse --verify "$@" >/dev/null 2>&1
+}
+
# recurse_deps CMD NAME [BRANCHPATH...]
# Recursively eval CMD on all dependencies of NAME.
# CMD can refer to $_name for queried branch name,
git cat-file blob "$_name:.topdeps" >"$_depsfile"
_ret=0
while read _dep; do
- if ! git rev-parse --verify "$_dep" >/dev/null 2>&1; then
+ if ! ref_exists "$_dep" ; then
# All hope is lost
missing_deps="$missing_deps $_dep"
continue
fi
_dep_is_tgish=1
- git rev-parse --verify "refs/top-bases/$_dep" >/dev/null 2>&1 ||
+ ref_exists "refs/top-bases/$_dep" ||
_dep_is_tgish=
# Shoo shoo, keep our environment alone!