diff options
author | Junio C Hamano <junkio@cox.net> | 2006-04-07 22:34:11 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-04-08 20:32:40 -0700 |
commit | f0853837d6ee69dccfa59222a0e869de94bdddc6 (patch) | |
tree | 7e226d738099d592e53c5c038ecdd650cb299213 /git.c | |
parent | Merge branch 'master' into next (diff) | |
download | tgif-f0853837d6ee69dccfa59222a0e869de94bdddc6.tar.xz |
git-log: match rev-list --abbrev and --abbrev-commit
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git.c')
-rw-r--r-- | git.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -283,6 +283,7 @@ static int cmd_log(int argc, const char **argv, char **envp) char *buf = xmalloc(LOGSIZE); static enum cmit_fmt commit_format = CMIT_FMT_DEFAULT; int abbrev = DEFAULT_ABBREV; + int abbrev_commit = 0; const char *commit_prefix = "commit "; argc = setup_revisions(argc, argv, &rev, "HEAD"); @@ -296,6 +297,12 @@ static int cmd_log(int argc, const char **argv, char **envp) else if (!strcmp(arg, "--no-abbrev")) { abbrev = 0; } + else if (!strcmp(arg, "--abbrev")) { + abbrev = DEFAULT_ABBREV; + } + else if (!strcmp(arg, "--abbrev-commit")) { + abbrev_commit = 1; + } else if (!strncmp(arg, "--abbrev=", 9)) { abbrev = strtoul(arg + 9, NULL, 10); if (abbrev && abbrev < MINIMUM_ABBREV) @@ -311,8 +318,12 @@ static int cmd_log(int argc, const char **argv, char **envp) prepare_revision_walk(&rev); setup_pager(); while ((commit = get_revision(&rev)) != NULL) { - printf("%s%s", commit_prefix, - sha1_to_hex(commit->object.sha1)); + fputs(commit_prefix, stdout); + if (abbrev_commit && abbrev) + fputs(find_unique_abbrev(commit->object.sha1, abbrev), + stdout); + else + fputs(sha1_to_hex(commit->object.sha1), stdout); if (rev.parents) { struct commit_list *parents = commit->parents; while (parents) { |