Ветка из прошлого в Меркурий - PullRequest
3 голосов
/ 02 апреля 2009

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

Как мне перейти в предыдущее состояние (т.е. откат), а затем создать ветвь, поддерживая более новые состояния?

Откат когда-нибудь удаляет? Должно ли это быть все, что я делаю? Просто откат, пока я нахожусь в том месте, где я хочу, редактировать, а затем зафиксировать? Смогу ли я объединить наборы изменений позже или хотя бы посмотреть на них? Конечно, я могу просто сохранить этот репозиторий, выполнить откат, а затем создать новые наборы изменений, а затем объединить два репозитория?

Я новичок в SCM и, конечно, DSCM, так что будьте осторожны:)

Ответы [ 2 ]

10 голосов
/ 02 апреля 2009

Вы не хотите использовать hg rollback, который удаляет только ровно одно изменение (самое последнее). См. Вы можете только откатиться один раз в книге hg.

Чтобы создать ветку из более ранней ревизии, вам нужно найти номер ревизии, с которой вы хотите выполнить ветвь, и запустить:

hg clone -r <revnum> <source repository> <destination repository>

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

0 голосов
/ 28 мая 2019

Другой ответ будет работать, но он чрезмерен. Все, что вам нужно сделать, это:

hg up <revnum>

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

Это самый простой подход (ИМХО), с которого я бы начал.

...