git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jacob Keller <jacob.e.keller@intel.com>
To: git@vger.kernel.org
Cc: Jonathan Nieder <jrnieder@gmail.com>,
	Jacob Keller <jacob.keller@gmail.com>
Subject: [PATCH 06/11] completion: rename --track option of __git_complete_refs
Date: Fri, 24 Apr 2020 19:20:40 -0700	[thread overview]
Message-ID: <20200425022045.1089291-8-jacob.e.keller@intel.com> (raw)
In-Reply-To: <20200425022045.1089291-1-jacob.e.keller@intel.com>

From: Jacob Keller <jacob.keller@gmail.com>

The __git_complete_refs uses the "--track" option to specify when to
enable listing of unique remote branches which could be used by the
DWIMery of git checkout and git switch.

This is confusing, because both git checkout and git switch have
a --track option. This makes looking at the completion code for these
two functions confusing.

Rename this parameter to --dwim. Because it is plausible for users to
have developed their own completions which rely on __git_complete_ref,
keep --track as a synonym for --dwim, but do not use it in our own
completion code.

This reduces the confusion when seeing --track in the _git_switch() and
_git_checkout() completion functions.

Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
---
 contrib/completion/git-completion.bash | 28 ++++++++++++++------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 08d3406cf3e4..02dc1203559c 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -749,7 +749,7 @@ __git_refs ()
 # Usage: __git_complete_refs [<option>]...
 # --remote=<remote>: The remote to list refs from, can be the name of a
 #                    configured remote, a path, or a URL.
-# --track: List unique remote branches for 'git checkout's tracking DWIMery.
+# --dwim: List unique remote branches for 'git switch's tracking DWIMery.
 # --pfx=<prefix>: A prefix to be added to each ref.
 # --cur=<word>: The current ref to be completed.  Defaults to the current
 #               word to be completed.
@@ -757,12 +757,14 @@ __git_refs ()
 #                 space.
 __git_complete_refs ()
 {
-	local remote track pfx cur_="$cur" sfx=" "
+	local remote dwim pfx cur_="$cur" sfx=" "
 
 	while test $# != 0; do
 		case "$1" in
 		--remote=*)	remote="${1##--remote=}" ;;
-		--track)	track="yes" ;;
+		--dwim)		dwim="yes" ;;
+		# --track is an old spelling of --dwim
+		--track)	dwim="yes" ;;
 		--pfx=*)	pfx="${1##--pfx=}" ;;
 		--cur=*)	cur_="${1##--cur=}" ;;
 		--sfx=*)	sfx="${1##--sfx=}" ;;
@@ -771,7 +773,7 @@ __git_complete_refs ()
 		shift
 	done
 
-	__gitcomp_direct "$(__git_refs "$remote" "$track" "$pfx" "$cur_" "$sfx")"
+	__gitcomp_direct "$(__git_refs "$remote" "$dwim" "$pfx" "$cur_" "$sfx")"
 }
 
 # __git_refs2 requires 1 argument (to pass to __git_refs)
@@ -1370,12 +1372,12 @@ _git_checkout ()
 	*)
 		# check if --track, --no-track, or --no-guess was specified
 		# if so, disable DWIM mode
-		local flags="--track --no-track --no-guess" track_opt="--track"
+		local flags="--track --no-track --no-guess" dwim_opt="--dwim"
 		if [ "$GIT_COMPLETION_CHECKOUT_NO_GUESS" = "1" ] ||
 		   [ -n "$(__git_find_on_cmdline "$flags")" ]; then
-			track_opt=''
+			dwim_opt=''
 		fi
-		__git_complete_refs $track_opt
+		__git_complete_refs $dwim_opt
 		;;
 	esac
 }
@@ -2223,7 +2225,7 @@ _git_switch ()
 		__gitcomp_builtin switch
 		;;
 	*)
-		local track_opt="--track" only_local_ref=n
+		local dwim_opt="--dwim" only_local_ref=n
 
 		# --orphan is used to create a branch disconnected from the
 		# current history, based on the empty tree. Since the only
@@ -2237,24 +2239,24 @@ _git_switch ()
 		# if so, disable DWIM mode
 		if [ "$GIT_COMPLETION_CHECKOUT_NO_GUESS" = "1" ] ||
 		   [ -n "$(__git_find_on_cmdline "--track --no-track --no-guess")" ]; then
-			track_opt=''
+			dwim_opt=''
 		fi
 		# explicit --guess enables DWIM mode regardless of
 		# $GIT_COMPLETION_CHECKOUT_NO_GUESS
 		if [ -n "$(__git_find_on_cmdline "--guess")" ]; then
-			track_opt='--track'
+			dwim_opt='--dwim'
 		fi
 		if [ -z "$(__git_find_on_cmdline "-d --detach")" ]; then
 			only_local_ref=y
 		else
 			# --guess --detach is invalid combination, no
 			# dwim will be done when --detach is specified
-			track_opt=
+			dwim_opt=
 		fi
-		if [ $only_local_ref = y -a -z "$track_opt" ]; then
+		if [ $only_local_ref = y -a -z "$dwim_opt" ]; then
 			__gitcomp_direct "$(__git_heads "" "$cur" " ")"
 		else
-			__git_complete_refs $track_opt
+			__git_complete_refs $dwim_opt
 		fi
 		;;
 	esac
-- 
2.25.2


  parent reply	other threads:[~2020-04-25  2:21 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-25  2:20 [PATCH 00/11] refactor git switch completion Jacob Keller
2020-04-25  2:20 ` [PATCH 01/11] completion: add some simple test cases for " Jacob Keller
2020-04-25  2:20 ` [PATCH 02/11] completion: add test showing subpar " Jacob Keller
2020-04-25  2:20 ` [PATCH 03/11] completion: add test highlighting subpar git switch --track completion Jacob Keller
2020-04-25  2:20 ` [PATCH 04/11] completion: add tests showing lack of support for git switch -c/-C Jacob Keller
2020-04-25  2:20 ` [PATCH 05/11] completion: add test showing subpar completion for git switch --orphan Jacob Keller
2020-04-27 23:34   ` Junio C Hamano
2020-04-28  2:12     ` Jacob Keller
2020-04-28  2:20     ` Jacob Keller
2020-04-28 16:24       ` Junio C Hamano
2020-04-28 17:32         ` Jacob Keller
2020-04-28 18:10           ` Junio C Hamano
2020-04-28 18:45             ` Jacob Keller
2020-04-28 19:16               ` Junio C Hamano
2020-04-28 20:41                 ` Jacob Keller
2020-04-28 20:57                   ` Junio C Hamano
2020-04-25  2:20 ` [PATCH 05/11] completion: remove " Jacob Keller
2020-04-25  2:20 ` Jacob Keller [this message]
2020-04-25  2:20 ` [PATCH 07/11] completion: extract function __git_dwim_remote_heads Jacob Keller
2020-04-25  2:20 ` [PATCH 08/11] completion: perform DWIM logic directly in __git_complete_refs Jacob Keller
2020-04-25  2:20 ` [PATCH 09/11] completion: fix completion for git switch with no options Jacob Keller
2020-04-25  2:20 ` [PATCH 10/11] completion: recognize -c/-C when completing for git switch Jacob Keller
2020-04-25  2:20 ` [PATCH 11/11] completion: complete remote branches for git switch --track Jacob Keller
2020-04-25 22:14 ` [PATCH 00/11] refactor git switch completion Jacob Keller
2020-04-30 22:56 ` Junio C Hamano
2020-05-01 21:53   ` Jacob Keller

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=20200425022045.1089291-8-jacob.e.keller@intel.com \
    --to=jacob.e.keller@intel.com \
    --cc=git@vger.kernel.org \
    --cc=jacob.keller@gmail.com \
    --cc=jrnieder@gmail.com \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).