ошибка клонирования hg, вызывающая ошибку ключа (key)

#mercurial #mercurial-hook

#mercurial #mercurial-перехват

Вопрос:

У меня есть основное репозиторий mercurial и удаленный репозиторий-клон. После первоначального клонирования я добавил функцию перехвата pretxnchangegroup в основное хранилище. Функция hook используется os.environ["REMOTE_USER"] для извлечения аутентифицированного пользователя. Функция hook работает, как ожидалось, когда я выполняю 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, и это первая функция с большим подключением, которую я написал.

Комментарии:

1. Вам нужно лучше объяснить, сколько серверов / репозиториев у вас есть и где используется hook. Потому что на данный момент просто кажется, что вы не устанавливаете REMOTE_USER во втором клонированном репозитории.

2. Есть один сервер с моим основным репозиторием, и перехват размещен в глобальном hgrc этого основного репозитория. К этому серверу подключаются разные сети, чтобы получить клон основного репозитория.