X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=git.c;h=fa58232ddf146ee9edcf51403e551f8d2fa015a5;hb=f0853837d6ee69dccfa59222a0e869de94bdddc6;hp=0b40e3060d8d95a6da7c8603317c6e2cb6c5ec46;hpb=a87cd02ce02e97083eb76eb8b9bfeb2e46800fd7;p=git.git diff --git a/git.c b/git.c index 0b40e306..fa58232d 100644 --- a/git.c +++ b/git.c @@ -172,7 +172,7 @@ static void list_commands(const char *exec_path, const char *pattern) putchar('\n'); } -static void list_common_cmds_help() +static void list_common_cmds_help(void) { int i, longest = 0; @@ -283,7 +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 show_parents = 0; + int abbrev_commit = 0; const char *commit_prefix = "commit "; argc = setup_revisions(argc, argv, &rev, "HEAD"); @@ -294,12 +294,15 @@ static int cmd_log(int argc, const char **argv, char **envp) if (commit_format == CMIT_FMT_ONELINE) commit_prefix = ""; } - else if (!strcmp(arg, "--parents")) { - show_parents = 1; - } 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) @@ -315,9 +318,13 @@ 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)); - if (show_parents) { + 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) { struct object *o = &(parents->item->object);