All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Cc: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v2 0/2] Retire git-parse-remote
Date: Thu, 12 Nov 2020 12:31:53 -0800	[thread overview]
Message-ID: <20201112203155.3342586-1-gitster@pobox.com> (raw)
In-Reply-To: <xmqqwnyr4zv8.fsf@gitster.c.googlers.com>

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@gmail.com>
         Signed-off-by: Junio C Hamano <gitster@pobox.com>
     
      ## 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@gmail.com>
         Signed-off-by: Junio C Hamano <gitster@pobox.com>
    @@ 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


  reply	other threads:[~2020-11-12 20:32 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-11 13:47 [PATCH 00/11] Start retiring .git/remotes/ and .git/branches/ for good Johannes Schindelin
2017-05-11 13:47 ` [PATCH 01/11] git-parse-remote: fix highly misleading man page Johannes Schindelin
2017-05-11 17:21   ` Stefan Beller
2017-05-11 19:14     ` Johannes Schindelin
2020-11-11 15:17     ` [PATCH 0/5] Remove now-unused git-parse-remote Ævar Arnfjörð Bjarmason
2020-11-11 17:37       ` Jeff King
2020-11-11 19:29         ` Junio C Hamano
2020-11-12 14:09         ` Ævar Arnfjörð Bjarmason
2020-11-12 18:42           ` Jeff King
2020-11-12 14:19       ` How do I "git fetch" with a custom <refspec> but a default remote? Ævar Arnfjörð Bjarmason
2020-11-12 18:51         ` Jeff King
2020-11-12 19:26           ` Chris Torek
2020-11-12 20:48             ` Jeff King
2020-11-12 21:22               ` Junio C Hamano
2020-11-14 12:12         ` Ævar Arnfjörð Bjarmason
2020-11-11 15:17     ` [PATCH 1/5] parse-remote: remove unused GIT_DIR variable Ævar Arnfjörð Bjarmason
2020-11-11 15:17     ` [PATCH 2/5] parse-remote: remove long-dead rebase code Ævar Arnfjörð Bjarmason
2020-11-11 15:17     ` [PATCH 3/5] parse-remote: remove long-dead git-pull.sh code Ævar Arnfjörð Bjarmason
2020-11-11 15:17     ` [PATCH 4/5] parse-remote: move used code to git-submodule.sh Ævar Arnfjörð Bjarmason
2020-11-11 15:17     ` [PATCH 5/5] parse-remote: remove this now-unused library Ævar Arnfjörð Bjarmason
2020-11-11 16:33       ` Junio C Hamano
2020-11-12 20:31         ` Junio C Hamano [this message]
2020-11-12 20:31           ` [PATCH v2 1/2] parse-remote: move used code to git-submodule.sh Junio C Hamano
2020-11-12 20:31           ` [PATCH v2 2/2] parse-remote: remove this now-unused library Junio C Hamano
2020-11-12 20:49           ` [PATCH v2 0/2] Retire git-parse-remote Jeff King
2020-11-12 21:25             ` Junio C Hamano
2020-11-13  9:42           ` Ævar Arnfjörð Bjarmason
2020-11-14 12:21           ` [PATCH v3 0/3] submodule sh->C & retire parse-remote Ævar Arnfjörð Bjarmason
2020-11-14 12:21           ` [PATCH v3 1/3] submodule: use "fetch" logic instead of custom remote discovery Ævar Arnfjörð Bjarmason
2020-11-16 21:13             ` Junio C Hamano
2020-11-14 12:21           ` [PATCH v3 2/3] submodule: remove sh function in favor of helper Ævar Arnfjörð Bjarmason
2020-11-14 12:21           ` [PATCH v3 3/3] parse-remote: remove this now-unused library Ævar Arnfjörð Bjarmason
2020-11-16 21:19             ` Junio C Hamano
2020-11-17 14:24               ` Ævar Arnfjörð Bjarmason
2017-05-11 13:47 ` [PATCH 02/11] Documentation: really deprecate .git/remotes/ and .git/branches/ Johannes Schindelin
2017-05-11 13:47 ` [PATCH 03/11] remote: warn loud and clear when .git/branches/ is *still* used Johannes Schindelin
2017-05-11 13:47 ` [PATCH 04/11] remote: warn loud and clear when .git/remotes/ " Johannes Schindelin
2017-05-11 13:47 ` [PATCH 05/11] Revert "Revert "Don't create the $GIT_DIR/branches directory on init"" Johannes Schindelin
2017-05-11 17:26   ` Stefan Beller
2017-05-11 13:47 ` [PATCH 06/11] PREVIEW: t5510: convert .git/remotes/ test to use a regular remote Johannes Schindelin
2017-05-11 13:47 ` [PATCH 07/11] PREVIEW: t5516: stop testing .git/branches/ functionality Johannes Schindelin
2017-05-11 13:47 ` [PATCH 08/11] PREVIEW: remote: remove support for migrating ancient remotes Johannes Schindelin
2017-05-11 13:48 ` [PATCH 09/11] PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests Johannes Schindelin
2017-05-11 13:48 ` [PATCH 10/11] PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/ Johannes Schindelin
2017-05-11 13:48 ` [PATCH 11/11] PREVIEW: remove " Johannes Schindelin
2017-05-11 18:19   ` Stefan Beller
2017-05-11 19:19     ` Johannes Schindelin
2017-05-12  1:14 ` [PATCH 00/11] Start retiring .git/remotes/ and .git/branches/ for good Junio C Hamano
2017-05-12 10:18   ` Johannes Schindelin
2017-05-16  0:37     ` Junio C Hamano
2017-05-16  8:05       ` Ævar Arnfjörð Bjarmason
2017-05-16  9:06         ` Junio C Hamano
2017-05-16 10:02           ` Ævar Arnfjörð Bjarmason
2017-05-17  0:51             ` Junio C Hamano
2017-05-12 12:00   ` Junio C Hamano
2017-05-12 14:19     ` Johannes Schindelin
2017-05-12 17:38       ` Jonathan Nieder
2017-05-13 10:13         ` Junio C Hamano
2017-05-12 21:11       ` Junio C Hamano
2017-05-15  8:42         ` Johannes Schindelin
2017-05-12  9:11 ` Jeff King
2017-05-12 11:09   ` Johannes Schindelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201112203155.3342586-1-gitster@pobox.com \
    --to=gitster@pobox.com \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.