Recover a stopped git import: index its unfinished pack, rebuild the bookmark issue #79
closed: completed andymccall opened this · 0 comments
andymccall
A git import writes every object into one batch pack (.tmp-ID.pack) indexed only at the end, and moves its bookmark only at the end. The running VS Code import has 5.6 GB in such a pack after 42 h: if it stopped, nothing could read it. Add Store::adopt_unfinished_packs (read the tmp pack through, check each entry against its reference, cut a torn tail, index it) and oxy git recover (adopt, then point the bookmark at every change with a Git-Commit trailer), so oxy git fetch carries on. Complements issue #77 (checkpoints for new imports).
A git import writes every object into one batch pack (.tmp-ID.pack) indexed only at the end, and moves its bookmark only at the end. The running VS Code import has 5.6 GB in such a pack after 42 h: if it stopped, nothing could read it. Add Store::adopt_unfinished_packs (read the tmp pack through, check each entry against its reference, cut a torn tail, index it) and oxy git recover (adopt, then point the bookmark at every change with a Git-Commit trailer), so oxy git fetch carries on. Complements issue #77 (checkpoints for new imports).