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

[PATCH][GSOC2014] install_branch_config: change logical chain to lookup table

From
TamerTas <tamertas@outlook.com>
Date
Mar 14, 2014, 21:30 UTC
Message-ID
<BLU0-SMTP430B54F52C27DDA0C405A5D5700@phx.gbl>
In-Reply-To
<CAPig+cRCKCcfYQVM=pyXUQtTsbaD8g=OKff+K5+Bd+kBgqAufg@mail.gmail.com>
Signed-off-by: TamerTas <tamertas@outlook.com>
---
Thanks again for the feedback it's been a great learning experience. Comments Below :)

I have refactored the commit [1] to * suggested changes [2]. format-patch was placing 2 hyphens instead of 3 but it's fixed now. I've turned the table into a multidimensional one and I didn't put the inner braces since this was used method in other multidimensional arrays throughout the project. I've also changed shortname to short_name since that seems to be how variables are named in this project. It appears that table-driven code might be more readable after all.

[1]http://git.661346.n2.nabble.com/PATCH-GSOC2014-install-branch-config-change-logical-chain-to-lookup-table-tp7605550.html
[2]http://git.661346.n2.nabble.com/PATCH-GSOC2014-install-branch-config-change-logical-chain-to-lookup-table-tp7605550p7605605.html
---
 branch.c |   42 +++++++++++++++++-------------------------
 1 file changed, 17 insertions(+), 25 deletions(-)
diff --git a/branch.c b/branch.c
index 723a36b..eab6fa4 100644
--- a/branch.c
+++ b/branch.c
@@ -49,13 +49,27 @@ static int should_setup_rebase(const char *origin)
 
 void install_branch_config(int flag, const char *local, const char *origin, const char *remote)
 {
-	const char *shortname = remote + 11;
+	const char *short_name = remote + 11;
+	const char *setup_message[][2][2] = {
+		N_("Branch %s set up to track local ref %s."), 
+		N_("Branch %s set up to track local branch %s."),
+		N_("Branch %s set up to track remote ref %s."), 
+		N_("Branch %s set up to track remote branch %s from %s."),
+		N_("Branch %s set up to track local ref %s by rebasing."), 
+		N_("Branch %s set up to track local branch %s by rebasing."),
+		N_("Branch %s set up to track remote ref %s by rebasing."), 
+		N_("Branch %s set up to track remote branch %s from %s by rebasing.")
+	}; 
+
 	int remote_is_branch = starts_with(remote, "refs/heads/");
 	struct strbuf key = STRBUF_INIT;
 	int rebasing = should_setup_rebase(origin);
 
+	const char *remote_name = remote_is_branch? short_name : remote;
+	const char *message = setup_message[!!rebasing][!!origin][!!remote_is_branch];
+
 	if (remote_is_branch
-	    && !strcmp(local, shortname)
+	    && !strcmp(local, short_name)
 	    && !origin) {
 		warning(_("Not setting branch %s as its own upstream."),
 			local);
@@ -77,29 +91,7 @@ void install_branch_config(int flag, const char *local, const char *origin, cons
 	strbuf_release(&key);
 
 	if (flag & BRANCH_CONFIG_VERBOSE) {
-		if (remote_is_branch && origin)
-			printf_ln(rebasing ?
-				  _("Branch %s set up to track remote branch %s from %s by rebasing.") :
-				  _("Branch %s set up to track remote branch %s from %s."),
-				  local, shortname, origin);
-		else if (remote_is_branch && !origin)
-			printf_ln(rebasing ?
-				  _("Branch %s set up to track local branch %s by rebasing.") :
-				  _("Branch %s set up to track local branch %s."),
-				  local, shortname);
-		else if (!remote_is_branch && origin)
-			printf_ln(rebasing ?
-				  _("Branch %s set up to track remote ref %s by rebasing.") :
-				  _("Branch %s set up to track remote ref %s."),
-				  local, remote);
-		else if (!remote_is_branch && !origin)
-			printf_ln(rebasing ?
-				  _("Branch %s set up to track local ref %s by rebasing.") :
-				  _("Branch %s set up to track local ref %s."),
-				  local, remote);
-		else
-			die("BUG: impossible combination of %d and %p",
-			    remote_is_branch, origin);
+		printf_ln(_(message), local, remote_name, origin);
 	}
 }
 
---
1.7.9.5
Previous: Eric SunshineNext: Eric Sunshine
Message 3 of 4 in “[GSOC2014] install_branch_config: change logical chain to lookup table”
  1. [GSOC2014] install_branch_config: change logical chain to lookup tableTamerTas, Mar 12, 2014
  2. Eric SunshineMar 13, 2014
  3. [GSOC2014] install_branch_config: change logical chain to lookup tableTamerTas, Mar 14, 2014
  4. Eric SunshineMar 17, 2014

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.