Mercurial: Subrepo error - " abort: commit с новым subrepo [путь] исключен"

Я пытаюсь настроить подпредприятия в моем РЕПО проекта Mercurial для зависимостей проекта. Но когда я пытаюсь совершить .hgsub - файл, я получаю эту ошибку:

abort: commit with new subrepo lib/dependency-dir excluded

детали:

внутри каталога репозитория Mercurial моего проекта (на верхнем уровне) у меня есть подкаталог, lib/, который будет содержать мои зависимости.

так получилось, что все мои зависимости живут на github, где я раскошелился каждой библиотеке создать, например, https://github.com/mygithubaccount/forked-dependency

Я создал и добавил его в репозиторий (также на верхнем уровне). Он содержит такие записи, как (я попытался изолировать каждый отдельно следующим образом; это, похоже, не имеет никакого значения):

lib/dependency-dir = [git]https://github.com/mygithubaccount/forked-dependency.git

затем я сделал следующее, Начиная с работы моего репозитория проектов каталог:

$ cd lib
$ git clone https://github.com/mygithubaccount/forked-dependency.git dependency-dir
$ cd ..
$ hg commit .hgsub
abort: commit with new subrepo lib/dependency-dir excluded

любые идеи, что я делаю неправильно?

8 ответов


У меня тоже эта проблема. Я не уверен, что это соответствует вашей ситуации, но я пытался добавить подпредприятия в новое РЕПО. Как только я добавил другие файлы и передал их, я смог добавить их .hgsub файл с subrepos и зафиксировать его без получения этой ошибки.


единственный способ получить эту работу - совершить без указания .hgsub файл

HG commit-m "сообщение"


Я просто исправил проблему, добавив сначала файл, а затем зафиксировав:

$ hg add .hgsub
...
$ hg commit .hgsub

Я должен был взять обоих .hgsub и новый subrepository одновременно, явно выбрав их в команде commit. Я избегал HG commit all, потому что у меня были другие файлы, которые содержали незавершенную работу.


для меня, проблема была в том, что git не было на моем пути системы. Добавление его позволило мне зафиксировать мой git subrepository (обратите внимание, что мне пришлось перезапустить TortoiseHg workbench, чтобы получить обновленный системный путь).


когда у меня была эта проблема, проблема заключалась в том, что у меня было две косые черты в пути к каталогу subrepo.


Если есть разница в случае между именем папки для subrepo и его путем в .файл hgsub это также вызовет сообщение об ошибке.

Я испытал это, скопировав an .hgsub из другого РЕПО, который имел ту же структуру папок, однако новое РЕПО использовало обложку заголовка для имен папок, в то время как папки в исходном РЕПО были строчными.

изменение .hgsub или имена папок сами решили проблему.


Я нашел ваш вопрос, когда у меня была такая же проблема. Я использовал TortoiseHG, и это дало мне ту же ошибку. Решения здесь были бесполезны для меня, но я нашел ответ.

в моем случае проблема была в версии HG: Я обнаружил, что мой TortoiseHG использует hg ver. 2.5. Когда я использую hg ver 3.9 .hgsub правильно фиксироваться.

С. П. Я понимаю, что мой ответ не поможет вам, но я надеюсь, что он поможет другим людям, таким как я.