introduce notes-cache interface
commita941d5e3958ece565570a2dc3a5476ff5242f340
authorJeff King <peff@peff.net>
Fri, 2 Apr 2010 00:07:40 +0000 (1 20:07 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 2 Apr 2010 06:58:30 +0000 (1 23:58 -0700)
treea7d558a3602c0ccebe33ba346995f470e0636250
parent40d52ff77b093fa48f58a168f4b0c4e65b862e56
introduce notes-cache interface

Notes provide a fast lookup mechanism for data keyed by
sha1. This is ideal for caching certain operations, like
textconv filters.

This patch builds some infrastructure to make it simpler to
use notes trees as caches. In particular, caches:

  1. don't have arbitrary commit messages. They store a
     cache validity string in the commit, and clear the tree
     when the cache validity string changes.

  2. don't keep any commit history. The accumulated history
     of a a cache is just useless cruft.

  3. use a looser form of locking for ref updates. If two
     processes try to write to the cache simultaneously, it
     is OK if one overwrites the other, losing some changes.
     It's just a cache, so we will just end up with an extra
     miss.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
notes-cache.c [new file with mode: 0644]
notes-cache.h [new file with mode: 0644]