У меня есть основной ртутный репозиторий и удаленный клон репо. После первоначального клона я добавил функцию ловушки pretxnchangegroup в основной репозиторий. Функция ловушки использует os.environ["REMOTE_USER"]
для получения аутентифицированного пользователя. Функция ловушки работает, как и ожидалось, когда я делаю hg push
из удаленного репо, который был клонирован ранее. Проблема возникает при попытке нового клона. Я получаю следующую ошибку
File "/usr/lib/pymodules/python2.6/mercurial/localrepo.py", line 2048, in addchangegroup
url=url, pending=p)
File "/usr/lib/pymodules/python2.6/mercurial/localrepo.py", line 145, in hook
return hook.hook(self.ui, self, name, throw, **args)
File "/usr/lib/pymodules/python2.6/mercurial/hook.py", line 139, in hook
r = _pythonhook(ui, repo, name, hname, hookfn, args, throw) or r
File "/usr/lib/pymodules/python2.6/mercurial/hook.py", line 68, in _pythonhook
r = obj(ui=ui, repo=repo, hooktype=name, **args)
File "/usr/lib/python2.6/pushvalidation.py", line 18, in chkaccess
username = os.environ["REMOTE_USER"]
File "/usr/lib/python2.6/UserDict.py", line 22, in __getitem__
raise KeyError(key)
KeyError: 'REMOTE_USER'
pushvalidation.py
- обработчик pretxnchangegroup в процессе, помещенный в глобальный hgrc основного репо.
Я только что начал использовать Mercurial, и это первая написанная мной функция большого хука.