(Mercurial) Есть ли способ вернуться назад и отметить начало ветки? - PullRequest
0 голосов
/ 14 ноября 2011

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

@ 397 my change, bad (tip)
|
|
o 396 my change, bad
|
|
o 395 my change, bad
|
|
o 394 good change
|
|
...

Это должно стать

@ 394 good change (tip)
|
|
|- 397 bad change (closed)
||
||
|o 396 bad change
||
||
|o 395 bad change
|/
|
...

Нужно ли мне делать фиктивную регистрацию, основанную на 394 (что автоматически создаст новую голову)? Это кажется самым простым решением, но не самым «чистым».

1 Ответ

3 голосов
/ 14 ноября 2011

Вам не нужна фиктивная регистрация, но вы должны убедиться, что ваша следующая регистрация сделана с версии 394.

hg update -r 394
<do work>
hg commit

Новая голова станет верхушкой.


В качестве альтернативы, если вы нигде не продвигали репо [1], и вы просто хотите удалить эти ревизии навсегда, вы можете использовать расширение mq и либо strip наборы изменений, либо qimport их в очередь патчей и qdel патчи.

hg strip 395                   # Will strip rev 395 and it's descendants

Это опасно, убедитесь, что вы правильно поняли.


[1] Если вы уже отправили наборы изменений в любое место, слишком поздно, кошка вышла из сумки. Тебе просто нужно разветвляться на 394-й версии.

...