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

[PATCH v4 4/8] branch: move 'current' check down to the presentation layer

From
Karthik Nayak <karthik.188@gmail.com>
Date
Sep 13, 2015, 15:35 UTC
Message-ID
<1442158552-21552-1-git-send-email-Karthik.188@gmail.com>
In-Reply-To
<1442129035-31386-5-git-send-email-Karthik.188@gmail.com>

We check if given ref is the current branch in print_ref_list(). Move this check to print_ref_item() where it is checked right before printing. This enables a smooth transition to using ref-filter APIs, as we can later replace the current check while printing to just check for FILTER_REFS_DETACHED instead.

Based-on-patch-by: Jeff King <peff@peff.net>
Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
---
Change the commit message to explain the need for this patch.
 builtin/branch.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/builtin/branch.c b/builtin/branch.c
index 6ba7a3f..4d9e4d0 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -534,9 +534,10 @@ static char *get_head_description(void)
 }
 
 static void print_ref_item(struct ref_item *item, int maxwidth, int verbose,
-			   int abbrev, int current, const char *remote_prefix)
+			   int abbrev, int detached, const char *remote_prefix)
 {
 	char c;
+	int current = 0;
 	int color;
 	struct strbuf out = STRBUF_INIT, name = STRBUF_INIT;
 	const char *prefix = "";
@@ -548,15 +549,18 @@ static void print_ref_item(struct ref_item *item, int maxwidth, int verbose,
 
 	switch (item->kind) {
 	case REF_LOCAL_BRANCH:
-		color = BRANCH_COLOR_LOCAL;
+		if (!detached && !strcmp(item->name, head))
+			current = 1;
+		else
+			color = BRANCH_COLOR_LOCAL;
 		break;
 	case REF_REMOTE_BRANCH:
 		color = BRANCH_COLOR_REMOTE;
 		prefix = remote_prefix;
 		break;
 	case REF_DETACHED_HEAD:
-		color = BRANCH_COLOR_CURRENT;
 		desc = to_free = get_head_description();
+		current = 1;
 		break;
 	default:
 		color = BRANCH_COLOR_PLAIN;
@@ -685,21 +689,17 @@ static int print_ref_list(int kinds, int detached, int verbose, int abbrev, stru
 	index = ref_list.index;
 
 	/* Print detached HEAD before sorting and printing the rest */
-	if (detached && (ref_list.list[index - 1].kind == REF_DETACHED_HEAD) &&
-	    !strcmp(ref_list.list[index - 1].name, head)) {
+	if (detached) {
 		print_ref_item(&ref_list.list[index - 1], maxwidth, verbose, abbrev,
-			       1, remote_prefix);
+			       detached, remote_prefix);
 		index -= 1;
 	}
 
 	qsort(ref_list.list, index, sizeof(struct ref_item), ref_cmp);
 
-	for (i = 0; i < index; i++) {
-		int current = !detached && (ref_list.list[i].kind == REF_LOCAL_BRANCH) &&
-			!strcmp(ref_list.list[i].name, head);
+	for (i = 0; i < index; i++)
 		print_ref_item(&ref_list.list[i], maxwidth, verbose,
-			       abbrev, current, remote_prefix);
-	}
+			       abbrev, detached, remote_prefix);
 
 	free_ref_list(&ref_list);
 
-- 
2.5.1
Previous: Karthik NayakNext: Karthik Nayak
Message 27 of 38 in “port the filtering part of branch.c to use ref-filter APIs”
  1. 0/8 port the filtering part of branch.c to use ref-filter APIsKarthik Nayak, Sep 13, 2015
  2. 1/8 branch: refactor width computationKarthik Nayak, Sep 13, 2015
  3. Matthieu MoySep 13, 2015
  4. Karthik NayakSep 13, 2015
  5. Matthieu MoySep 13, 2015
  6. 2/8 branch: bump get_head_description() to the topKarthik Nayak, Sep 13, 2015
  7. 3/8 branch: roll show_detached HEAD into regular ref_listKarthik Nayak, Sep 13, 2015
  8. Matthieu MoySep 13, 2015
  9. Karthik NayakSep 13, 2015
  10. Eric SunshineSep 13, 2015
  11. Eric SunshineSep 13, 2015
  12. Karthik NayakSep 14, 2015
  13. Matthieu MoySep 14, 2015
  14. Junio C HamanoSep 14, 2015
  15. Karthik NayakSep 16, 2015
  16. Karthik NayakSep 17, 2015
  17. Matthieu MoySep 17, 2015
  18. Junio C HamanoSep 17, 2015
  19. Matthieu MoySep 17, 2015
  20. Junio C HamanoSep 17, 2015
  21. Matthieu MoySep 17, 2015
  22. Junio C HamanoSep 17, 2015
  23. Karthik NayakSep 17, 2015
  24. 4/8 branch: move 'current' check down to the presentation layerKarthik Nayak, Sep 13, 2015
  25. Matthieu MoySep 13, 2015
  26. Karthik NayakSep 13, 2015
  27. 4/8 branch: move 'current' check down to the presentation layerKarthik Nayak, Sep 13, 2015
  28. 5/8 branch: drop non-commit error reportingKarthik Nayak, Sep 13, 2015
  29. Junio C HamanoSep 14, 2015
  30. Karthik NayakSep 16, 2015
  31. 6/8 branch.c: use 'ref-filter' data structuresKarthik Nayak, Sep 13, 2015
  32. Matthieu MoySep 13, 2015
  33. Karthik NayakSep 13, 2015
  34. Matthieu MoySep 13, 2015
  35. 6/8 branch.c: use 'ref-filter' data structuresKarthik Nayak, Sep 13, 2015
  36. Karthik NayakSep 13, 2015
  37. 8/8 branch: add '--points-at' optionKarthik Nayak, Sep 13, 2015
  38. 7/8 branch.c: use 'ref-filter' APIsKarthik Nayak, Sep 13, 2015

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.