хрен с ней, с невменяемостью протоколов, когда ssh:// в 3 из 4 случаев распознаётся, а в 4-м считается, что это каталог. если сделать на одной стороне git init, а на другой git push - то всё срабатывает
осталось только понять, что такое вот это .git, и чем один .git отличается от другого
суть зеркала должна быть такова - есть набор каталогов git/path, и в их случае всегда должен работать git clone http://server/git/path. также в этом каталоге дожен по хуку отрабатывать stagit, т.е. когда заходим туда браузером - видим статику от stagit, а когда на этот же адрес делаем git clone - получаем сам репозиторий
когда я делаю git init path, включаю хук post-update а потом делаю туда push, оно мне говорит, что не в bare-репозиторий оно так делать не будет. когда же я захожу в path, и делаю git init --bare .git, то git clone http://server/git/path не работает, только http://server/git/path/.git - но это не то
в общем, задача такая - по push оно должно сделать update-server, должен отработать stagit, и один http-адрес должен быть и веб-интерфейсом, и адресом клонинга - и всё это должно быть статикой
главный вопрос, собственно один - как так делать push, чтобы потом адрес сервера можно было клонировать - чтобы в path/.git лежала метаинформация для git, а в path/ - веб-страницы stagit
в .hg это делается элементарно, там всегда, где есть .hg в каталоге - он всегда может использоваться, как репозиторий, ничего делать не надо. но фишка в том, что все эти утилитки пишутся для невменяемого git - мне нужны и gogs, и статика, а ничего этого для hg нет.