Может ли Mercurial вложиться в подпапку?

Я использовал следующую строку в моем .hgsub годами:

setup/help = https://my.repo.com/manuals

Это поместит репозиторий с именем "manual" в папку help внутри другой папки setup, Итак, моя структура родительского репозитория выглядит так:

.hg
setup
|__help
|  |__.hg
|
.hgsub

Это не было проблемой, пока я не обновил Mercurial 4.9 сегодня, теперь он говорит: "путь subrepo содержит недопустимый компонент: setup/help", и я даже не могу зафиксировать основной репозиторий. Mercurial запрещает это сейчас? Есть ли действительный .hgsub синтаксис, чтобы заставить это работать? Я не хочу двигаться help быть прямым потомком основной папки проекта. Моя предыдущая версия Mercurial была 4.5, не то чтобы я использовал древние инструменты...

Отслеживание ошибок в соответствии с запросом:

Traceback (most recent call last):
  File "mercurial\scmutil.pyo", line 165, in callcatch
  File "mercurial\dispatch.pyo", line 367, in _runcatchfunc
  File "mercurial\dispatch.pyo", line 1021, in _dispatch
  File "mercurial\dispatch.pyo", line 756, in runcommand
  File "mercurial\dispatch.pyo", line 1030, in _runcommand
  File "mercurial\dispatch.pyo", line 1018, in <lambda>
  File "mercurial\util.pyo", line 1670, in check
  File "mercurial\commands.pyo", line 4621, in push
  File "mercurial\context.pyo", line 277, in sub
  File "mercurial\subrepo.pyo", line 164, in subrepo
  File "mercurial\subrepo.pyo", line 414, in __init__
Abort: subrepo path contains illegal component: setup/help
abort: subrepo path contains illegal component: setup/help

2 ответа

Решение

У меня была такая же ошибка, поэтому я клонировал ртутный репозиторий...

Ошибка была введена в теговой версии 4.9, subrepo.py.

Это было исправлено примерно через месяц, редакция 41583 (87a6e3c953e045d92147925fc71aad7c327fdbfd). Я проверил это на фактической ветви по умолчанию, работает снова!

Таким образом, нет необходимости в записи ошибки, нам просто нужно дождаться следующего релиза.

Насколько вы уверены в отладчике Python? Вы можете запустить команду с --debugger этот раз.

Вы могли бы видеть вывод как это:

entering debugger - type c to continue starting hg or h for help
--Call--
> /usr/lib64/python2.7/contextlib.py(21)__exit__()
-> def __exit__(self, type, value, traceback):
(Pdb)

Войти c а также enter пока вы не увидите ту же трассировку, что и вставленную вами.

Когда вы находитесь на правильной трассировке, вы можете распечатать локальные переменные, используя pp root, pp util.expandpath(root) а также os.path.realpath(util.expandpath(root)), Мы должны быть в состоянии добраться до корня проблемы со значениями этих переменных.

Для выхода из отладчика введите q а также enter,

Другие вопросы по тегам