Mercurial: создайте ветку без необходимости вносить изменения - PullRequest
22 голосов
/ 25 января 2011

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

В Subversion я могу создать ветку без внесения изменений (скопировав trunk в путь под tags) - возможно ли это сделать также в Mercurial?

В настоящее время я видел только TortoiseHg, поэтому возможно, что это можно сделать только с помощью инструмента командной строки, а я этого не знаю.

Мой рабочий процесс для этого:

  • Создать ветвь элемента.
  • Проделайте некоторую работу в этой ветви функций.
  • Создание ветки-кандидата на выпуск.
  • Объединение функций для выпуска ветки-кандидата.
  • Развертывание, тестирование, исправление развертывания, тестирование, исправление выпуска ветки-кандидата.
  • Объединить выпуск ветки-кандидата с транком.

Большое спасибо заранее.

Ответы [ 3 ]

31 голосов
/ 25 января 2011

Это зависит от того, что вы подразумеваете под веткой.

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

hg branch NEWNAME
hg commit -m "Created branch NEWNAME"

Вы также можете сделать это с помощью диалога TortoiseHg.

Однако, если вы хотитесоздать еще одну неназванную ветку, т.е.просто еще одна голова, тогда да, нужно что-то менять.И действительно, зачем вам просто создавать пустые наборы изменений без изменений?Просто чтобы показать, что «это место, где я буду размещать свою ветку, когда у меня будут какие-то изменения»?

6 голосов
/ 25 января 2011

Возможно, вы захотите проверить расширение закладок (которое скоро станет частью основного Mercurial).
Если вы знакомы с тем, как ветки работают в git, то это почти то же самое.

И так же, как ветки в git, вы можете создать закладку, не совершая ничего.

$ hg bookmark my-feature
1 голос
/ 10 июня 2016

После создания ветки не забудьте нажать на нее:

hg push --new-branch
...