Here's a v2; the original was at: http://public-inbox.org/git/20160930193533.ynbepaago6oycg5t@xxxxxxxxxxxxxxxxxxxxx/ which contains the rationale. The required alternate-objects patches (both the "allow recursive relative" one, and the helper to add an internal alt-odb) have been pushed into their own series, that I posted here: http://public-inbox.org/git/20161003203321.rj5jepviwo57uhqw@xxxxxxxxxxxxxxxxxxxxx/ This needs to be applied on top. Other than that, v2 just fixes the minor issues raised on the list (missing "static", and some clarifying comments). [1/5]: check_connected: accept an env argument [2/5]: tmp-objdir: introduce API for temporary object directories [3/5]: receive-pack: quarantine objects until pre-receive accepts [4/5]: tmp-objdir: put quarantine information in the environment [5/5]: tmp-objdir: do not migrate files starting with '.' Makefile | 1 + builtin/receive-pack.c | 41 ++++++- cache.h | 1 + connected.c | 1 + connected.h | 5 + t/t5547-push-quarantine.sh | 36 ++++++ tmp-objdir.c | 275 +++++++++++++++++++++++++++++++++++++++++++++ tmp-objdir.h | 54 +++++++++ 8 files changed, 413 insertions(+), 1 deletion(-) create mode 100755 t/t5547-push-quarantine.sh create mode 100644 tmp-objdir.c create mode 100644 tmp-objdir.h