aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-03-26 12:43:49 -0700
committerJunio C Hamano <gitster@pobox.com>2013-03-26 12:43:49 -0700
commit7d2726c3933538e5f256846a2bb38e1065c868b5 (patch)
treec1e2be1bc8c7cfb4c464637c7dc5f5e8986eb9e5
parentd7cccbb3bb706b6a9eb13120e354a8487b4b3cfe (diff)
parentd3c1472fe35e2575508d80415565822ee2211df5 (diff)
downloadgit-7d2726c3933538e5f256846a2bb38e1065c868b5.tar.gz
git-7d2726c3933538e5f256846a2bb38e1065c868b5.tar.xz
Merge branch 'rs/zip-compresssed-size-with-export-subst' into maint
When export-subst is used, "zip" output recorded incorrect size of the file. * rs/zip-compresssed-size-with-export-subst: archive-zip: fix compressed size for stored export-subst files
-rw-r--r--archive-zip.c2
-rwxr-xr-xt/t5003-archive-zip.sh6
2 files changed, 7 insertions, 1 deletions
diff --git a/archive-zip.c b/archive-zip.c
index d3aef532b..a8d119305 100644
--- a/archive-zip.c
+++ b/archive-zip.c
@@ -240,7 +240,6 @@ static int write_zip_entry(struct archiver_args *args,
(mode & 0111) ? ((mode) << 16) : 0;
if (S_ISREG(mode) && args->compression_level != 0 && size > 0)
method = 8;
- compressed_size = (method == 0) ? size : 0;
if (S_ISREG(mode) && type == OBJ_BLOB && !args->convert &&
size > big_file_threshold) {
@@ -259,6 +258,7 @@ static int write_zip_entry(struct archiver_args *args,
crc = crc32(crc, buffer, size);
out = buffer;
}
+ compressed_size = (method == 0) ? size : 0;
} else {
return error("unsupported file mode: 0%o (SHA1: %s)", mode,
sha1_to_hex(sha1));
diff --git a/t/t5003-archive-zip.sh b/t/t5003-archive-zip.sh
index 7cfe9ca3d..6a33606d2 100755
--- a/t/t5003-archive-zip.sh
+++ b/t/t5003-archive-zip.sh
@@ -76,6 +76,12 @@ test_expect_success \
git update-ref HEAD $(TZ=GMT GIT_COMMITTER_DATE="2005-05-27 22:00:00" \
git commit-tree $treeid </dev/null)'
+test_expect_success 'setup export-subst' '
+ echo "substfile?" export-subst >>.git/info/attributes &&
+ git log --max-count=1 "--pretty=format:A${SUBSTFORMAT}O" HEAD \
+ >a/substfile1
+'
+
test_expect_success \
'create bare clone' \
'git clone --bare . bare.git &&