summaryrefslogtreecommitdiff
path: root/rev-list.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-02-10 19:56:42 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-02-10 19:56:42 (GMT)
commit9da5c2f0d7e99eca46ce12bfe08755b30f2bdd30 (patch)
treeaa8c5bda4e01d77cf6ed77f5c6bb6cc730a19949 /rev-list.c
parent39556fbdadaacf67330bc1464e0172468e9c3a5e (diff)
downloadgit-9da5c2f0d7e99eca46ce12bfe08755b30f2bdd30.zip
git-9da5c2f0d7e99eca46ce12bfe08755b30f2bdd30.tar.gz
git-9da5c2f0d7e99eca46ce12bfe08755b30f2bdd30.tar.bz2
rev-list: default to abbreviate merge parent names under --pretty.
When we prettyprint commit log messages, merge parent names were often very long and there was no way to abbreviate it. This changes them to be abbreviated by default, and non-default abbreviations can be specified with --no-abbrev or --abbrev=<n> options. Note that this affects only the prettyprinted parent names. The output from --show-parents is meant for machine consumption and is not affected by this flag.
Diffstat (limited to 'rev-list.c')
-rw-r--r--rev-list.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/rev-list.c b/rev-list.c
index a554e07..63391fc 100644
--- a/rev-list.c
+++ b/rev-list.c
@@ -32,6 +32,7 @@ static const char rev_list_usage[] =
" --objects\n"
" --unpacked\n"
" --header | --pretty\n"
+" --abbrev=nr | --no-abbrev\n"
" special purpose:\n"
" --bisect"
;
@@ -43,6 +44,7 @@ static int tag_objects = 0;
static int tree_objects = 0;
static int blob_objects = 0;
static int verbose_header = 0;
+static int abbrev = DEFAULT_ABBREV;
static int show_parents = 0;
static int hdr_termination = 0;
static const char *commit_prefix = "";
@@ -96,7 +98,7 @@ static void show_commit(struct commit *commit)
if (verbose_header) {
static char pretty_header[16384];
- pretty_print_commit(commit_format, commit, ~0, pretty_header, sizeof(pretty_header), 0);
+ pretty_print_commit(commit_format, commit, ~0, pretty_header, sizeof(pretty_header), abbrev);
printf("%s%c", pretty_header, hdr_termination);
}
fflush(stdout);
@@ -795,6 +797,18 @@ int main(int argc, const char **argv)
verbose_header = 1;
continue;
}
+ if (!strcmp(arg, "--no-abbrev")) {
+ abbrev = 0;
+ continue;
+ }
+ if (!strncmp(arg, "--abbrev=", 9)) {
+ abbrev = strtoul(arg + 9, NULL, 10);
+ if (abbrev && abbrev < MINIMUM_ABBREV)
+ abbrev = MINIMUM_ABBREV;
+ else if (40 < abbrev)
+ abbrev = 40;
+ continue;
+ }
if (!strncmp(arg, "--pretty", 8)) {
commit_format = get_commit_format(arg+8);
verbose_header = 1;