(Mercurial) Есть ли какой-нибудь способ вернуться назад и отметить начало ветки?

#mercurial #branch

#mercurial #ветка

Вопрос:

Я по глупости не смог запустить ответвление от 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:

Вам не нужна фиктивная регистрация, но вам нужно убедиться, что ваша следующая регистрация выполнена с версии 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.

Комментарии:

1. для создания модифицированной базы данных лучше использовать путь hg up — hg branch dead -branch — hg co — hg rebase . Удаление истории также можно выполнить с помощью расширения histedit

2. Да, кот уже вылез из мешка. Что я хотел знать, так это то, есть ли какой-нибудь способ сказать «обрабатывать 394 как текущую подсказку». Чтобы исправить этот беспорядок, я закончил тем, что сделал один новый push, который я основал на 394. Затем я закрыл другую главу.