From f15652d90c37ca56db08d325c871f2cc8f7d509e Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Fri, 9 Jul 2010 07:10:51 -0600 Subject: Add additional testcases for D/F conflicts Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- t/t9350-fast-export.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 't/t9350-fast-export.sh') diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh index d43f37ccaf..69179c6124 100755 --- a/t/t9350-fast-export.sh +++ b/t/t9350-fast-export.sh @@ -376,4 +376,28 @@ test_expect_success 'tree_tag-obj' 'git fast-export tree_tag-obj' test_expect_success 'tag-obj_tag' 'git fast-export tag-obj_tag' test_expect_success 'tag-obj_tag-obj' 'git fast-export tag-obj_tag-obj' +test_expect_failure 'directory becomes symlink' ' + git init dirtosymlink && + git init result && + ( + cd dirtosymlink && + mkdir foo && + mkdir bar && + echo hello > foo/world && + echo hello > bar/world && + git add foo/world bar/world && + git commit -q -mone && + git rm -r foo && + ln -s bar foo && + git add foo && + git commit -q -mtwo + ) && + ( + cd dirtosymlink && + git fast-export master -- foo | + (cd ../result && git fast-import --quiet) + ) && + (cd result && git show master:foo) +' + test_done -- cgit v1.2.1 From 060df624228187c77ca53a437ae0e9896076f045 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Fri, 9 Jul 2010 07:10:55 -0600 Subject: fast-export: Fix output order of D/F changes The fast-import stream format requires incremental changes which take place immediately, meaning that for D->F conversions all files below the relevant directory must be deleted before the resulting file of the same name is created. Reversing the order can result in fast-import silently deleting the file right after creating it, resulting in the file missing from the resulting repository. We correct this by first sorting the diff_queue_struct in depth-first order. Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- t/t9350-fast-export.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 't/t9350-fast-export.sh') diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh index 69179c6124..1ee1461c9b 100755 --- a/t/t9350-fast-export.sh +++ b/t/t9350-fast-export.sh @@ -376,7 +376,7 @@ test_expect_success 'tree_tag-obj' 'git fast-export tree_tag-obj' test_expect_success 'tag-obj_tag' 'git fast-export tag-obj_tag' test_expect_success 'tag-obj_tag-obj' 'git fast-export tag-obj_tag-obj' -test_expect_failure 'directory becomes symlink' ' +test_expect_success 'directory becomes symlink' ' git init dirtosymlink && git init result && ( -- cgit v1.2.1 From dd5685818bca9b0cadc61a87c6470fa7df227302 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Thu, 12 Aug 2010 20:09:12 -0600 Subject: Mark tests that use symlinks as needing SYMLINKS prerequisite Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- t/t9350-fast-export.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 't/t9350-fast-export.sh') diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh index 1ee1461c9b..27aea5c165 100755 --- a/t/t9350-fast-export.sh +++ b/t/t9350-fast-export.sh @@ -376,7 +376,7 @@ test_expect_success 'tree_tag-obj' 'git fast-export tree_tag-obj' test_expect_success 'tag-obj_tag' 'git fast-export tag-obj_tag' test_expect_success 'tag-obj_tag-obj' 'git fast-export tag-obj_tag-obj' -test_expect_success 'directory becomes symlink' ' +test_expect_success SYMLINKS 'directory becomes symlink' ' git init dirtosymlink && git init result && ( -- cgit v1.2.1