submodule: port subcommand 'set-branch' from shell to C
Convert submodule subcommand 'set-branch' to a builtin and call it via 'git-submodule.sh'. Mentored-by: Christian Couder <chriscool@tuxfamily.org> Mentored-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com> Helped-by: Denton Liu <liu.denton@gmail.com> Helped-by: Eric Sunshine <sunshine@sunshineco.com> Helped-by: Đoàn Trần Công Danh <congdanhqx@gmail.com> Signed-off-by: Shourya Shukla <shouryashukla.oo@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
ae92ac8ae3
commit
2964d6e5e1
@ -719,7 +719,7 @@ cmd_update()
|
||||
# $@ = requested path
|
||||
#
|
||||
cmd_set_branch() {
|
||||
unset_branch=false
|
||||
default=
|
||||
branch=
|
||||
|
||||
while test $# -ne 0
|
||||
@ -729,7 +729,7 @@ cmd_set_branch() {
|
||||
# we don't do anything with this but we need to accept it
|
||||
;;
|
||||
-d|--default)
|
||||
unset_branch=true
|
||||
default=1
|
||||
;;
|
||||
-b|--branch)
|
||||
case "$2" in '') usage ;; esac
|
||||
@ -750,33 +750,7 @@ cmd_set_branch() {
|
||||
shift
|
||||
done
|
||||
|
||||
if test $# -ne 1
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
# we can't use `git submodule--helper name` here because internally, it
|
||||
# hashes the path so a trailing slash could lead to an unintentional no match
|
||||
name="$(git submodule--helper list "$1" | cut -f2)"
|
||||
if test -z "$name"
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test -n "$branch"; has_branch=$?
|
||||
test "$unset_branch" = true; has_unset_branch=$?
|
||||
|
||||
if test $((!$has_branch != !$has_unset_branch)) -eq 0
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
if test $has_branch -eq 0
|
||||
then
|
||||
git submodule--helper config submodule."$name".branch "$branch"
|
||||
else
|
||||
git submodule--helper config --unset submodule."$name".branch
|
||||
fi
|
||||
git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper set-branch ${GIT_QUIET:+--quiet} ${branch:+--branch "$branch"} ${default:+--default} -- "$@"
|
||||
}
|
||||
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user