On Fri, Nov 30, 2007 at 07:50:47AM -0800, Linus Torvalds wrote:
Well, different people will want different viewers *anyway* (ie some will
prefer qgit etc), so how about making "git view" be something that
literally acts as a built-in alias that just defaults to running gitk (if
for no other reason than the fact that gitk is the one that ships with
git, and simply has most users).
I think that is a good idea, and here's a patch.
-- >8 --
Support builtin aliases
Builtin aliases are "default" alias values that can be
overridden by user-configured aliases.
For example, the first such alias is "view", an alias for
gitk. A user with no further configuration can run
"git view" to use gitk. However, they can also set the
config option "alias.view" to "!tig" to run tig.
---
git.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/git.c b/git.c
index f220284..95296aa 100644
--- a/git.c
+++ b/git.c
@@ -151,6 +151,13 @@ static int split_cmdline(char *cmdline, const char ***argv)
return count;
}
+static char *builtin_alias(const char *cmd)
+{
+ if (!strcmp(cmd, "view"))
+ return xstrdup("!gitk");
+ return NULL;
+}
+
static int handle_alias(int *argcp, const char ***argv)
{
int nongit = 0, envchanged = 0, ret = 0, saved_errno = errno;@@ -162,6 +169,8 @@ static int handle_alias(int *argcp, const char ***argv)
alias_command = (*argv)[0];
git_config(git_alias_config);
+ if (!alias_string)
+ alias_string = builtin_alias(alias_command);
if (alias_string) {
if (alias_string[0] == '!') {
if (*argcp > 1) {--
1.5.3.6.2064.g2e22f-dirty