git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v6 00/17] Port branch.c to use ref-filter's printing options

From
Junio C Hamano <gitster@pobox.com>
Date
May 17, 2016, 20:30 UTC
Message-ID
<xmqqinycv343.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<CAOLa=ZQ-XwEhTRwoNhrBH=NCQhpsHR=PfgtDrfJs23j6hkBWRA@mail.gmail.com>
Karthik Nayak <karthik.188@gmail.com> writes:
Show 7 quoted lines
> Sorry for that.
> The only reason I haven't based it on 'master' is because it doesn't contain
> 'f307218'.
>
> ➔ git branch --contains=f307218
>   next
>   ref-filter

It is not clear from the above what your local ref-filter contains beyond 'master', so it is not very useful to me when I am trying to help you to avoid taking this topic hostage to all the topics in 'next' (if I queued this directly on 'next', I have to hold this series until all the topics in 'next' graduates to 'master).

The series certainly would not apply to f307218 at all; it depends on other stuff you have either in your local 'ref-filter' or 'next'. It does not apply to the result of a merge of 'es/test-gpg-tags' topic into 'master', either, but the above does not make it clear what else you are using from 'next' at all.

In any case, I think I managed to reduce the dependency on only 'es/test-gpg-tags' and 'master', and that is what I'll be queuing. Please double check the patches in kn/ref-filter-branch-list topic and also the merge of it into 'pu' for mismerges.

The difference between the result of merging the previously queued one to 'pu', and the result of merging this round to 'pu', looks like the attached.

Thanks.
 builtin/branch.c               |  2 +-
 ref-filter.c                   |  6 ++++--
 t/t6302-for-each-ref-filter.sh | 30 +++++++++++++++---------------
 3 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/builtin/branch.c b/builtin/branch.c
index 0bbb4de..2412738 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -293,7 +293,7 @@ static int calc_maxwidth(struct ref_array *refs, int remote_bonus)
 		skip_prefix(it->refname, "refs/remotes/", &desc);
 		if (it->kind == FILTER_REFS_DETACHED_HEAD) {
 			char *head_desc = get_head_description();
-			w = strlen(head_desc);
+			w = utf8_strwidth(head_desc);
 			free(head_desc);
 		} else
 			w = utf8_strwidth(desc);
diff --git a/ref-filter.c b/ref-filter.c
index 74c4869..f25671c 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -1196,12 +1196,14 @@ char *get_head_description(void)
 		strbuf_addf(&desc, _("(no branch, bisect started on %s)"),
 			    state.branch);
 	else if (state.detached_from) {
-		/* TRANSLATORS: make sure these match _("HEAD detached at ")
-		   and _("HEAD detached from ") in wt-status.c */
 		if (state.detached_at)
+			/* TRANSLATORS: make sure this matches
+			   "HEAD detached at " in wt-status.c */
 			strbuf_addf(&desc, _("(HEAD detached at %s)"),
 				state.detached_from);
 		else
+			/* TRANSLATORS: make sure this matches
+			   "HEAD detached from " in wt-status.c */
 			strbuf_addf(&desc, _("(HEAD detached from %s)"),
 				state.detached_from);
 	}
diff --git a/t/t6302-for-each-ref-filter.sh b/t/t6302-for-each-ref-filter.sh
index 331d978..a09a1a4 100755
--- a/t/t6302-for-each-ref-filter.sh
+++ b/t/t6302-for-each-ref-filter.sh
@@ -342,22 +342,22 @@ test_expect_success 'improper usage of %(if), %(then), %(else) and %(end) atoms'
 '
 
 test_expect_success 'check %(if)...%(then)...%(end) atoms' '
-	git for-each-ref --format="%(if)%(authorname)%(then)%(authorname): %(refname)%(end)" >actual &&
+	git for-each-ref --format="%(refname)%(if)%(authorname)%(then) Author: %(authorname)%(end)" >actual &&
 	cat >expect <<-\EOF &&
-	A U Thor: refs/heads/master
-	A U Thor: refs/heads/side
-	A U Thor: refs/odd/spot
-
-
-
-	A U Thor: refs/tags/foo1.10
-	A U Thor: refs/tags/foo1.3
-	A U Thor: refs/tags/foo1.6
-	A U Thor: refs/tags/four
-	A U Thor: refs/tags/one
-
-	A U Thor: refs/tags/three
-	A U Thor: refs/tags/two
+	refs/heads/master Author: A U Thor
+	refs/heads/side Author: A U Thor
+	refs/odd/spot Author: A U Thor
+	refs/tags/annotated-tag
+	refs/tags/doubly-annotated-tag
+	refs/tags/doubly-signed-tag
+	refs/tags/foo1.10 Author: A U Thor
+	refs/tags/foo1.3 Author: A U Thor
+	refs/tags/foo1.6 Author: A U Thor
+	refs/tags/four Author: A U Thor
+	refs/tags/one Author: A U Thor
+	refs/tags/signed-tag
+	refs/tags/three Author: A U Thor
+	refs/tags/two Author: A U Thor
 	EOF
 	test_cmp expect actual
 '
Previous: Karthik NayakNext: Karthik Nayak
Message 25 of 26 in “Port branch.c to use ref-filter's printing options”
  1. 00/17 Port branch.c to use ref-filter's printing optionsKarthik Nayak, May 15, 2016
  2. 01/17 ref-filter: implement %(if), %(then), and %(else) atomsKarthik Nayak, May 15, 2016
  3. 02/17 ref-filter: include reference to 'used_atom' within 'atom_value'Karthik Nayak, May 15, 2016
  4. 03/17 ref-filter: implement %(if:equals=<string>) and %(if:notequals=<string>)Karthik Nayak, May 15, 2016
  5. 04/17 ref-filter: modify "%(objectname:short)" to take lengthKarthik Nayak, May 15, 2016
  6. 05/17 ref-filter: move get_head_description() from branch.cKarthik Nayak, May 15, 2016
  7. Junio C HamanoMay 17, 2016
  8. Karthik NayakMay 20, 2016
  9. 06/17 ref-filter: introduce format_ref_array_item()Karthik Nayak, May 15, 2016
  10. 07/17 ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreamsKarthik Nayak, May 15, 2016
  11. 08/17 ref-filter: add support for %(upstream:track,nobracket)Karthik Nayak, May 15, 2016
  12. 09/17 ref-filter: make "%(symref)" atom work with the ':short' modifierKarthik Nayak, May 15, 2016
  13. 10/17 ref-filter: introduce refname_atom_parser_internal()Karthik Nayak, May 15, 2016
  14. 11/17 ref-filter: introduce symref_atom_parser() and refname_atom_parser()Karthik Nayak, May 15, 2016
  15. 12/17 ref-filter: make remote_ref_atom_parser() use refname_atom_parser_internal()Karthik Nayak, May 15, 2016
  16. 13/17 ref-filter: add `:dir` and `:base` options for ref printing atomsKarthik Nayak, May 15, 2016
  17. 14/17 ref-filter: allow porcelain to translate messages in the outputKarthik Nayak, May 15, 2016
  18. 15/17 branch, tag: use porcelain outputKarthik Nayak, May 15, 2016
  19. 16/17 branch: use ref-filter printing APIsKarthik Nayak, May 15, 2016
  20. 17/17 branch: implement '--format' optionKarthik Nayak, May 15, 2016
  21. Junio C HamanoMay 16, 2016
  22. Karthik NayakMay 17, 2016
  23. Junio C HamanoMay 17, 2016
  24. Karthik NayakMay 17, 2016
  25. Junio C HamanoMay 17, 2016
  26. Karthik NayakMay 18, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.