summaryrefslogtreecommitdiff
path: root/t/t5003-archive-zip.sh
diff options
context:
space:
mode:
authorLibravatar René Scharfe <l.s.r@web.de>2020-09-19 23:23:42 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2020-09-19 15:56:06 -0700
commit2947a7930d2864cfbc3f9815959cd6539e2ea9ad (patch)
treef7c0ead6a43ad6eb6b9e167020eb561370043935 /t/t5003-archive-zip.sh
parentarchive: read short blobs in archive.c::write_archive_entry() (diff)
downloadtgif-2947a7930d2864cfbc3f9815959cd6539e2ea9ad.tar.xz
archive: add --add-file
Allow users to append non-tracked files. This simplifies the generation of source packages with a few extra files, e.g. containing version information. They get the same access times and user information as tracked files. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t5003-archive-zip.sh')
-rwxr-xr-xt/t5003-archive-zip.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/t/t5003-archive-zip.sh b/t/t5003-archive-zip.sh
index 3b76d2eb65..1e6d18b140 100755
--- a/t/t5003-archive-zip.sh
+++ b/t/t5003-archive-zip.sh
@@ -72,6 +72,16 @@ check_zip() {
"
}
+check_added() {
+ dir=$1
+ path_in_fs=$2
+ path_in_archive=$3
+
+ test_expect_success UNZIP " validate extra file $path_in_archive" '
+ diff -r $path_in_fs $dir/$path_in_archive
+ '
+}
+
test_expect_success \
'populate workdir' \
'mkdir a &&
@@ -188,4 +198,22 @@ test_expect_success 'git archive --format=zip on large files' '
check_zip large-compressed
+test_expect_success 'git archive --format=zip --add-file' '
+ echo untracked >untracked &&
+ git archive --format=zip --add-file=untracked HEAD >with_untracked.zip
+'
+
+check_zip with_untracked
+check_added with_untracked untracked untracked
+
+test_expect_success 'git archive --format=zip --add-file twice' '
+ echo untracked >untracked &&
+ git archive --format=zip --prefix=one/ --add-file=untracked \
+ --prefix=two/ --add-file=untracked \
+ --prefix= HEAD >with_untracked2.zip
+'
+check_zip with_untracked2
+check_added with_untracked2 untracked one/untracked
+check_added with_untracked2 untracked two/untracked
+
test_done