Как разветвляться с помощью TortoiseHG

218

Я скачал TortoiseHg 1.0 для оценки. За свою жизнь я не могу понять, как сделать ветку. Кажется, что он понимает ветки (например, в браузере хранилища), но я просто не могу найти способ сделать ветку. Это кажется такой фундаментальной возможностью, поскольку из часто рекламируемых преимуществ DVC является легкое ветвление.

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

Обновление: поэтому я пометил ответ Чеда Берча ниже, чтобы ответить на вопрос о «новой ветке». Как он правильно указывает, вы делаете коммит и затем нажимаете на кнопку ветки, чтобы вызвать диалог обслуживания ветки, где вы создаете новые ветки. Я бы хотел, чтобы они дали нам опцию контекстного меню для этого. Как только вы разветвитесь, следующий естественный вопрос - как объединить, и это тоже не очевидно. Оказывается, эта опция скрыта в обозревателе хранилища. Вам необходимо выбрать заголовок другой ветви, щелкнуть правой кнопкой мыши и затем выбрать «Объединить с ...».

Майкл Тиллер
источник
Ветвление серьезно погружено в совершенно не интуитивный аспект рабочего процесса. Ветвление и фиксация - это две совершенно разные операции, и нет смысла хоронить ветвления в пользовательском интерфейсе коммита. Поскольку я обычно фиксирую перед ветвлением, мне не пришло в голову взглянуть под пользовательским интерфейсом фиксации. Ветвление по- прежнему фактически не имеет документов даже на середину 2016 года ; Чед Бёрч указывает на то, что подходит для разветвленной документации; это все еще ужасно, но, как он отмечает, он всего лишь посланник ...
arclight

Ответы:

213

Как показано в документации , все, что вам нужно сделать, это просто нажать на branch: defaultкнопку в верхней части диалогового окна фиксации и изменить имя новой ветви.

Чад берез
источник
30
Ах, я вижу, где написано "нажатие этой кнопки открывает диалог обслуживания ветки". Это действительно открывает диалог, который, как выясняется, позволяет создавать ветви, но я не согласен с утверждением «Как показано в документах», поскольку нет явного упоминания о том, как создать ветку в любом месте на этой странице, которая Я мог бы найти. Интересно, что ветвление сделало, чтобы заслужить получение обработки второго класса в TortoiseHg (по сравнению с другими инструментами Tortoise *, где это опция контекстного меню первого класса). :-)
Майкл Тиллер
31
О, я не пытался быть оскорбительным в стиле RTFM или чем-то в этом роде, мне просто нужна была какая-то фраза для ссылки на соответствующую страницу. Может быть, «как смутно подразумевается в документации» было бы более уместным в этой ситуации.
Чад Берч
1
Нет пота. Я тоже не пытался обидеть. Я просто хотел дать понять любому, кто пришел посмотреть на эту ссылку, которую вы действительно должны прочитать между строк в документации, чтобы получить ответ, так как она явно не упоминается.
Майкл Тиллер
8
В последних версиях Mercurial вам нужно сделать, hg push --new-branchчтобы перенести новую ветку в удаленный репозиторий. См. Stackoverflow.com/questions/2365483, чтобы узнать, как это сделать в TortoiseHg.
Питер Грэм
26

Чтобы начать новую ветку с помощью TortoiseHg, нажмите «Принять ...», затем над сообщением «Применить» нажмите «Ветвь», затем «Открыть новую именованную ветку:»

NME
источник
9

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

TamW
источник
8

Большую часть времени в Mercurial, вы cloneхранилище, чтобы сделать ветку.

Затем вы можете объединить отдельные репозитории после того, как вы внесли свои изменения и изменения.

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

Если подумать, то каждая «проверка» (в терминологии svn) или «клон» (в терминологии ртути) - это действительно ветвь, которая, вероятно, будет объединена назад, поэтому вполне логично, что клоны - это обычный способ создания ветвей.

blokeley
источник
11
Это не удобно для функциональных веток.
Башня
Согласовано. Если у вас есть долгосрочные (полупостоянные) ветки, такие как ветка стабильной версии 1 и ветка стабильной версии 2, вы захотите использовать именованные ветки . Смотрите также документацию по ветке Mercurial .
Blokeley
11
-1. Это в лучшем случае взломать. Клонирование для ветвления вообще не работает, если вы используете удаленный репозиторий, так как вы не можете проталкивать свои локальные изменения. Это означает, что вы не можете поделиться своей веткой с другими разработчиками, с которыми вы работаете. Правильный способ ветвления - создать именованную ветку в вашем хранилище.
Питер Грэм
8
Клонирование - это то, как официальная книга по ртути рекомендует ветки «большой картинки». Hgbook.red-bean.com/read/… Не стреляйте в посланника.
Blokeley
0

Перед фиксацией нажмите на кнопку «Ветвь» (см. Изображение), затем выберите ветку или создайте новую (набрав, где вы выбираете ветки).

Смотрите изображение здесь

Фелипе Диас
источник