summaryrefslogtreecommitdiff
path: root/builtin/cat-file.c
diff options
context:
space:
mode:
authorBrodie Rao <brodie@sf.io>2014-01-07 03:32:01 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-01-07 17:51:56 (GMT)
commit832cf74c0792a58c9c28e32a8fe5dbb694f0cce6 (patch)
tree3b6a5b33ce61f80d935028818c65f5a160ec8921 /builtin/cat-file.c
parentc90d3dbe7db37f298e7ce858cfc4c494113f8945 (diff)
downloadgit-832cf74c0792a58c9c28e32a8fe5dbb694f0cce6.zip
git-832cf74c0792a58c9c28e32a8fe5dbb694f0cce6.tar.gz
git-832cf74c0792a58c9c28e32a8fe5dbb694f0cce6.tar.bz2
sha1_name: don't resolve refs when core.warnambiguousrefs is false
When seeing a full 40-hex object name, get_sha1_basic() unconditionally checks if the string can also be interpreted as a refname, but the result will not be used unless warn_ambiguous_refs is in effect. Omitting this unnecessary ref resolution provides a substantial performance improvement, especially when passing many hashes to a command (like "git rev-list --stdin") and core.warnambiguousrefs is set to false. The check incurs 6 stat()s for every hash supplied, which can be costly over NFS. Signed-off-by: Brodie Rao <brodie@sf.io> Acked-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/cat-file.c')
0 files changed, 0 insertions, 0 deletions