blame: use different author name for fake commit generated by --contents
When the --contents option is used with git blame, and the contents of the file have lines which can't be annotated by the history being blamed, the user will see an author of "Not Committed Yet". This is similar to the way blame handles working tree contents when blaming without a revision. This is slightly confusing since this data isn't the working copy and while it is technically "not committed yet", its also coming from an external file. Replace this author name with "External file (--contents)" to better differentiate such lines from actual working copy lines. Suggested-by: Junio C Hamano <gitster@pobox.com> Suggested-by: Glen Choo <chooglen@google.com> Signed-off-by: Jacob Keller <jacob.keller@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
7580f92ffa
commit
603d0fdce2
@ -64,11 +64,9 @@ include::line-range-format.txt[]
|
||||
manual page.
|
||||
|
||||
--contents <file>::
|
||||
Pretend the file being annotated has a commit with the
|
||||
contents from the named file and a parent of <rev>,
|
||||
defaulting to HEAD when no <rev> is specified. You may
|
||||
specify '-' to make the command read from the standard
|
||||
input for the file contents.
|
||||
Annotate using the contents from the named file, starting from <rev>
|
||||
if it is specified, and HEAD otherwise. You may specify '-' to make
|
||||
the command read from the standard input for the file contents.
|
||||
|
||||
--date <format>::
|
||||
Specifies the format used to output dates. If --date is not
|
||||
|
8
blame.c
8
blame.c
@ -206,8 +206,12 @@ static struct commit *fake_working_tree_commit(struct repository *r,
|
||||
|
||||
origin = make_origin(commit, path);
|
||||
|
||||
ident = fmt_ident("Not Committed Yet", "not.committed.yet",
|
||||
WANT_BLANK_IDENT, NULL, 0);
|
||||
if (contents_from)
|
||||
ident = fmt_ident("External file (--contents)", "external.file",
|
||||
WANT_BLANK_IDENT, NULL, 0);
|
||||
else
|
||||
ident = fmt_ident("Not Committed Yet", "not.committed.yet",
|
||||
WANT_BLANK_IDENT, NULL, 0);
|
||||
strbuf_addstr(&msg, "tree 0000000000000000000000000000000000000000\n");
|
||||
for (parent = commit->parents; parent; parent = parent->next)
|
||||
strbuf_addf(&msg, "parent %s\n",
|
||||
|
@ -72,6 +72,13 @@ test_expect_success 'blame 1 author' '
|
||||
check_count A 2
|
||||
'
|
||||
|
||||
test_expect_success 'blame working copy' '
|
||||
test_when_finished "git restore file" &&
|
||||
echo "1A quick brown fox jumps over the" >file &&
|
||||
echo "another lazy dog" >>file &&
|
||||
check_count A 1 "Not Committed Yet" 1
|
||||
'
|
||||
|
||||
test_expect_success 'blame with --contents' '
|
||||
check_count --contents=file A 2
|
||||
'
|
||||
@ -79,7 +86,7 @@ test_expect_success 'blame with --contents' '
|
||||
test_expect_success 'blame with --contents changed' '
|
||||
echo "1A quick brown fox jumps over the" >contents &&
|
||||
echo "another lazy dog" >>contents &&
|
||||
check_count --contents=contents A 1 "Not Committed Yet" 1
|
||||
check_count --contents=contents A 1 "External file (--contents)" 1
|
||||
'
|
||||
|
||||
test_expect_success 'blame in a bare repo without starting commit' '
|
||||
@ -109,7 +116,7 @@ test_expect_success 'blame 2 authors' '
|
||||
'
|
||||
|
||||
test_expect_success 'blame with --contents and revision' '
|
||||
check_count -h testTag --contents=file A 2 "Not Committed Yet" 2
|
||||
check_count -h testTag --contents=file A 2 "External file (--contents)" 2
|
||||
'
|
||||
|
||||
test_expect_success 'setup B1 lines (branch1)' '
|
||||
|
Loading…
Reference in New Issue
Block a user