Un modo è tramite query HTTP dirette.
I client git con supporto intelligente aggiungono un argomento alla fine del primo URL afferrato, "[repo]/info/refs? Service = git-upload-pack". Un server stupido semplicemente invierà il file "info/refs" come testo ignorando l'argomento, mentre un server intelligente restituirà alcuni dati binari davanti all'elenco dei refs, incluso il testo "service = git-upload-pack" e un elenco di funzionalità (da cui potresti essere in grado di trovare il supporto per "profondità").
È possibile eseguire lo script di questo test smart/dumb utilizzando wget o curl per controllare il tipo MIME: text/plain (dumb) vs. application/x-git-upload-pack-advertisement (smart).
$ curl -si http://github.com/git/git.git/info/refs?service=git-upload-pack | grep --binary-files=text '^Content-Type'
Content-Type: application/x-git-upload-pack-advertisement
$ curl -si http://git.kernel.org/pub/scm/git/git.git/info/refs?service=git-upload-pack | grep --binary-files=text '^Content-Type'
Content-Type: application/x-git-upload-pack-advertisement
$ curl -si http://repo.or.cz/r/git.git/info/refs?service=git-upload-pack | grep --binary-files=text '^Content-Type'
Content-Type: text/plain
(Tubo per grep -q "^Content-Type: application/x-git"
e utilizzare il codice di ritorno del vero falso test /.)
Userei la digitazione anatra: presumo che sia un'anatra e buttala nello stagno, se fosse un gatto, chiedigli scusa (e forse evita di rilanciarlo nello stagno). – redShadow