summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-05-04 16:51:28 (GMT)
committerJunio C Hamano <gitster@pobox.com>2022-05-04 16:51:28 (GMT)
commit2cc712324d518b57ac895f22314ded09cc058621 (patch)
treee3c845c074e5aadf25ee6d8af8c4178327a0ba7d
parentd5a17b6665cd79a7bce54e8cde974503d0e8ddc6 (diff)
parentd1c25272f5c5f78ae302f07ea0b5832c601e373b (diff)
downloadgit-2cc712324d518b57ac895f22314ded09cc058621.zip
git-2cc712324d518b57ac895f22314ded09cc058621.tar.gz
git-2cc712324d518b57ac895f22314ded09cc058621.tar.bz2
Merge branch 'rs/fast-export-pathspec-fix'
"git fast-export -- <pathspec>" lost the pathspec when showing the second and subsequent commits, which has been corrected. * rs/fast-export-pathspec-fix: 2.36 fast-export regression fix
-rw-r--r--builtin/fast-export.c1
-rwxr-xr-xt/t9350-fast-export.sh7
2 files changed, 8 insertions, 0 deletions
diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index a7d7269..1355b5a 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -1261,6 +1261,7 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix)
revs.diffopt.format_callback = show_filemodify;
revs.diffopt.format_callback_data = &paths_of_changed_objects;
revs.diffopt.flags.recursive = 1;
+ revs.diffopt.no_free = 1;
while ((commit = get_revision(&revs)))
handle_commit(commit, &revs, &paths_of_changed_objects);
diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh
index 7b7a18d..fc99703 100755
--- a/t/t9350-fast-export.sh
+++ b/t/t9350-fast-export.sh
@@ -500,6 +500,13 @@ test_expect_success 'path limiting with import-marks does not lose unmodified fi
grep file0 actual
'
+test_expect_success 'path limiting works' '
+ git fast-export simple -- file >actual &&
+ sed -ne "s/^M .* //p" <actual | sort -u >actual.files &&
+ echo file >expect &&
+ test_cmp expect actual.files
+'
+
test_expect_success 'avoid corrupt stream with non-existent mark' '
test_create_repo avoid_non_existent_mark &&
(