[aur-dev] [PATCH] Describe how to omit "have" lines

Lukas Fleischer lfleischer at archlinux.org
Sat Nov 14 12:42:00 UTC 2015

A new feature in Git allows for omitting "have" lines corresponding to
refs outside the current Git namespace. Explain how to enable this
feature in the INSTALL instructions and in the Git interface

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
 INSTALL               |  2 ++
 doc/git-interface.txt | 13 +++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/INSTALL b/INSTALL
index d68fa26..d956911 100644
@@ -46,6 +46,8 @@ Setup on Arch Linux
     # mkdir /srv/http/aurweb/aur.git/
     # cd /srv/http/aurweb/aur.git/
     # git init --bare
+    # git config --local transfer.hideRefs '^refs/'
+    # git config --local transfer.hideRefs '!refs/'
     # ln -s ../../git-interface/git-update.py hooks/update
     # chown -R aur .
diff --git a/doc/git-interface.txt b/doc/git-interface.txt
index 9ded20f..4a24eef 100644
--- a/doc/git-interface.txt
+++ b/doc/git-interface.txt
@@ -80,3 +80,16 @@ request.
 An example configuration for nginx and fcgiwrap can be found in the INSTALL
 instructions in the top-level directory.
+Further Configuration
+When using Git namespaces, Git advertises refs outside the current namespace as
+so-called "have" lines. This is normally used to reduce traffic but it has the
+opposite effect in the case of aurweb: Many essentially useless lines are
+transferred to the Git client during `git push` operations.
+In order to omit these advertisements, add the strings "^refs/" and "!refs/" to
+the transfer.hideRefs configuration setting. Note that the order of these
+patterns is important ("^refs/" must come first) and that Git 2.7 or newer is
+required for them to work.

More information about the aur-dev mailing list