···2727* Completely redo error handling.
28282929* Better status reporting, filling in more things in report-status-v2.
3030-* Design some way to pass commit graphs to hooks.
3130* Maybe the Progress/Error writers should return error on creation
3231 instead of automatically discarding content?
3332* Actually making signed-push work reasonably
3433* Investigate fsck issues with receive-pack
3534* Improve performance of delta resolution
36353737-* Okay, I think this is a pretty big design issue between the object
3838- store and network operations: Things are modular enough that implementing
3939- this probably doesn't break many other things, so it's not too big of a deal,
4040- but it's an architectural debt that we should concsider: we have nice
4141- pluggable object stores, but network-related paths like ingest still take an
4242- *os.Root to write their quarantines and final packs into. This is fine for
4343- the normal repository that uses Git packfiles, but would obviously not work
4444- if we add something like dynamic packs, or want to write to any other sort of
4545- object store. Perhaps object stores should get a batch writing interface? But
4646- any general purpose, non-pack-aware writing interface would probably perform
4747- significantly worse than just natively teeing the network pack (since what we
4848- get from the network are always literally packs) to an indexer and the
4949- filesystem. A possible design is to require implementations to implement
5050- their own pack ingestion algorithm; but that would make it harder to have
5151- alternative protocols in the future, however for now it seems like a valid
5252- solution. When there is any sight of alternative, non-pack-based protocols in
5353- the future, we should think of another way.
5454- go-git handles it in their object stores but the way they
5555- implement it is extremely complex and not fit for furgit
5656- architecture.
3636+* Okay, I think this is still a real design issue, just at a different layer
3737+ now. receive-pack and the object stores are better than they were when pack
3838+ ingest still wanted raw roots, and we now have coordinated quarantines and a
3939+ dual store to represent the normal mix. However, that probably isn't the end
4040+ state either. In the usual repository layout, loose and packed objects are
4141+ really two parts of one files object storage, and dual may just be an
4242+ intermediate abstraction until files-backed storage gets a more integrated
4343+ API, including in particular, ingress/quarantine. We should preserve the
4444+ current separation for now, because it keeps the boundaries there, and is
4545+ much simpler than trying to prematurely fuse everything together, but if
4646+ receive-pack and hooks keep growing around dual then that is probably a sign
4747+ that the underlying files object storage wants a interface of its own.
57485849* Digital signature API
5950* Revision-ish entry points like if you get main or v1.0 we should