mirror of
https://github.com/git/git
synced 2024-08-26 19:19:18 +00:00
subtree: use more explicit variable names for cmdline args
Make it painfully obvious when reading the code which variables are direct parsings of command line arguments. Signed-off-by: Luke Shumaker <lukeshu@datawire.io> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
6d43585a68
commit
e2b11e4211
|
@ -30,19 +30,19 @@ squash merge subtree changes as a single commit
|
|||
|
||||
PATH=$PATH:$(git --exec-path)
|
||||
|
||||
branch=
|
||||
debug=
|
||||
command=
|
||||
onto=
|
||||
rejoin=
|
||||
ignore_joins=
|
||||
annotate=
|
||||
squash=
|
||||
message=
|
||||
prefix=
|
||||
arg_debug=
|
||||
arg_command=
|
||||
arg_prefix=
|
||||
arg_split_branch=
|
||||
arg_split_onto=
|
||||
arg_split_rejoin=
|
||||
arg_split_ignore_joins=
|
||||
arg_split_annotate=
|
||||
arg_addmerge_squash=
|
||||
arg_addmerge_message=
|
||||
|
||||
debug () {
|
||||
if test -n "$debug"
|
||||
if test -n "$arg_debug"
|
||||
then
|
||||
printf "%s\n" "$*" >&2
|
||||
fi
|
||||
|
@ -88,54 +88,54 @@ main () {
|
|||
GIT_QUIET=1
|
||||
;;
|
||||
-d)
|
||||
debug=1
|
||||
arg_debug=1
|
||||
;;
|
||||
--annotate)
|
||||
annotate="$1"
|
||||
arg_split_annotate="$1"
|
||||
shift
|
||||
;;
|
||||
--no-annotate)
|
||||
annotate=
|
||||
arg_split_annotate=
|
||||
;;
|
||||
-b)
|
||||
branch="$1"
|
||||
arg_split_branch="$1"
|
||||
shift
|
||||
;;
|
||||
-P)
|
||||
prefix="${1%/}"
|
||||
arg_prefix="${1%/}"
|
||||
shift
|
||||
;;
|
||||
-m)
|
||||
message="$1"
|
||||
arg_addmerge_message="$1"
|
||||
shift
|
||||
;;
|
||||
--no-prefix)
|
||||
prefix=
|
||||
arg_prefix=
|
||||
;;
|
||||
--onto)
|
||||
onto="$1"
|
||||
arg_split_onto="$1"
|
||||
shift
|
||||
;;
|
||||
--no-onto)
|
||||
onto=
|
||||
arg_split_onto=
|
||||
;;
|
||||
--rejoin)
|
||||
rejoin=1
|
||||
arg_split_rejoin=1
|
||||
;;
|
||||
--no-rejoin)
|
||||
rejoin=
|
||||
arg_split_rejoin=
|
||||
;;
|
||||
--ignore-joins)
|
||||
ignore_joins=1
|
||||
arg_split_ignore_joins=1
|
||||
;;
|
||||
--no-ignore-joins)
|
||||
ignore_joins=
|
||||
arg_split_ignore_joins=
|
||||
;;
|
||||
--squash)
|
||||
squash=1
|
||||
arg_addmerge_squash=1
|
||||
;;
|
||||
--no-squash)
|
||||
squash=
|
||||
arg_addmerge_squash=
|
||||
;;
|
||||
--)
|
||||
break
|
||||
|
@ -146,10 +146,10 @@ main () {
|
|||
esac
|
||||
done
|
||||
|
||||
command="$1"
|
||||
arg_command="$1"
|
||||
shift
|
||||
|
||||
case "$command" in
|
||||
case "$arg_command" in
|
||||
add|merge|pull)
|
||||
default=
|
||||
;;
|
||||
|
@ -157,31 +157,31 @@ main () {
|
|||
default="--default HEAD"
|
||||
;;
|
||||
*)
|
||||
die "Unknown command '$command'"
|
||||
die "Unknown command '$arg_command'"
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$prefix"
|
||||
if test -z "$arg_prefix"
|
||||
then
|
||||
die "You must provide the --prefix option."
|
||||
fi
|
||||
|
||||
case "$command" in
|
||||
case "$arg_command" in
|
||||
add)
|
||||
test -e "$prefix" &&
|
||||
die "prefix '$prefix' already exists."
|
||||
test -e "$arg_prefix" &&
|
||||
die "prefix '$arg_prefix' already exists."
|
||||
;;
|
||||
*)
|
||||
test -e "$prefix" ||
|
||||
die "'$prefix' does not exist; use 'git subtree add'"
|
||||
test -e "$arg_prefix" ||
|
||||
die "'$arg_prefix' does not exist; use 'git subtree add'"
|
||||
;;
|
||||
esac
|
||||
|
||||
dir="$(dirname "$prefix/.")"
|
||||
dir="$(dirname "$arg_prefix/.")"
|
||||
|
||||
if test "$command" != "pull" &&
|
||||
test "$command" != "add" &&
|
||||
test "$command" != "push"
|
||||
if test "$arg_command" != "pull" &&
|
||||
test "$arg_command" != "add" &&
|
||||
test "$arg_command" != "push"
|
||||
then
|
||||
revs=$(git rev-parse $default --revs-only "$@") || exit $?
|
||||
dirs=$(git rev-parse --no-revs --no-flags "$@") || exit $?
|
||||
|
@ -192,14 +192,14 @@ main () {
|
|||
fi
|
||||
fi
|
||||
|
||||
debug "command: {$command}"
|
||||
debug "command: {$arg_command}"
|
||||
debug "quiet: {$GIT_QUIET}"
|
||||
debug "revs: {$revs}"
|
||||
debug "dir: {$dir}"
|
||||
debug "opts: {$*}"
|
||||
debug
|
||||
|
||||
"cmd_$command" "$@"
|
||||
"cmd_$arg_command" "$@"
|
||||
}
|
||||
|
||||
cache_setup () {
|
||||
|
@ -333,7 +333,7 @@ find_existing_splits () {
|
|||
main=
|
||||
sub=
|
||||
local grep_format="^git-subtree-dir: $dir/*\$"
|
||||
if test -n "$ignore_joins"
|
||||
if test -n "$arg_split_ignore_joins"
|
||||
then
|
||||
grep_format="^Add '$dir/' from commit '"
|
||||
fi
|
||||
|
@ -394,7 +394,7 @@ copy_commit () {
|
|||
GIT_COMMITTER_EMAIL \
|
||||
GIT_COMMITTER_DATE
|
||||
(
|
||||
printf "%s" "$annotate"
|
||||
printf "%s" "$arg_split_annotate"
|
||||
cat
|
||||
) |
|
||||
git commit-tree "$2" $3 # reads the rest of stdin
|
||||
|
@ -405,9 +405,9 @@ add_msg () {
|
|||
dir="$1"
|
||||
latest_old="$2"
|
||||
latest_new="$3"
|
||||
if test -n "$message"
|
||||
if test -n "$arg_addmerge_message"
|
||||
then
|
||||
commit_message="$message"
|
||||
commit_message="$arg_addmerge_message"
|
||||
else
|
||||
commit_message="Add '$dir/' from commit '$latest_new'"
|
||||
fi
|
||||
|
@ -421,9 +421,9 @@ add_msg () {
|
|||
}
|
||||
|
||||
add_squashed_msg () {
|
||||
if test -n "$message"
|
||||
if test -n "$arg_addmerge_message"
|
||||
then
|
||||
echo "$message"
|
||||
echo "$arg_addmerge_message"
|
||||
else
|
||||
echo "Merge commit '$1' as '$2'"
|
||||
fi
|
||||
|
@ -433,9 +433,9 @@ rejoin_msg () {
|
|||
dir="$1"
|
||||
latest_old="$2"
|
||||
latest_new="$3"
|
||||
if test -n "$message"
|
||||
if test -n "$arg_addmerge_message"
|
||||
then
|
||||
commit_message="$message"
|
||||
commit_message="$arg_addmerge_message"
|
||||
else
|
||||
commit_message="Split '$dir/' into commit '$latest_new'"
|
||||
fi
|
||||
|
@ -722,7 +722,7 @@ cmd_add_commit () {
|
|||
headp=
|
||||
fi
|
||||
|
||||
if test -n "$squash"
|
||||
if test -n "$arg_addmerge_squash"
|
||||
then
|
||||
rev=$(new_squash_commit "" "" "$rev") || exit $?
|
||||
commit=$(add_squashed_msg "$rev" "$dir" |
|
||||
|
@ -741,10 +741,10 @@ cmd_split () {
|
|||
debug "Splitting $dir..."
|
||||
cache_setup || exit $?
|
||||
|
||||
if test -n "$onto"
|
||||
if test -n "$arg_split_onto"
|
||||
then
|
||||
debug "Reading history for --onto=$onto..."
|
||||
git rev-list $onto |
|
||||
debug "Reading history for --onto=$arg_split_onto..."
|
||||
git rev-list $arg_split_onto |
|
||||
while read rev
|
||||
do
|
||||
# the 'onto' history is already just the subdir, so
|
||||
|
@ -776,7 +776,7 @@ cmd_split () {
|
|||
die "No new revisions were found"
|
||||
fi
|
||||
|
||||
if test -n "$rejoin"
|
||||
if test -n "$arg_split_rejoin"
|
||||
then
|
||||
debug "Merging split branch into HEAD..."
|
||||
latest_old=$(cache_get latest_old) || exit $?
|
||||
|
@ -785,21 +785,21 @@ cmd_split () {
|
|||
-m "$(rejoin_msg "$dir" "$latest_old" "$latest_new")" \
|
||||
"$latest_new" >&2 || exit $?
|
||||
fi
|
||||
if test -n "$branch"
|
||||
if test -n "$arg_split_branch"
|
||||
then
|
||||
if rev_exists "refs/heads/$branch"
|
||||
if rev_exists "refs/heads/$arg_split_branch"
|
||||
then
|
||||
if ! git merge-base --is-ancestor "$branch" "$latest_new"
|
||||
if ! git merge-base --is-ancestor "$arg_split_branch" "$latest_new"
|
||||
then
|
||||
die "Branch '$branch' is not an ancestor of commit '$latest_new'."
|
||||
die "Branch '$arg_split_branch' is not an ancestor of commit '$latest_new'."
|
||||
fi
|
||||
action='Updated'
|
||||
else
|
||||
action='Created'
|
||||
fi
|
||||
git update-ref -m 'subtree split' \
|
||||
"refs/heads/$branch" "$latest_new" || exit $?
|
||||
say >&2 "$action branch '$branch'"
|
||||
"refs/heads/$arg_split_branch" "$latest_new" || exit $?
|
||||
say >&2 "$action branch '$arg_split_branch'"
|
||||
fi
|
||||
echo "$latest_new"
|
||||
exit 0
|
||||
|
@ -810,7 +810,7 @@ cmd_merge () {
|
|||
ensure_single_rev $rev
|
||||
ensure_clean
|
||||
|
||||
if test -n "$squash"
|
||||
if test -n "$arg_addmerge_squash"
|
||||
then
|
||||
first_split="$(find_latest_squash "$dir")" || exit $?
|
||||
if test -z "$first_split"
|
||||
|
@ -830,12 +830,12 @@ cmd_merge () {
|
|||
rev="$new"
|
||||
fi
|
||||
|
||||
if test -n "$message"
|
||||
if test -n "$arg_addmerge_message"
|
||||
then
|
||||
git merge -Xsubtree="$prefix" \
|
||||
--message="$message" "$rev"
|
||||
git merge -Xsubtree="$arg_prefix" \
|
||||
--message="$arg_addmerge_message" "$rev"
|
||||
else
|
||||
git merge -Xsubtree="$prefix" $rev
|
||||
git merge -Xsubtree="$arg_prefix" $rev
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -863,7 +863,7 @@ cmd_push () {
|
|||
repository=$1
|
||||
refspec=$2
|
||||
echo "git push using: " "$repository" "$refspec"
|
||||
localrev=$(git subtree split --prefix="$prefix") || die
|
||||
localrev=$(git subtree split --prefix="$arg_prefix") || die
|
||||
git push "$repository" "$localrev":"refs/heads/$refspec"
|
||||
else
|
||||
die "'$dir' must already exist. Try 'git subtree add'."
|
||||
|
|
Loading…
Reference in a new issue