Как я могу получить только подкаталог из Mercurial Repository? - PullRequest
1 голос
/ 10 августа 2010

Я пытаюсь продать нашу группу за использование Mercurial в качестве исходного хранилища, а не VSS. В процессе обновления наших сценариев сборки я сталкиваюсь с проблемой, пытающейся получить файлы из репозитория Hg.

Наши сборки автоматизированы с помощью NAnt и в настоящее время работают для локальных сборок или сборок из VSS (т. Е. По мере необходимости извлекают исходный код из VSS). Я пытаюсь обновить их для работы с Mercurial.

В основном, когда я работаю с отдельными файлами, у меня нет проблем, так как я могу просто использовать задачу NAnt 'get' (после получения соответствующего хеша ревизии), чтобы получить отдельный файл.

Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно работать с каталогом (и подкаталогами) файлов, которые не находятся в корне хранилища. Кажется, я не могу подобрать правильные команды для извлечения / копирования подкаталога из репозитория в мой «рабочий» каталог для сборок. Я провел почти весь день, пытаясь выяснить, как сделайте это с исполняемыми файлами mercurial (чтобы я мог использовать задачу exec 'для NAnt), и в основном ударились о стену, так что я решил попробовать опубликовать здесь.

Может ли кто-нибудь подтвердить, возможно ли это, и дать несколько советов относительно того, как я могу это сделать? Я понимаю, что Mercurial отслеживает изменения по файлам, а не по каталогам, но мне это кажется странным что это не доступно из коробки (из того, что я могу сказать).

Если это просто невозможно, единственные обходные пути, которые я вижу, это либо поддерживать списки ожидаемых файлов набора файлов NAnt для работы (тьфу!), Либо клонировать весь репозиторий во временный каталог, а затем просто копировать файлы из этого источника как необходимо (мне кажется, что это обломок).

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

Ответы [ 2 ]

5 голосов
/ 10 августа 2010

Mercurial не позволяет вам получить только часть хранилища.Вы должны получить все дерево.Это гораздо более сфокусировано на репо, чем на SVN.

1 голос
/ 10 августа 2010

Вы можете попробовать разбить свой репозиторий на несколько репозиториев и управлять ими с помощью функции subrepos .Тогда вы можете извлекать подкаталоги самостоятельно.

...