`process_subtree_split_trailer()` communicates its return value
to the caller by setting a variable (`sub`) that is also defined
by the calling function. This is both unclear and encourages
side-effects.
Invoke this function in a sub-shell instead.
Signed-off-by: Colin Stagner <ask+git@howdoi.land>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
}
# Usage: process_subtree_split_trailer SPLIT_HASH MAIN_HASH [REPOSITORY]
+#
+# Parse SPLIT_HASH as a commit. If the commit is not found, fetches
+# REPOSITORY and tries again. If found, prints full commit hash.
+# Otherwise, dies.
process_subtree_split_trailer () {
assert test $# -ge 2
assert test $# -le 3
die "$fail_msg"
fi
fi
+ echo "${sub}"
}
# Usage: find_latest_squash DIR [REPOSITORY]
main="$b"
;;
git-subtree-split:)
- process_subtree_split_trailer "$b" "$sq" "$repository"
+ sub="$(process_subtree_split_trailer "$b" "$sq" "$repository")" || exit 1
;;
END)
if test -n "$sub"
main="$b"
;;
git-subtree-split:)
- process_subtree_split_trailer "$b" "$sq" "$repository"
+ sub="$(process_subtree_split_trailer "$b" "$sq" "$repository")" || exit 1
;;
END)
debug "Main is: '$main'"