aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-04-04 12:59:55 -0700
committerJunio C Hamano <gitster@pobox.com>2013-04-04 12:59:55 -0700
commit5ccb7e2ef33612075fe6eedbf08c020b3ea1e7b9 (patch)
tree7f5608d85f59eb346db40f77db155d267403325b
parent9b924eee98332225f63c36c5d9673c47e0a8b769 (diff)
parentf59de5d1ff9b0f9d570df99128f41520a281f9a5 (diff)
downloadgit-5ccb7e2ef33612075fe6eedbf08c020b3ea1e7b9.tar.gz
git-5ccb7e2ef33612075fe6eedbf08c020b3ea1e7b9.tar.xz
Merge branch 'jk/peel-ref' into maint
* jk/peel-ref: upload-pack: load non-tip "want" objects from disk upload-pack: make sure "want" objects are parsed upload-pack: drop lookup-before-parse optimization
-rwxr-xr-xt/t5500-fetch-pack.sh9
-rw-r--r--upload-pack.c6
2 files changed, 11 insertions, 4 deletions
diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
index 354d32c58..d57408569 100755
--- a/t/t5500-fetch-pack.sh
+++ b/t/t5500-fetch-pack.sh
@@ -364,6 +364,15 @@ EOF
test_cmp count7.expected count7.actual
'
+test_expect_success 'clone shallow with packed refs' '
+ git pack-refs --all &&
+ git clone --depth 1 --branch A "file://$(pwd)/." shallow8 &&
+ echo "in-pack: 4" > count8.expected &&
+ GIT_DIR=shallow8/.git git count-objects -v |
+ grep "^in-pack" > count8.actual &&
+ test_cmp count8.expected count8.actual
+'
+
test_expect_success 'setup tests for the --stdin parameter' '
for head in C D E F
do
diff --git a/upload-pack.c b/upload-pack.c
index 30146a04f..948cfffe1 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -325,9 +325,7 @@ static int got_sha1(char *hex, unsigned char *sha1)
if (!has_sha1_file(sha1))
return -1;
- o = lookup_object(sha1);
- if (!(o && o->parsed))
- o = parse_object(sha1);
+ o = parse_object(sha1);
if (!o)
die("oops (%s)", sha1_to_hex(sha1));
if (o->type == OBJ_COMMIT) {
@@ -640,7 +638,7 @@ static void receive_needs(void)
if (parse_feature_request(features, "include-tag"))
use_include_tag = 1;
- o = lookup_object(sha1_buf);
+ o = parse_object(sha1_buf);
if (!o)
die("git upload-pack: not our ref %s",
sha1_to_hex(sha1_buf));