Code

[PATCH] Add update-server-info.
authorJunio C Hamano <junkio@cox.net>
Sun, 24 Jul 2005 00:54:41 +0000 (17:54 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sun, 24 Jul 2005 01:28:19 +0000 (18:28 -0700)
commit8f3f9b09dc5ac8a946422422c3c70a4a4c284be3
treea237b1468702dce4d5cd41258d4b8a8ea0976896
parent0fec0822721cc18d6a62ab78da1ebf87914d4921
[PATCH] Add update-server-info.

The git-update-server-info command prepares informational files
to help clients discover the contents of a repository, and pull
from it via a dumb transport protocols.  Currently, the
following files are produced.

 - The $repo/info/refs file lists the name of heads and tags
   available in the $repo/refs/ directory, along with their
   SHA1.  This can be used by git-ls-remote command running on
   the client side.

 - The $repo/info/rev-cache file describes the commit ancestry
   reachable from references in the $repo/refs/ directory.  This
   file is in an append-only binary format to make the server
   side friendly to rsync mirroring scheme, and can be read by
   git-show-rev-cache command.

 - The $repo/objects/info/pack file lists the name of the packs
   available, the interdependencies among them, and the head
   commits and tags contained in them.  Along with the other two
   files, this is designed to help clients to make smart pull
   decisions.

The git-receive-pack command is changed to invoke it at the end,
so just after a push to a public repository finishes via "git
push", the server info is automatically updated.

In addition, building of the rev-cache file can be done by a
standalone git-build-rev-cache command separately.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Makefile
build-rev-cache.c [new file with mode: 0644]
cache.h
receive-pack.c
rev-cache.c [new file with mode: 0644]
rev-cache.h [new file with mode: 0644]
server-info.c [new file with mode: 0644]
show-rev-cache.c [new file with mode: 0644]
update-server-info.c [new file with mode: 0644]