git/builtin
Junio C Hamano ffcabccf5d blame $path: avoid getting fooled by case insensitive filesystems
"git blame MAKEFILE" run in a history that has "Makefile" but not
MAKEFILE can get confused on a case insensitive filesystem, because
the check we run to see if there is a corresponding file in the
working tree with lstat("MAKEFILE") succeeds.  In addition to that
check, we have to make sure that the given path also exists in the
commit we start digging history from (i.e. "HEAD").

Note that this reveals the breakage in a test added in cd8ae20
(git-blame shouldn't crash if run in an unmerged tree, 2007-10-18),
which expects the entire merge-in-progress path to be blamed to the
working tree when it did not exist in our tree.  As it is clear in
the log message of that commit, the old breakage was that it was
causing an internal error and the fix was about avoiding it.

Just check that the command does not die an uncontrolled death.  For
this particular case, the blame should fail, as the history for the
file in that contents has not been committed yet at the point in the
test.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-10 18:42:30 -07:00
..
add.c Merge branch 'js/add-e-submodule-fix' into maint 2012-02-13 11:42:18 -08:00
annotate.c
apply.c Use correct grammar in diffstat summary line 2012-02-03 23:19:42 -08:00
archive.c
bisect--helper.c
blame.c blame $path: avoid getting fooled by case insensitive filesystems 2012-09-10 18:42:30 -07:00
branch.c Merge branch 'cn/maint-branch-with-bad' into maint 2012-03-04 22:17:52 -08:00
bundle.c
cat-file.c drop odd return value semantics from userdiff_config 2012-02-07 10:44:54 -08:00
check-attr.c
check-ref-format.c
checkout-index.c
checkout.c checkout: no progress messages if !isatty(2). 2012-05-24 11:29:07 -07:00
clean.c
clone.c Merge branch 'ef/maint-1.7.6-clone-progress-fix' into ef/maint-clone-progress-fix 2012-05-07 12:35:36 -07:00
commit-tree.c Merge branch 'jc/show-sig' 2012-01-06 12:44:07 -08:00
commit.c status: respect "-b" for porcelain format 2012-05-08 04:51:08 -04:00
config.c config: remove useless assignment 2012-03-28 15:19:17 -07:00
count-objects.c
describe.c
diff-files.c
diff-index.c
diff-tree.c
diff.c drop casts from users EMPTY_TREE_SHA1_BIN 2012-03-23 13:52:05 -07:00
fast-export.c Merge branch 'js/maint-fast-export-mark-error' into maint 2012-06-17 14:00:03 -07:00
fetch-pack.c Merge branch 'it/fetch-pack-many-refs' into maint 2012-05-01 21:12:36 -07:00
fetch.c Merge branch 'mb/fetch-call-a-non-branch-a-ref' into maint 2012-05-03 15:29:25 -07:00
fmt-merge-msg.c fmt-merge-message: add empty line between tag and signature verification 2012-05-25 11:24:08 -07:00
for-each-ref.c Convert resolve_ref+xstrdup to new resolve_refdup function 2011-12-13 09:26:52 -08:00
fsck.c fsck: --no-dangling omits "dangling object" information 2012-02-28 14:55:39 -08:00
gc.c gc: use argv-array for sub-commands 2012-04-18 16:17:42 -07:00
grep.c Merge branch 'rs/maint-grep-F' into maint 2012-06-01 13:01:41 -07:00
hash-object.c
help.c
index-pack.c index-pack: eliminate unlimited recursion in get_base_data() 2012-01-16 14:34:33 -08:00
init-db.c builtin/init-db.c: eliminate -Wformat warning on Solaris 2011-12-20 16:02:08 -08:00
log.c diff --stat: add config option to limit graph width 2012-03-01 09:15:58 -08:00
ls-files.c
ls-remote.c
ls-tree.c
mailinfo.c mailinfo: with -b, keep space after [foo] 2012-01-16 16:06:57 -08:00
mailsplit.c
merge-base.c
merge-file.c
merge-index.c
merge-ours.c
merge-recursive.c
merge-tree.c
merge.c Merge branch 'jc/merge-reduce-parents-early' into maint 2012-05-03 15:36:15 -07:00
mktag.c
mktree.c
mv.c Merge branch 'jk/maint-mv' into maint 2011-12-28 11:32:36 -08:00
name-rev.c Merge branch 'jc/maint-name-rev-all' into maint-1.7.6 2011-12-13 21:12:34 -08:00
notes.c Merge branch 'nd/war-on-nul-in-commit' 2011-12-22 11:27:26 -08:00
pack-objects.c gc: do not explode objects which will be immediately pruned 2012-04-11 11:09:49 -07:00
pack-redundant.c
pack-refs.c
patch-id.c
prune-packed.c fix deletion of .git/objects sub-directories in git-prune/repack 2012-03-07 10:24:33 -08:00
prune.c fix deletion of .git/objects sub-directories in git-prune/repack 2012-03-07 10:24:33 -08:00
push.c Merge branch 'ct/advise-push-default' into maint 2012-05-11 11:18:43 -07:00
read-tree.c
receive-pack.c Merge branch 'cb/receive-pack-keep-errors' into maint 2012-02-21 15:14:41 -08:00
reflog.c
remote-ext.c
remote-fd.c
remote.c Merge branch 'pj/remote-set-branches-usage-fix' into maint 2012-02-27 15:33:33 -08:00
replace.c
rerere.c
reset.c reset: update cache-tree data when appropriate 2011-12-06 15:13:39 -08:00
rev-list.c Merge branch 'jk/maint-reflog-walk-count-vs-time' into maint 2012-05-14 11:46:16 -07:00
rev-parse.c rev-parse --show-prefix: add in trailing newline 2012-04-10 09:25:35 -07:00
revert.c Merge branch 'cc/fix-missing-va-end-in-revert' into maint 2012-05-10 10:32:43 -07:00
rm.c
send-pack.c teach send-pack about --[no-]progress 2012-05-01 09:40:30 -07:00
shortlog.c
show-branch.c Rename resolve_ref() to resolve_ref_unsafe() 2011-12-13 09:39:46 -08:00
show-ref.c
stripspace.c Update documentation for stripspace 2011-12-12 16:48:54 -08:00
symbolic-ref.c symbolic-ref --short: abbreviate the output unambiguously 2012-02-27 15:58:36 -08:00
tag.c Merge branch 'tg/tag-points-at' 2012-02-20 00:15:28 -08:00
tar-tree.c
unpack-file.c
unpack-objects.c
update-index.c
update-ref.c
update-server-info.c
upload-archive.c
var.c
verify-pack.c
verify-tag.c verify-tag: Parse GPG configuration options. 2012-03-08 14:03:07 -08:00
write-tree.c