Andreas Krey <a.k...@gmx.de> writes: > From: Junio C Hamano <gits...@pobox.com> > > This implements the server side of protocol extension to show which branch > the HEAD points at. The information is sent as a capability symref=<target>. > > Signed-off-by: Junio C Hamano <gits...@pobox.com> > Signed-off-by: Andreas Krey <a.k...@gmx.de> > --- > upload-pack.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/upload-pack.c b/upload-pack.c > index 127e59a..390d1ec 100644 > --- a/upload-pack.c > +++ b/upload-pack.c > @@ -745,13 +745,17 @@ static int send_ref(const char *refname, const unsigned > char *sha1, int flag, vo > if (mark_our_ref(refname, sha1, flag, cb_data)) > return 0; > > - if (capabilities) > - packet_write(1, "%s %s%c%s%s%s agent=%s\n", > + if (capabilities) { > + unsigned char dummy[20]; > + const char *target = resolve_ref_unsafe("HEAD", dummy, 0, NULL); > + packet_write(1, "%s %s%c%s%s%s%s%s agent=%s\n", > sha1_to_hex(sha1), refname_nons, > 0, capabilities, > allow_tip_sha1_in_want ? " allow-tip-sha1-in-want" > : "", > stateless_rpc ? " no-done" : "", > + target ? " symref=" : "", target ? target : 0, > git_user_agent_sanitized()); > + } > else > packet_write(1, "%s %s\n", sha1_to_hex(sha1), refname_nons); > capabilities = NULL;
I think it is perfectly fine to expose _only_ HEAD now, and wait until we find a good reason that we should send this information for other symbolic refs in the repository. However, because we already anticipate that we may find such a good reason later, on-the-wire format should be prepared to support such later enhancement. I think sending symref=HEAD:refs/heads/master is probably one good way to do so, as Peff suggested in that old thread ($gmane/102070; note that back then this wasn't suggested as a proper capability so the exact format he suggests in the message is different). Then we could later add advertisements for other symbolic refs if we find it necessary to do so, e.g. symref=HEAD:refs/heads/master symref=refs/remotes/origin/HEAD:refs/remotes/origin/master (all on one line together with other capabilities separated with a SP in between). -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html