Thread (10 messages) flat view 10 messages, 4 authors, 2016-06-15
DORMANTno replies

[PATCH v2] Group the default git help message by topic

From: Scott Chacon <hidden>
Date: 2016-06-15 22:48:57
Subsystem: the rest · Maintainer: Linus Torvalds

It's difficult to process 21 commands (which is what is output
by default for git when no command is given).  They have been
re-grouped into 4 groups of 5-6 commands each, which is clearer
and easier for new users to process.  More advanced commands
such as bisect and rebase have also been removed as this should
be output for beginners.

Signed-off-by: Scott Chacon <redacted>
---

Here is the second version of this patch.  Instead of hard-coding
all the descriptions, I'm just pulling them from the common-cmds.h
file.

 builtin/help.c |   54 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 12 deletions(-)
diff --git a/builtin/help.c b/builtin/help.c
index 3182a2b..2975b3d 100644
--- a/builtin/help.c
+++ b/builtin/help.c
@@ -269,23 +269,53 @@ static int git_help_config(const char *var,
const char *value, void *cb)
 	return git_default_config(var, value, cb);
 }

-static struct cmdnames main_cmds, other_cmds;
-
-void list_common_cmds_help(void)
+void print_command(const char *s)
 {
-	int i, longest = 0;
+	int i = 0;
+	int longest = 10;

 	for (i = 0; i < ARRAY_SIZE(common_cmds); i++) {
-		if (longest < strlen(common_cmds[i].name))
-			longest = strlen(common_cmds[i].name);
+		if (!strcmp(s, common_cmds[i].name)) {
+			printf("   %s   ", common_cmds[i].name);
+			mput_char(' ', longest - strlen(common_cmds[i].name));
+			puts(common_cmds[i].help);
+		}
 	}
+}

-	puts("The most commonly used git commands are:");
-	for (i = 0; i < ARRAY_SIZE(common_cmds); i++) {
-		printf("   %s   ", common_cmds[i].name);
-		mput_char(' ', longest - strlen(common_cmds[i].name));
-		puts(common_cmds[i].help);
-	}
+static struct cmdnames main_cmds, other_cmds;
+
+void list_common_cmds_help(void)
+{
+	puts("The most commonly used git commands are:\n");
+
+	puts("Basic Commands:");
+	print_command("init");
+	print_command("clone");
+	print_command("add");
+	print_command("status");
+	print_command("commit");
+	puts("");
+
+	puts("Branch Commands:");
+	print_command("branch");
+	print_command("checkout");
+	print_command("merge");
+	print_command("tag");
+	puts("");
+
+	puts("History Commands:");
+	print_command("log");
+	print_command("diff");
+	print_command("reset");
+	print_command("show");
+	puts("");
+
+	puts("Remote Commands:");
+	print_command("remote");
+	print_command("fetch");
+	print_command("pull");
+	print_command("push");
 }

 static int is_git_command(const char *s)
-- 
1.7.0.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help