summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2011-04-27 11:36:42 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2011-04-27 11:36:42 -0700
commit18b33bf425a2e4a142f5666dc6e76e2ed579a5ca (patch)
treecd85fc63b630c388f611aa319cb965c724c7e0a4 /builtin
parentMerge branch 'jk/maint-stash-oob' (diff)
parentblame: add --abbrev command line option and make it honor core.abbrev (diff)
downloadtgif-18b33bf425a2e4a142f5666dc6e76e2ed579a5ca.tar.xz
Merge branch 'nk/blame-abbrev'
* nk/blame-abbrev: blame: add --abbrev command line option and make it honor core.abbrev
Diffstat (limited to 'builtin')
-rw-r--r--builtin/blame.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/builtin/blame.c b/builtin/blame.c
index f6b03f750a..4639788178 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -41,6 +41,7 @@ static int reverse;
static int blank_boundary;
static int incremental;
static int xdl_opts;
+static int abbrev = -1;
static enum date_mode blame_date_mode = DATE_ISO8601;
static size_t blame_date_width;
@@ -1670,7 +1671,7 @@ static void emit_other(struct scoreboard *sb, struct blame_entry *ent, int opt)
cp = nth_line(sb, ent->lno);
for (cnt = 0; cnt < ent->num_lines; cnt++) {
char ch;
- int length = (opt & OUTPUT_LONG_OBJECT_NAME) ? 40 : 8;
+ int length = (opt & OUTPUT_LONG_OBJECT_NAME) ? 40 : abbrev;
if (suspect->commit->object.flags & UNINTERESTING) {
if (blank_boundary)
@@ -2310,6 +2311,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
{ OPTION_CALLBACK, 'C', NULL, &opt, "score", "Find line copies within and across files", PARSE_OPT_OPTARG, blame_copy_callback },
{ OPTION_CALLBACK, 'M', NULL, &opt, "score", "Find line movements within and across files", PARSE_OPT_OPTARG, blame_move_callback },
OPT_CALLBACK('L', NULL, &bottomtop, "n,m", "Process only line range n,m, counting from 1", blame_bottomtop_callback),
+ OPT__ABBREV(&abbrev),
OPT_END()
};
@@ -2345,6 +2347,11 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
parse_done:
argc = parse_options_end(&ctx);
+ if (abbrev == -1)
+ abbrev = default_abbrev;
+ /* one more abbrev length is needed for the boundary commit */
+ abbrev++;
+
if (revs_file && read_ancestry(revs_file))
die_errno("reading graft file '%s' failed", revs_file);