Ретроактивное именованное ветвление в Mercurial - PullRequest
13 голосов
/ 01 марта 2010

Есть ли способ связать группу изменений Mercurial с именованной веткой после того, как они были зафиксированы, то есть задним числом?

Ответы [ 3 ]

15 голосов
/ 31 марта 2011

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

Сначала вы вернетесь туда, где хотите создать ветку. В моем случае, я действительно хотел запустить новый root (потому что я не был очень разумным, когда я запустил репозиторий, но в любом случае), поэтому я обновляюсь до нуля. Вы, вероятно, хотите начать где-то еще, это зависит от вашей ситуации.

$ hg update null

Затем создайте ветку.

* +1007 *

Затем мы перебазируем все сделанные нами коммиты в нашу новую ветку:

$ hg rebase -s SOURCE -d DEST

ИСТОЧНИК здесь должен быть первым коммитом, который вы сделали в коммитах, из которых вы хотите создать ветку, а DEST должен быть коммитом, в котором была создана ветвь (тот, который мы зафиксировали выше).

4 голосов
/ 01 марта 2010

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

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

Чтобы переписать историю, вы можете использовать, например, mq.

0 голосов
/ 01 марта 2010

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

...