> On Jun 24, 2019, at 5:33 AM, Elijah Newren <newren@xxxxxxxxx> wrote: > > On Mon, Jun 24, 2019 at 5:05 AM Lars Schneider <larsxschneider@xxxxxxxxx> wrote: >> >> Hi folks, >> >> Is my understanding correct, that `git fast-export | git fast-import` >> should not modify the repository? If yes, then we might have a bug in >> `git fast-export` if symbolic directory links are removed and converted >> to a real directory. >> >> ... > > My first reaction was, "we regressed on this again?", but it looks > like my original fix for directory/file changes only handled one > direction. Thus, my commit 060df6242281 ("fast-export: Fix output > order of D/F changes", 2010-07-09) probably *caused* this bug. We > should probably just sort not based on filename, but on changetype -- > send all the deletes to fast-import before we send the modifies. 060df6242281 is interesting! If I revert the changes in builtin/fast-export.c, then the "t9350:directory becomes symlink" test still passes nowadays. Plus, my my new test case passes too: test_expect_success 'when transforming a symlink to a directory' ' test_create_repo src && mkdir src/foo && echo a_line >src/foo/file.txt && git -C src add foo/file.txt && git -C src commit -m 1st_commit && ln -s src/foo src/bar && git -C src add bar && git -C src commit -m 2nd_commit && rm src/bar && mkdir src/bar && echo b_line >src/bar/b_file.txt && git -C src add . && git -C src commit -m 3rd_commit && test_create_repo dst && git -C src fast-export --all && git -C src fast-export --all | git -C dst fast-import && git -C src show >expected && git -C dst show >actual && test_cmp expected actual ' Do you think it would make sense to revert the qsort change in fast-export? I haven't bisected yet which other change made the qsort change obsolete. Thanks, Lars