This is an early preview of reducing the network cost while talking
with a repository with tons of refs, most of which are of use by
very narrow audiences (e.g. refs under Gerrit's refs/changes/ are
useful only for people who are interested in the changes under
review). As long as these narrow audiences have a way to learn the
names of refs or objects pointed at by the refs out-of-band, it is
not necessary to advertise these refs.
On the server end, you tell upload-pack that some refs do not have
to be advertised with the uploadPack.hiderefs multi-valued
configuration variable:
[uploadPack]
hiderefs = refs/changes
The changes necessary on the client side to allow fetching objects
at the tip of a ref in hidden hierarchies are much more involved and
not part of this early preview, but the end user UI is expected to
be like these:
$ git fetch $there refs/changes/72/41672/1
$ git fetch $there 9598d59cdc098c5d9094d68024475e2430343182
That is, you ask for a refname as usual even though it is not part
of ls-remote response, or you ask for the commit object that is at
the tip of whatever hidden ref you are interested in.
Junio C Hamano (2):
upload-pack: share more code
upload-pack: allow hiding ref hiearchies
t/t5512-ls-remote.sh | 9 ++++++
upload-pack.c | 86 ++++++++++++++++++++++++++++++++++++++++++----------
2 files changed, 79 insertions(+), 16 deletions(-)
--
1.8.1.1.454.g48d39c0
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html