Fix broken sha1 locking
[gitweb.git] / builtin-zip-tree.c
index 4e796338af407929d3004dd0ea756a5b20ad659b..52d4b7a17e39831964fe7c9c9c0cb374d0d61a62 100644 (file)
@@ -13,6 +13,7 @@
 static const char zip_tree_usage[] =
 "git-zip-tree [-0|...|-9] <tree-ish> [ <base> ]";
 
+static int verbose;
 static int zip_date;
 static int zip_time;
 
@@ -164,6 +165,8 @@ static int write_zip_entry(const unsigned char *sha1,
        crc = crc32(0, Z_NULL, 0);
 
        path = construct_path(base, baselen, filename, S_ISDIR(mode), &pathlen);
+       if (verbose)
+               fprintf(stderr, "%s\n", path);
        if (pathlen > 0xffff) {
                error("path too long (%d chars, SHA1: %s): %s", pathlen,
                      sha1_to_hex(sha1), path);
@@ -361,9 +364,10 @@ int write_zip_archive(struct archiver_args *args)
 
        zip_dir = xmalloc(ZIP_DIRECTORY_MIN_SIZE);
        zip_dir_size = ZIP_DIRECTORY_MIN_SIZE;
+       verbose = args->verbose;
 
        if (args->base && plen > 0 && args->base[plen - 1] == '/') {
-               char *base = strdup(args->base);
+               char *base = xstrdup(args->base);
                int baselen = strlen(base);
 
                while (baselen > 0 && base[baselen - 1] == '/')