Во-первых, нет ничего плохого с коммитом в ветке по умолчанию. Обычно вы не хотите создавать отдельную именованную ветвь для каждой задачи в Mercurial, потому что именованные ветки вечны. Возможно, вы захотите взглянуть на функцию закладок для чего-то более близкого к веткам git («hg help bookmarks»). Так что если единственное, что не так с вашими существующими наборами изменений, это то, что они находятся в ветке по умолчанию, то в этом нет ничего плохого. Не беспокойся об этом.
Однако, если вы действительно хотите начать все заново, очевидная, прямая вещь, которую нужно сделать, это отойти от восходящего потока. Вы можете сохранить свои беспорядочные наборы изменений, перемещая существующий репо и откидываясь назад. Затем пересадите наборы изменений из старого репо в новый на выбранной вами ветке.
Если вы не хотите тратить время / полосу пропускания на новый клон, вы можете использовать команду (100, опасно, не для начинающих) strip
. Во-первых, вы должны включить расширение mq
(Google или посмотреть руководство - я намеренно не объясняю это здесь, потому что это опасно ). Затем запустите
hg strip 'outgoing("http://upstream/path/to/repo")'
Обратите внимание, что я использую функцию revsets, добавленную в Mercurial 1.7 здесь. Если вы используете старую версию, простого способа сделать это не существует.