Самый быстрый способ “сбросить” Подвижный репозиторий к Версии X (не клонируясь)

Скажем, я клонирую удаленный Подвижный репозиторий (по локальной сети или даже по Интернету) для испытания чего-то.
Я работаю в своем клоне, делаю несколько фиксаций..., и затем я понимаю, что мои изменения не имеют смысла, и я должен запустить снова.

Таким образом, я хочу иметь "новый" клон снова из того же исходного репозитория.
В основном я хочу "сбросить" свой локальный repo к точке, прежде чем я начал экспериментировать.

Каково лучшее / самый быстрый способ сделать это?

Самый простой путь состоял бы в том, чтобы просто сделать новый клон, но тогда HG копирует целый repo и целую историю по сети снова.
Если repo будет действительно большим, то это займет время и/или заблокирует сеть.

Я пытался превратить новый клон в ту же папку (надеясь, что HG распознает это и обновит только файлы, которые изменились и история), но это, кажется, копирует целый repo также.

Я мог "hg откат", но это откатывает только последнюю фиксацию. Если я сделал несколько фиксаций, я могу только отменить последний. Таким образом, я не могу сбросить repo к точке, прежде чем я начал фиксировать.

Какие-либо идеи?
Нет ли действительно никакой другой путь, чем клонировать все это снова?
(примечание: решение с TortoiseHg было бы хорошо... Я предпочитаю это по командной строке),

8
задан Christian Specht 18 January 2010 в 12:00
поделиться

3 ответа

Вы прикончите нас, используя hg strip , как предполагает gizmo, но традиционный способ сделать это - клонировать снова - не из удаленного репо, а из вашего собственного местного репо. Например, если вы извлекли "репозиторий" и добавили changesets 99 и 100, которые вам не нравятся, вы должны сделать:

cd ..
hg clone -r 98 respository repository-scrubbed
mv repository respository-with-crap-I-do-not-want
mv repository-scrubbed repository

Это должно быть почти мгновенно.

18
ответ дан 5 December 2019 в 06:09
поделиться

Если вы включите Расширение полосы , вы можете использовать команду "hg strip", которая удалит историю, которая вам больше не нужна.

Дополнительная информация доступна на вики-странице Strip command.

8
ответ дан 5 December 2019 в 06:09
поделиться

Я использовал библиотеку Infoviz для такого сценария (вот демонстрация ). Можно использовать различные цвета узлов для различных правил выбора вместе с некоторым текстовым описанием, хотя сначала оно не будет очень интуитивно понятным.

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

-121--4950827-

Кажется, что это работает сейчас:

jQuery(document).ajaxError(function(event, request, settings){
   alert("Error");
});
-121--848763-

hg update -r < номер набора изменений > например, hg update -r 1 для второй версии. Можно использовать hg log для просмотра требуемой версии

1
ответ дан 5 December 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: