Mercurial: создайте ветку без необходимости вносить изменения в первую очередь

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

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

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

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

  • создать отдельную ветку.
  • поработать в этой ветка.
  • создайте ветвь кандидата на выпуск.
  • функция(ы) слияния для выпуска ветви кандидата.
  • Deploy, test, fix deploy, test, fix release candidate branch.
  • объединить ветку кандидата на выпуск в магистраль.

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

3 ответов


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

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

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

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

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


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

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

$ hg bookmark my-feature

после создания ветки не забудьте нажать ее с помощью:

hg push --new-branch