All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Bert Wesarg <bert.wesarg@googlemail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	git@vger.kernel.org, szeder@ira.uka.de
Subject: Re: [PATCH 3/3] git abbref-ref: new porcelain for abbreviate_ref()
Date: Mon, 22 Sep 2008 08:32:22 -0700	[thread overview]
Message-ID: <20080922153222.GD3669@spearce.org> (raw)
In-Reply-To: <1222074591-26548-3-git-send-email-bert.wesarg@googlemail.com>

Bert Wesarg <bert.wesarg@googlemail.com> wrote:
> This gives direct access to the abbreviate_ref() function. The operation
> mode defaults to the core.warnambiguousrefs value, like the refname:short
> format, but can be explicitly changed with the --{,no}-strict option.
> 
> The bash completion script utilizes this new command.

And it slows down too, doesn't it?  Now we are doing a fork per
branch during completion.  Yikes.  Didn't you just post a series
about making completion faster?
 
> Junio, if this is not a porcelain, tell me.

IMHO its plumbing.  Porcelain is used by a human.  Plumbing is the
bits needed to make human interfaces.
 
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 93f0881..7f002c0 100755
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -112,9 +112,9 @@ __git_ps1 ()
>  		fi
>  
>  		if [ -n "$1" ]; then
> -			printf "$1" "${b##refs/heads/}$r"
> +			printf "$1" "$(git abbrev-ref $b)$r"
>  		else
> -			printf " (%s)" "${b##refs/heads/}$r"
> +			printf " (%s)" "$(git abbrev-ref $b)$r"
>  		fi
>  	fi
>  }
> @@ -162,7 +162,7 @@ __git_heads ()
>  		case "$is_hash,$i" in
>  		y,*) is_hash=n ;;
>  		n,*^{}) is_hash=y ;;
> -		n,refs/heads/*) is_hash=y; echo "${i#refs/heads/}" ;;
> +		n,refs/heads/*) is_hash=y; echo "$(git abbrev-ref $i)" ;;
>  		n,*) is_hash=y; echo "$i" ;;
>  		esac
>  	done
> @@ -180,7 +180,7 @@ __git_tags ()
>  		case "$is_hash,$i" in
>  		y,*) is_hash=n ;;
>  		n,*^{}) is_hash=y ;;
> -		n,refs/tags/*) is_hash=y; echo "${i#refs/tags/}" ;;
> +		n,refs/tags/*) is_hash=y; echo "$(git abbrev-ref $i)" ;;
>  		n,*) is_hash=y; echo "$i" ;;
>  		esac
>  	done
> @@ -199,9 +199,9 @@ __git_refs ()
>  		case "$is_hash,$i" in
>  		y,*) is_hash=n ;;
>  		n,*^{}) is_hash=y ;;
> -		n,refs/tags/*) is_hash=y; echo "${i#refs/tags/}" ;;
> -		n,refs/heads/*) is_hash=y; echo "${i#refs/heads/}" ;;
> -		n,refs/remotes/*) is_hash=y; echo "${i#refs/remotes/}" ;;
> +		n,refs/tags/*) is_hash=y; echo "$(git abbrev-ref $i)" ;;
> +		n,refs/heads/*) is_hash=y; echo "$(git abbrev-ref $i)" ;;
> +		n,refs/remotes/*) is_hash=y; echo "$(git abbrev-ref $i)" ;;
>  		n,*) is_hash=y; echo "$i" ;;
>  		esac
>  	done
> @@ -222,7 +222,7 @@ __git_refs_remotes ()
>  		case "$is_hash,$i" in
>  		n,refs/heads/*)
>  			is_hash=y
> -			echo "$i:refs/remotes/$1/${i#refs/heads/}"
> +			echo "$i:refs/remotes/$1/$(git abbrev-ref $i)"
>  			;;
>  		y,*) is_hash=n ;;
>  		n,*^{}) is_hash=y ;;

-- 
Shawn.

  reply	other threads:[~2008-09-22 15:33 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-22  9:09 [PATCH 1/3] for-each-ref: utilize core.warnambiguousrefs for strict refname:short format Bert Wesarg
2008-09-22  9:09 ` [PATCH 2/3] for-each-ref: factor out get_short_ref() into refs.c:abbreviate_refname() Bert Wesarg
2008-09-22  9:09   ` [PATCH 3/3] git abbref-ref: new porcelain for abbreviate_ref() Bert Wesarg
2008-09-22 15:32     ` Shawn O. Pearce [this message]
2008-09-22 15:55       ` Junio C Hamano
2008-09-22 16:45         ` Bert Wesarg
2008-09-22 16:43       ` Bert Wesarg
2008-09-22 16:27 ` [PATCH 1/3] for-each-ref: utilize core.warnambiguousrefs for strict refname:short format Junio C Hamano
2008-09-22 18:00   ` Bert Wesarg
2008-10-17 23:58 ` Junio C Hamano
2008-10-18  1:50   ` Shawn O. Pearce
2008-10-18  6:55     ` Bert Wesarg
2009-04-11 17:14       ` [PATCH&RFC] get_short_ref(): add strict mode Bert Wesarg
2009-04-11 19:23         ` Junio C Hamano
2009-04-11 19:50           ` Bert Wesarg
2009-04-11 20:35             ` [PATCH] for-each-ref: refname:short utilize core.warnAmbiguousRefs Bert Wesarg
  -- strict thread matches above, loose matches on Subject: below --
2009-04-07  7:02 [RFC/PATCH 0/5] making upstream branch information accessible Jeff King
2009-04-07  7:05 ` [PATCH 1/5] for-each-ref: refactor get_short_ref function Jeff King
2009-04-07  7:06 ` [PATCH 2/5] for-each-ref: refactor refname handling Jeff King
2009-04-08  6:22   ` Junio C Hamano
2009-04-08  6:27     ` Jeff King
2009-04-07  7:09 ` [PATCH 3/5] for-each-ref: add "upstream" format field Jeff King
2009-04-07  7:14 ` [PATCH 4/5] make get_short_ref a public function Jeff King
2009-04-07  7:39   ` Bert Wesarg
2009-04-09  8:18     ` Jeff King
2009-04-09  9:05       ` Bert Wesarg
2009-04-13  8:15         ` Jeff King
2009-04-07  7:57   ` Michael J Gruber
2009-04-07  7:16 ` [PATCH 5/5] branch: show upstream branch when double verbose Jeff King
2009-04-07  8:02   ` Michael J Gruber
2009-04-09  8:23     ` Jeff King
2009-04-09 10:15       ` Santi Béjar
2009-04-13  8:34         ` Jeff King
2009-04-13 17:04           ` Wincent Colaiuta
2009-04-07  8:12   ` Paolo Ciarrocchi
2009-04-07  7:33 ` [PATCH] for-each-ref: remove multiple xstrdup() in get_short_ref() Bert Wesarg
2009-04-07  7:44   ` Jeff King
2009-04-07  7:54     ` Bert Wesarg
2009-04-07 21:41     ` Jeff King
2009-04-07  7:44   ` Bert Wesarg

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=20080922153222.GD3669@spearce.org \
    --to=spearce@spearce.org \
    --cc=bert.wesarg@googlemail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=szeder@ira.uka.de \
    /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.