Revision 25ab004c53cdcfea485e5bf437aeaa74df47196d authored by Junio C Hamano on 17 October 2016, 20:25:20 UTC, committed by Junio C Hamano on 17 October 2016, 20:25:20 UTC
In order for the receiving end of "git push" to inspect the
received history and decide to reject the push, the objects sent
from the sending end need to be made available to the hook and
the mechanism for the connectivity check, and this was done
traditionally by storing the objects in the receiving repository
and letting "git gc" to expire it.  Instead, store the newly
received objects in a temporary area, and make them available by
reusing the alternate object store mechanism to them only while we
decide if we accept the check, and once we decide, either migrate
them to the repository or purge them immediately.

* jk/quarantine-received-objects:
  tmp-objdir: do not migrate files starting with '.'
  tmp-objdir: put quarantine information in the environment
  receive-pack: quarantine objects until pre-receive accepts
  tmp-objdir: introduce API for temporary object directories
  check_connected: accept an env argument
2 parent s dec0401 + 62fe0eb
Raw File
notes-cache.h
#ifndef NOTES_CACHE_H
#define NOTES_CACHE_H

#include "notes.h"

struct notes_cache {
	struct notes_tree tree;
	char *validity;
};

void notes_cache_init(struct notes_cache *c, const char *name,
		     const char *validity);
int notes_cache_write(struct notes_cache *c);

char *notes_cache_get(struct notes_cache *c, unsigned char sha1[20], size_t
		      *outsize);
int notes_cache_put(struct notes_cache *c, unsigned char sha1[20],
		    const char *data, size_t size);

#endif /* NOTES_CACHE_H */
back to top