Merge branch 'rs/zip-compresssed-size-with-export-subst' into maint
authorJunio C Hamano <gitster@pobox.com>
Tue, 26 Mar 2013 19:43:49 +0000 (12:43 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 26 Mar 2013 19:43:49 +0000 (12:43 -0700)
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

archive-zip.c
t/t5003-archive-zip.sh
index d3aef532b7e4b844f2ac9995b2e987d378737079..a8d119305ff5c0161e7239a8ad70a92c76122631 100644 (file)
@@ -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));
index 7cfe9ca3dacb1488aa44ea3643e1333d346feac7..6a33606d28eba61281252cf28f6d5820dc452f1d 100755 (executable)
@@ -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 &&