> On Jun 24, 2019, at 5:33 AM, Elijah Newren <new...@gmail.com> wrote:
> 
> On Mon, Jun 24, 2019 at 5:05 AM Lars Schneider <larsxschnei...@gmail.com> 
> 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

Reply via email to