Subject: [RFC 0/5] Log history of a ref

From: Shawn Pearce <[email-masked]>
Date: Wed, 17 May 2006 05:54:17 -0400

The following 5 [RFC] patches from me are all related to logging
changes made to a ref.  These patches contain the same basic idea
as the two patches I floated earlier this week.  Log files reside
in .git/logs<ref> and logging is enabled either by creating the
log file or by setting 'core.logAllRefUpdates' to true.

Summary is:

 * [RFC 1/5] Remove unnecessary local in get_ref_sha1.

	A minor code cleanup.

 * [RFC 2/5] Improve abstraction of ref lock/write.

	A major reorg of the write_ref_sha1 APIs.  This reorg allows
	all internal code to use the same logic for updating any ref,
	which makes it much easier to hook logging in.
	
 * [RFC 3/5] Convert update-ref to use ref_lock API.

 	Modify update-ref to use the reorg'd write_ref_sha1 API.

 * [RFC 4/5] Log ref updates to logs/refs/<ref>

	Add logging of refs.  This is the pretty much my latest
	logging patch but cleaned up and built on the above.

 * [RFC 5/5] Support 'master@2 hours ago' syntax

	Extend the SHA1 syntax to search the log for the SHA1 which
	was valid at the given point in time.

I still need to fix the receive-pack code to log ref changes prior
to running the update hook.  I'll probably look at that later this
week.  I also need to edit the ~20 sites which call 'git-update-ref'
to make use of the new "-m <reason>" flag.

-- 
Shawn.