fast-export: Allow pruned-references in mark file
commitc4458ecdc565fb63cc3247bd1e2d7525d9d6d2fa
authorAntoine Pelisse <apelisse@gmail.com>
Sat, 6 Apr 2013 17:04:31 +0000 (6 19:04 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 7 Apr 2013 07:40:23 +0000 (7 00:40 -0700)
tree341d6c53ec6faaa764d902455eaf7420837dbf6d
parent6ff8d4e7487c0f48e568b7fd95fa02515a426c1a
fast-export: Allow pruned-references in mark file

fast-export can fail because of some pruned-reference when importing a
mark file.

The problem happens in the following scenario:

    $ git fast-export --export-marks=MARKS master
    (rewrite master)
    $ git prune
    $ git fast-export --import-marks=MARKS master

This might fail if some references have been removed by prune
because some marks will refer to no longer existing commits.
git-fast-export will not need these objects anyway as they were no
longer reachable.

We still need to update last_numid so we don't change the mapping
between marks and objects for remote-helpers.
Unfortunately, the mark file should not be rewritten without lost marks
if no new objects has been exported, as we could lose track of the last
last_numid.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Reviewed-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-fast-export.txt
builtin/fast-export.c