Скажем, я клонирую удаленный Подвижный репозиторий (по локальной сети или даже по Интернету) для испытания чего-то.
Я работаю в своем клоне, делаю несколько фиксаций..., и затем я понимаю, что мои изменения не имеют смысла, и я должен запустить снова.
Таким образом, я хочу иметь "новый" клон снова из того же исходного репозитория.
В основном я хочу "сбросить" свой локальный repo к точке, прежде чем я начал экспериментировать.
Каково лучшее / самый быстрый способ сделать это?
Самый простой путь состоял бы в том, чтобы просто сделать новый клон, но тогда HG копирует целый repo и целую историю по сети снова.
Если repo будет действительно большим, то это займет время и/или заблокирует сеть.
Я пытался превратить новый клон в ту же папку (надеясь, что HG распознает это и обновит только файлы, которые изменились и история), но это, кажется, копирует целый repo также.
Я мог "hg откат", но это откатывает только последнюю фиксацию. Если я сделал несколько фиксаций, я могу только отменить последний. Таким образом, я не могу сбросить repo к точке, прежде чем я начал фиксировать.
Какие-либо идеи?
Нет ли действительно никакой другой путь, чем клонировать все это снова?
(примечание: решение с TortoiseHg было бы хорошо... Я предпочитаю это по командной строке),
Вы прикончите нас, используя 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
Это должно быть почти мгновенно.
Если вы включите Расширение полосы , вы можете использовать команду "hg strip", которая удалит историю, которая вам больше не нужна.
Дополнительная информация доступна на вики-странице Strip command.
Я использовал библиотеку Infoviz для такого сценария (вот демонстрация ). Можно использовать различные цвета узлов для различных правил выбора вместе с некоторым текстовым описанием, хотя сначала оно не будет очень интуитивно понятным.
Ориентация дерева по умолчанию горизонтальна, что может выглядеть странно, но имеет смысл при добавлении текстовых имен узлов переменной длины.
-121--4950827-Кажется, что это работает сейчас:
jQuery(document).ajaxError(function(event, request, settings){
alert("Error");
});
-121--848763- hg update -r < номер набора изменений >
например, hg update -r 1
для второй версии. Можно использовать hg log
для просмотра требуемой версии