Как вы определяете, какой набор изменений использует субпозиторий печи / ртути? - PullRequest
2 голосов
/ 16 января 2012

В ответе на этот вопрос на сайте обмена стеками печей есть комментарий, в котором упоминается, что «если вы делаете коммит от одного потребителя библиотеки, другие потребители библиотеки не сразу видят эти наборы изменений. Вы должны явно извлекать изменения из репозитория библиотеки у других потребителей. "

Я добавил несколько файлов в репозиторий, который упоминается в файлах проектов .hgsub & .hgsubstate, но они не отображаются в подкаталоге проектов (поскольку проект совершенно правильно использует предыдущее изменение, установите его был назначен ранее)

Я хотел бы знать, как редактировать набор изменений, который используется в подрепортаже. мне просто отредактировать файл .hgsubstate (кажется, немного "хакерским") или есть вариант команды на сайте / печи, который я могу использовать?

1 Ответ

5 голосов
/ 16 января 2012

В под-репозитории, hg update для ревизии, которую вы хотите использовать в основном репозитории.Затем в главном репозитории введите hg ci, чтобы зафиксировать изменение в репозитории.Mercurial автоматически обновит файл .hgsubstate с указанием текущего идентификатора родительской ревизии вложенного репозитория.

Пример (файл Windows .bat):

REM Create main repository
hg init Example
cd Example
echo >file1
hg ci -Am file1
cd ..

REM Create another repository
hg init Library
cd Library
echo >file2
hg ci -Am file2
cd ..

REM Clone the Library into the main repository
cd Example
hg clone ..\Library

REM and configure it as a subrepository.
echo Library=Library >.hgsub

REM Commit it.
hg ci -Am "Added Library sub repository."

REM Note .hgsubstate is updated with the current subrepo changeset.
type .hgsubstate
cd ..

REM Someone updates the original Library.
cd Library
echo >file3
hg ci -Am file3
cd ..

REM Main repo isn't affected.  It has a clone of Library.
cd Example
hg status -S

REM Update to the latest library
cd Library
hg pull -u
cd ..

REM View the changes to the library in the main repo.
hg status -S

REM Commit the library update in the main repo.
hg ci -m "Updated library."

REM Note .hgsubstate is updated.
type .hgsubstate
...