All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: git@vger.kernel.org, Matthew DeVore <matvore@google.com>,
	git@matthieu-moy.fr, olyatelezhnaya@gmail.com,
	samuel.maftoul@gmail.com, Johannes.Schindelin@gmx.de,
	karthik.188@gmail.com, pclouds@gmail.com,
	sunshine@sunshineco.com, emilyshaffer@google.com,
	jrnieder@gmail.com
Subject: Re: [PATCH 5/5] branch: show "HEAD detached" first under reverse sort
Date: Wed, 06 Jan 2021 15:49:04 -0800	[thread overview]
Message-ID: <xmqqturtoccv.fsf@gitster.c.googlers.com> (raw)
In-Reply-To: <20210106100139.14651-6-avarab@gmail.com> ("Ævar Arnfjörð Bjarmason"'s message of "Wed, 6 Jan 2021 11:01:39 +0100")

Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:

>  	struct atom_value *va, *vb;
>  	int cmp;
> +	int cmp_detached_head = 0;
>  	cmp_type cmp_type = used_atom[s->atom].type;
>  	int (*cmp_fn)(const char *, const char *);
>  	struct strbuf err = STRBUF_INIT;
> @@ -2370,6 +2371,7 @@ static int cmp_ref_sorting(struct ref_sorting *s, struct ref_array_item *a, stru
>  	     ^
>  	     (b->kind & FILTER_REFS_DETACHED_HEAD))) {
>  		cmp = compare_detached_head(a, b);
> +		cmp_detached_head = 1;
>  	} else if (s->version)
>  		cmp = versioncmp(va->s, vb->s);
>  	else if (cmp_type == FIELD_STR)
> @@ -2383,7 +2385,7 @@ static int cmp_ref_sorting(struct ref_sorting *s, struct ref_array_item *a, stru
>  			cmp = 1;
>  	}
>  
> -	return (s->reverse) ? -cmp : cmp;
> +	return (s->reverse && !cmp_detached_head) ? -cmp : cmp;
>  }

OK.  Other criteria would honor the "reverse" bit, but when we work
on the set that includes "HEAD" ref (which only happens when "branch -l"
deals with a detached head), it always tries to sort it before all other
refs, regardless of the reverse bit.  Makes sense.

>  static int compare_refs(const void *a_, const void *b_, void *ref_sorting)
> diff --git a/t/t3203-branch-output.sh b/t/t3203-branch-output.sh
> index 8f53b081365..5e0577d5c7f 100755
> --- a/t/t3203-branch-output.sh
> +++ b/t/t3203-branch-output.sh
> @@ -221,10 +221,10 @@ test_expect_success 'git branch `--sort=[-]objectsize` option' '
>  	test_i18ncmp expect actual &&
>  
>  	cat >expect <<-\EOF &&
> +	* (HEAD detached from fromtag)
>  	  branch-one
>  	  main
>  	  branch-two
> -	* (HEAD detached from fromtag)
>  	EOF
>  	git branch --sort=-objectsize >actual &&
>  	test_i18ncmp expect actual
> @@ -241,10 +241,10 @@ test_expect_success 'git branch `--sort=[-]type` option' '
>  	test_i18ncmp expect actual &&
>  
>  	cat >expect <<-\EOF &&
> +	* (HEAD detached from fromtag)
>  	  branch-one
>  	  branch-two
>  	  main
> -	* (HEAD detached from fromtag)
>  	EOF
>  	git branch --sort=-type >actual &&
>  	test_i18ncmp expect actual
> @@ -261,10 +261,10 @@ test_expect_success 'git branch `--sort=[-]version:refname` option' '
>  	test_i18ncmp expect actual &&
>  
>  	cat >expect <<-\EOF &&
> +	* (HEAD detached from fromtag)
>  	  main
>  	  branch-two
>  	  branch-one
> -	* (HEAD detached from fromtag)
>  	EOF
>  	git branch --sort=-version:refname >actual &&
>  	test_i18ncmp expect actual

      reply	other threads:[~2021-01-06 23:49 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-06 21:38 [RFC PATCH] ref-filter: sort detached HEAD lines firstly Matthew DeVore
2019-06-09  8:17 ` [RFC PATCH] ref-filter: sort detached HEAD lines firstlyxy Johannes Schindelin
2019-06-09 16:39   ` Johannes Schindelin
2019-06-10 23:49   ` [RFC PATCH] ref-filter: sort detached HEAD lines firstly Matthew DeVore
2019-06-11  0:41     ` Jonathan Nieder
2019-06-11 16:48       ` Matthew DeVore
2019-06-11 19:53       ` Junio C Hamano
2019-06-11 18:28 ` [PATCH v2 0/1] Sort " Matthew DeVore
2019-06-11 18:28   ` [PATCH v2 1/1] ref-filter: sort " Matthew DeVore
2019-06-11 20:10     ` Junio C Hamano
2019-06-12 21:09       ` Junio C Hamano
2019-06-12 21:21         ` Matthew DeVore
2019-06-13  1:56         ` Matthew DeVore
2019-06-12 19:51     ` Johannes Schindelin
2019-06-13 16:58       ` Jeff King
2019-06-18 22:29 ` [PATCH v3 0/1] Sort detached heads line firstly Matthew DeVore
2019-06-18 22:29   ` [PATCH v3 1/1] ref-filter: sort detached HEAD lines firstly Matthew DeVore
2019-06-19 15:29     ` Junio C Hamano
2021-01-06 10:01     ` [PATCH 0/5] branch: --sort improvements Ævar Arnfjörð Bjarmason
2021-01-07  9:51       ` [PATCH v2 0/7] " Ævar Arnfjörð Bjarmason
2021-01-07  9:51       ` [PATCH v2 1/7] branch: change "--local" to "--list" in comment Ævar Arnfjörð Bjarmason
2021-01-07  9:51       ` [PATCH v2 2/7] branch tests: add to --sort tests Ævar Arnfjörð Bjarmason
2021-01-07  9:51       ` [PATCH v2 3/7] ref-filter: add braces to if/else if/else chain Ævar Arnfjörð Bjarmason
2021-01-07  9:51       ` [PATCH v2 4/7] ref-filter: move "cmp_fn" assignment into "else if" arm Ævar Arnfjörð Bjarmason
2021-01-07  9:51       ` [PATCH v2 5/7] ref-filter: move ref_sorting flags to a bitfield Ævar Arnfjörð Bjarmason
2021-01-07 23:24         ` Junio C Hamano
2021-01-07  9:51       ` [PATCH v2 6/7] branch: sort detached HEAD based on a flag Ævar Arnfjörð Bjarmason
2021-01-07  9:51       ` [PATCH v2 7/7] branch: show "HEAD detached" first under reverse sort Ævar Arnfjörð Bjarmason
2021-01-06 10:01     ` [PATCH 1/5] branch: change "--local" to "--list" in comment Ævar Arnfjörð Bjarmason
2021-01-06 10:01     ` [PATCH 2/5] branch tests: add to --sort tests Ævar Arnfjörð Bjarmason
2021-01-06 23:21       ` Junio C Hamano
2021-01-06 10:01     ` [PATCH 3/5] ref-filter: add a "detached_head_first" sorting option Ævar Arnfjörð Bjarmason
2021-01-06 23:45       ` Junio C Hamano
2021-01-06 10:01     ` [PATCH 4/5] branch: use the " Ævar Arnfjörð Bjarmason
2021-01-06 10:01     ` [PATCH 5/5] branch: show "HEAD detached" first under reverse sort Ævar Arnfjörð Bjarmason
2021-01-06 23:49       ` Junio C Hamano [this message]

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=xmqqturtoccv.fsf@gitster.c.googlers.com \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=avarab@gmail.com \
    --cc=emilyshaffer@google.com \
    --cc=git@matthieu-moy.fr \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    --cc=karthik.188@gmail.com \
    --cc=matvore@google.com \
    --cc=olyatelezhnaya@gmail.com \
    --cc=pclouds@gmail.com \
    --cc=samuel.maftoul@gmail.com \
    --cc=sunshine@sunshineco.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.
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.