[PATCH] Soft aliases: add "less" and minimal documentation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Now you can use "git less HEAD" to view the raw HEAD commit object.  It
is really a soft alias (i.e. it can be overridden by any user-specified
alias) to "-p cat-file -p".

This commit refactors the code a bit, to make adding new soft aliases
much easier.

It also adds a few lines in git.txt, so that users actually have a chance
to find out about soft aliases.

Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx>
---

	On Wed, 5 Dec 2007, Junio C Hamano wrote:

	> * jk/builtin-alias (Fri Nov 30 11:22:58 2007 -0500) 1 commit
	>  + Support builtin aliases
	> 
	> Cute hack.  I'd like to have "git less" here.

	How about this?

	BTW now it should be easy to add soft aliases for "update", "up",
	"checkin" and "ci".

 Documentation/git.txt |    9 +++++++++
 git.c                 |   13 +++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/Documentation/git.txt b/Documentation/git.txt
index c4e4d24..d29dfdc 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -248,6 +248,15 @@ users typically do not use them directly.
 include::cmds-purehelpers.txt[]
 
 
+Soft aliases
+~~~~~~~~~~~~
+
+There are a few hard-coded aliases which can be overridden by explicit
+aliases (see gitlink:git-config[1]).  These include "view" for viewing
+the repository graphically, and "less" to show an object from the
+database using the pager.
+
+
 Configuration Mechanism
 -----------------------
 
diff --git a/git.c b/git.c
index 92cc49b..3c82f80 100644
--- a/git.c
+++ b/git.c
@@ -148,10 +148,19 @@ static int split_cmdline(char *cmdline, const char ***argv)
 	return count;
 }
 
+static struct {
+	const char *alias, *command;
+} builtin_aliases[] = {
+	{ "view", "!gitk" },
+	{ "less", "-p cat-file -p" },
+};
+
 static char *builtin_alias(const char *cmd)
 {
-	if (!strcmp(cmd, "view"))
-		return xstrdup("!gitk");
+	int i;
+	for (i = 0; i < ARRAY_SIZE(builtin_aliases); i++)
+		if (!strcmp(cmd, builtin_aliases[i].alias))
+			return xstrdup(builtin_aliases[i].command);
 	return NULL;
 }
 
-- 
1.5.3.7.2139.g2a5a3

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux