On Mon, Jul 17, 2023 at 12:48:17PM +0200, Toon Claes wrote: > Hi, > > I've been looking into making git-fetch(1) to use a quarantine > directory, but I'm a bit stuck on direction. What are you hoping to accomplish? receive-pack quarantines its objects to ensure that the pre-receive hook(s) are all OK before accepting the push. See 722ff7f876c (receive-pack: quarantine objects until pre-receive accepts, 2016-10-03) for more of the details there. Are you suggesting that fetch be taught the same, so that we can quarantine the pack sent from a remote before moving it into the main repository? > I took git-receive-pack(1) as an example how it uses a quarantine > directory. It seems it sets the environment variables > $GIT_OBJECT_DIRECTORY and $GIT_ALTERNATE_OBJECT_DIRECTORIES so the real > object db is used as an alternative, and a temporary is set as the > default. Then a sub-process is spawned to uses these. In case of > git-receive-pack(1), it calls git-unpack-objects(1). > > At the moment git-fetch(1) does not spawn any similar subprocess, so if > we want to take the same approach to use the quarantine, we'll need to > split up that command. That doesn't seem necessary, you can use `tmp_objdir_add_as_alternate()` to register a temporary directory as an alternate. See the tmp-objdir.h API for more convenience functions. Thanks, Taylor