As promised earlier, this series adds automatic tag following on the server side, allowing git-fetch to grab tags over a single connection rather than opening a secondary one for the tags we cannot get via my 'sp/fetch-optim' branch. 1) git-pack-objects: Automatically pack annotated tags if object was packed 2) Teach fetch-pack/upload-pack about --auto-follow-tags 3) Teach git-fetch to exploit server side automatic tag following Documentation/git-fetch-pack.txt | 8 +++- Documentation/git-pack-objects.txt | 5 ++ builtin-fetch-pack.c | 9 +++- builtin-fetch.c | 3 + builtin-pack-objects.c | 24 +++++++++- fetch-pack.h | 3 +- t/t5305-autofollow-tag.sh | 84 ++++++++++++++++++++++++++++++++++++ t/t5503-tagfollow.sh | 26 +++++++++++ transport.c | 5 ++ transport.h | 3 + upload-pack.c | 10 +++- 11 files changed, 172 insertions(+), 8 deletions(-) We may still want to support multiple request/pack pairs on a single connection, but I think that's more work than this is and may not offer a worthwhile pay-off. Usually the client knows what branches it wants when it connects, and if it wants tag data. That's all we need to know on the server to generate an optimal packfile, and said packfile is the only thing the client needs to update itself. The multiple request/pack pairs is actually better implemented for users like X.org where you want to update many repositories over a single SSH connection. For that we need git-fetch to multiplex over multiple repositories, not just git-upload-pack. -- Shawn. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html