This is based on Ævar's 5-patch series, which removed unused bits from git-parse-remote one by one, before finally moving the remnant to the only user to remove the file. Earlier I suggested an alternative arrangement of the series to just lift what is still in use and then discard the rest without even splitting them out into separate commits---it is easy to see what's not used by grepping for names of the helper functions. The only difference in the end result is that git-parse-remote.sh file itself is also removed. Ævar Arnfjörð Bjarmason (2): parse-remote: move used code to git-submodule.sh parse-remote: remove this now-unused library .gitignore | 1 - Documentation/git-parse-remote.txt | 23 ------- Makefile | 2 - command-list.txt | 1 - git-parse-remote.sh | 101 ----------------------------- git-submodule.sh | 8 ++- 6 files changed, 7 insertions(+), 129 deletions(-) delete mode 100644 Documentation/git-parse-remote.txt delete mode 100644 git-parse-remote.sh Range-diff against v1: 1: f8c1396d68 < -: ---------- parse-remote: remove unused GIT_DIR variable 2: 5f2dac99b8 < -: ---------- parse-remote: remove long-dead rebase code 3: 871a40c7e0 < -: ---------- parse-remote: remove long-dead git-pull.sh code 4: 17b0d43b65 ! 1: 8d8de925ea parse-remote: move used code to git-submodule.sh @@ Metadata ## Commit message ## parse-remote: move used code to git-submodule.sh - Move the only code in git-parse-remote.sh that was actually used to - git-submodule.sh. + Move the get_default_remote () helper from git-parse-remote.sh to + git-submodule.sh, as the latter is the only user. - This leaves just a comment in git-parse-remote.sh for ease of review, - a later commit will remove it and its build system configuration. + There are two more helper functions, get_remote_merge_branch() and + error_on_missing_default_upstream(), in the git-parse-remote shell + function library, but they are not referenced by git-submodule.sh; + stop dot-sourcing the git-parse-remote. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> ## git-parse-remote.sh ## @@ - # This is a shell library to calculate the remote repository and - # upstream branch that should be pulled by "git pull" from the current - # branch. -- + # this would fail in that case and would issue an error message. + GIT_DIR=$(git rev-parse -q --git-dir) || :; + -get_default_remote () { - curr_branch=$(git symbolic-ref -q HEAD) - curr_branch="${curr_branch#refs/heads/}" - origin=$(git config --get "branch.$curr_branch.remote") - echo ${origin:-origin} -} +- + get_remote_merge_branch () { + case "$#" in + 0|1) ## git-submodule.sh ## +@@ git-submodule.sh: USAGE="[--quiet] [--cached] + OPTIONS_SPEC= + SUBDIRECTORY_OK=Yes + . git-sh-setup +-. git-parse-remote + require_work_tree + wt_prefix=$(git rev-parse --show-prefix) + cd_to_toplevel @@ git-submodule.sh: is_tip_reachable () ( test -z "$rev" ) 5: 1bda9e4479 ! 2: a7520d32df parse-remote: remove this now-unused library @@ Metadata ## Commit message ## parse-remote: remove this now-unused library - Completely remove the git-parse-remote shellscript library. - - Since e9460a66e0 ("parse-remote: support default reflist in - get_remote_merge_branch", 2009-06-12) when there were around 300 lines - of code here used by various core code everything in it has become - unsued, and that unused code was removed in preceding commits. Almost - all of its previous functionality has now been rewritten in C. + Since the previous step stopped dot-sourcing it from + git-submodule.sh, nothing uses git-parse-remote, which + still has two unused functions. Remove the dead code + together with the file itself and documentation. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> @@ command-list.txt: git-p4 foreignscminterface git-prune ancillarymanipulators complete git-prune-packed plumbingmanipulators - ## git-submodule.sh ## -@@ git-submodule.sh: USAGE="[--quiet] [--cached] - OPTIONS_SPEC= - SUBDIRECTORY_OK=Yes - . git-sh-setup --. git-parse-remote - require_work_tree - wt_prefix=$(git rev-parse --show-prefix) - cd_to_toplevel + ## git-parse-remote.sh (deleted) ## +@@ +-# This is a shell library to calculate the remote repository and +-# upstream branch that should be pulled by "git pull" from the current +-# branch. +- +-# git-ls-remote could be called from outside a git managed repository; +-# this would fail in that case and would issue an error message. +-GIT_DIR=$(git rev-parse -q --git-dir) || :; +- +-get_remote_merge_branch () { +- case "$#" in +- 0|1) +- origin="$1" +- default=$(get_default_remote) +- test -z "$origin" && origin=$default +- curr_branch=$(git symbolic-ref -q HEAD) && +- [ "$origin" = "$default" ] && +- echo $(git for-each-ref --format='%(upstream)' $curr_branch) +- ;; +- *) +- repo=$1 +- shift +- ref=$1 +- # FIXME: It should return the tracking branch +- # Currently only works with the default mapping +- case "$ref" in +- +*) +- ref=$(expr "z$ref" : 'z+\(.*\)') +- ;; +- esac +- expr "z$ref" : 'z.*:' >/dev/null || ref="${ref}:" +- remote=$(expr "z$ref" : 'z\([^:]*\):') +- case "$remote" in +- '' | HEAD ) remote=HEAD ;; +- heads/*) remote=${remote#heads/} ;; +- refs/heads/*) remote=${remote#refs/heads/} ;; +- refs/* | tags/* | remotes/* ) remote= +- esac +- [ -n "$remote" ] && case "$repo" in +- .) +- echo "refs/heads/$remote" +- ;; +- *) +- echo "refs/remotes/$repo/$remote" +- ;; +- esac +- esac +-} +- +-error_on_missing_default_upstream () { +- cmd="$1" +- op_type="$2" +- op_prep="$3" # FIXME: op_prep is no longer used +- example="$4" +- branch_name=$(git symbolic-ref -q HEAD) +- display_branch_name="${branch_name#refs/heads/}" +- # If there's only one remote, use that in the suggestion +- remote="$(gettext "<remote>")" +- branch="$(gettext "<branch>")" +- if test $(git remote | wc -l) = 1 +- then +- remote=$(git remote) +- fi +- +- if test -z "$branch_name" +- then +- gettextln "You are not currently on a branch." +- else +- gettextln "There is no tracking information for the current branch." +- fi +- case "$op_type" in +- rebase) +- gettextln "Please specify which branch you want to rebase against." +- ;; +- merge) +- gettextln "Please specify which branch you want to merge with." +- ;; +- *) +- echo >&2 "BUG: unknown operation type: $op_type" +- exit 1 +- ;; +- esac +- eval_gettextln "See git-\${cmd}(1) for details." +- echo +- echo " $example" +- echo +- if test -n "$branch_name" +- then +- gettextln "If you wish to set tracking information for this branch you can do so with:" +- echo +- echo " git branch --set-upstream-to=$remote/$branch $display_branch_name" +- echo +- fi +- exit 1 +-} -- 2.29.2-442-ga30192deef