Commit Diff
- Commit:
4088ab23bf2d330dc66483a747e0efb6c185eed8
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
- Message:
- fix missing commits in pack files created with packed object enumeration got-read-pack forgot to send a tree-enumeration-done message to the main process if the tree of a given commit had already been traversed. The main process would then not add the corresponding commit to the pack file, even though it should be added. Found while using 'got send' towards gotd in order to populate an empty repository on the server with non-trivial history, where some commits always ended up missing due to this bug. ok tracey
- Actions:
- Patch | Tree
--- libexec/got-read-pack/got-read-pack.c +++ libexec/got-read-pack/got-read-pack.c @@ -1473,6 +1473,9 @@ enumeration_request(struct imsg *imsg, struct imsgbuf if (got_object_idset_contains(idset, tree_id)) { got_object_qid_free(qid); qid = NULL; + err = send_tree_enumeration_done(ibuf); + if (err) + goto done; continue; }