#!/bin/sh test_description='test exotic situations with marks' TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh test_expect_success 'setup dump of basic history' ' test_commit one && git fast-export --export-marks=marks HEAD >dump ' test_expect_success 'setup large marks file' ' # normally a marks file would have a lot of useful, unique # marks. But for our purposes, just having a lot of nonsense # ones is fine. Start at 1024 to avoid clashing with marks # legitimately used in our tiny dump. blob=$(git rev-parse HEAD:one.t) && for i in $(test_seq 1024 16384) do echo ":$i $blob" || return 1 done >>marks ' test_expect_success 'import with large marks file' ' git fast-import --import-marks=marks dump ' test_expect_success 'setup submodule mapping with large id' ' old=$(git rev-parse HEAD:sub) && new=$(echo $old | sed s/./a/g) && echo ":12345 $old" >from && echo ":12345 $new" >to ' test_expect_success 'import with submodule mapping' ' git init dst && git -C dst fast-import \ --rewrite-submodules-from=sub:../from \ --rewrite-submodules-to=sub:../to \ actual && echo "$new" >expect && test_cmp expect actual ' test_expect_success 'paths adjusted for relative subdir' ' git init deep-dst && mkdir deep-dst/subdir && >deep-dst/subdir/empty-marks && git -C deep-dst/subdir fast-import \ --rewrite-submodules-from=sub:../../from \ --rewrite-submodules-to=sub:../../to \ --import-marks=empty-marks \ --export-marks=exported-marks \ --export-pack-edges=exported-edges \