X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git.c;h=140ed1873d7b5e334452cc8f8ac75a0541e32b6c;hb=360204c324ca9178e2bcb4d75f3986201f8ac7e1;hp=ad896da5849b9697cf61d7349ee7d4e20611106d;hpb=477f2b41310c4b1040a9e7f72720b9c39d82caf9;p=git.git diff --git a/git.c b/git.c index ad896da5..140ed187 100644 --- a/git.c +++ b/git.c @@ -15,8 +15,8 @@ #include "cache.h" #include "commit.h" -#include "revision.h" #include "diff.h" +#include "revision.h" #include "log-tree.h" #ifndef PATH_MAX @@ -354,7 +354,7 @@ static int cmd_log(int argc, const char **argv, char **envp) prepare_revision_walk(&rev); setup_pager(); while ((commit = get_revision(&rev)) != NULL) { - if (commit_format != CMIT_FMT_ONELINE && shown) + if (shown && do_diff && commit_format != CMIT_FMT_ONELINE) putchar('\n'); fputs(commit_prefix, stdout); if (abbrev_commit && abbrev) @@ -388,9 +388,13 @@ static int cmd_log(int argc, const char **argv, char **envp) pretty_print_commit(commit_format, commit, ~0, buf, LOGSIZE, abbrev); printf("%s\n", buf); - if (do_diff) + if (do_diff) { + printf("---\n"); log_tree_commit(&opt, commit); + } shown = 1; + free(commit->buffer); + commit->buffer = NULL; } free(buf); return 0; @@ -409,6 +413,12 @@ static void handle_internal_command(int argc, const char **argv, char **envp) }; int i; + /* Turn "git cmd --help" into "git help cmd" */ + if (argc > 1 && !strcmp(argv[1], "--help")) { + argv[1] = argv[0]; + argv[0] = cmd = "help"; + } + for (i = 0; i < ARRAY_SIZE(commands); i++) { struct cmd_struct *p = commands+i; if (strcmp(p->cmd, cmd))