2016-07-21 4 views
0

Мы используем Mercurial и не можем создавать именованные ветви, только закладки для отдельной разработки. В нашем восходящем репо должна существовать только ветка DEFAULT.Создать закладку с DEFAULT в Mercurial?

Мое понимание закладок в основном связано с this page, поэтому мне может быть что-то не хватает.

Я пытаюсь выяснить, как создать закладку непосредственно с подсказки DEFAULT. Чтобы получить подсказку на закладке (например, MYREV), отличающуюся от подсказки DEFAULT, кажется, что я должен вернуться к одной ревизии и создать закладку оттуда.

Есть ли способ создать закладку непосредственно из ревизии подсказки DEFAULT и иметь ее отдельный отзыв?

+0

Вы, вероятно, имеете в виду * названные * ветви? – planetmaker

ответ

2

Просто создайте свою закладку на кончике; создание закладки делает его активных закладки, и он будет автоматически обновляться, чтобы следовать новым фиксациям:

$ hg book new_bookmark_name 
$ hg commit -m 'change message' 

Активная закладка будет просто перешло на новое обязательство; любые другие закладки остаются на месте. В данный момент активна только одна закладка.

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

$ hg up bookmark_name # make bookmark_name active 

Закладки в Mercurial точно так же как закладки в книгах в физическом мире; легко перемещается на другую страницу. Если локальная закладка не была активна, но вы сделали новое обязательство, вручную указать закладки на ваш новый совершать:

$ hg book --force -r . bookmark_name 

Вышеприведенная команда заставляет bookmark_name указывать на рабочей родительском каталог правку.

У вас нет сделать закладку; локальные изменения, естественно, образуют ветвь; закладки просто упрощают отслеживание таких коммитов. Закладки также являются просто простыми указателями; имя, указывающее на конкретную ревизию. Вы всегда можете обновить их, чтобы указать на другую ревизию.

-2

мы используем Mercurial и не имеют права создавать филиалы

это оксюморон. Использование Mercurial означает, что вы можете делать все, что захотите, с помощью локальной копии репозитория. В этом весь смысл системы управления версиями кода!

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

Итак, это честно мой ответ на ваш вопрос: вы пытаетесь построить ветки с закладками. Не. Просто используйте ветви. Вы можете добавлять подсказки по веткам, если ваш странный менеджер появится и попросит закладки.

+0

Извините, это официальная политика, намного выше моей зарплаты. Это правило, никаких филиалов, связанных с восходящим репо. Не спрашивайте меня, почему, я просто работаю там. – user1071914

+1

Информация о филиале является частью фиксации, поэтому нажатие этой фиксации на другой репозиторий не по волшебству помещает его в ветвь по умолчанию. –

+0

Как сказал Martijn Pieters, название ветки сохраняется в фиксации. Тем не менее, вы * можете * просто пересаживать. Я на самом деле не рекомендую это и не пробовал, но теоретически вы можете полностью автоматизировать это с помощью расширения Convert: https://www.mercurial-scm.org/wiki/ConvertExtension (вам придется использовать дополнительный репозиторий для выполнения транзакций с конвертированными по умолчанию). – torek

Смежные вопросы