Главная Friday, March 24 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
лента новостей сайта microsin.ru лента новостей
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:
Кто он-лайн
Сейчас на сайте:
Гостей - 10
Модуль рекламы
Поисковые системы

TortoiseHG: как откатить версию проекта из репозитория Mercurial Версия для печати
Написал microsin   
08.04.2011

Можно вернуться к любой точке сохранения (Commit) проекта, если есть такая необходимость. Если коротко, то это делается так - правой кнопкой щелкаем на папке проекта (где создан репозиторий TortoiseHG), TortoiseHG -> Clone..., выбираем пустую папку в Destination path, ставим галку Clone to revision, указываем номер ревизии (точки сохранения, куда надо откатиться), жмем кнопку Clone. Все, в новой пустой папке Destination path мы получили старую версию проекта. 

Теперь процесс по шагам, подробно:

1. Если Вы не знаете номер ревизии, куда нужно откатиться (а этот номер нужно обязательно знать при выполнении команды Clone), то можно воспользоваться браузером репозитория Repository Explorer. Запускаем его - щелкаем правой кнопкой на папке проекта, в выбираем в контекстном меню Repository Explorer. Теперь нужно определить, в какое место откатиться (номер Changeset). Это можно сделать, если знать дату/время точки сохранения. Если Вы точно не помните, когда произошло нужное сохранение, то это можно сделать, просматривая изменения кода в Repository Explorer. В верхней части окна GraphSummary отображаются точки сохранения Commit вместе с комментариями, которые Вы указали в точке сохранения.

TortoiseHG-clone01.PNG

Вверху списка GraphSummary находятся самые свежие версии проекта (точки Commit), чем ниже - тем точка сохранения старше (можно откатиться к любой точке сохранения). Если щелкнуть на интересующей точке сохранения в GraphSummary, то можно увидеть, какие произошли изменения в файлах относительно предыдущей точки состояния (список измененных файлов показан слева внизу окна), а если щелкнуть на интересующем файле, то можно увидеть, какие в нем произошли изменения (в правой нижней части окна коричневым текстом показано старое содержимое исходника, а зеленым текстом показано внесенное изменение). В информационном поле средней части окна показана информация по точке сохранения - номер ревизии Changeset, имя пользователя User, который слелал точку ревизии Commit, дату ревизии Date, номер предыдущей ревизии Parent, и номер следующей ревизии Child. Нас интересует только номер ревизии Changeset (на скриншоте номер ревизии 22, именно эту цифру нужно указвать в поле ввода Clone to revision при выполнении команды Clone).

2. Номер ревизии знаем. Теперь осталось выполнить команду Clone, указав нужный номер ревизии. Создаем новую папку (например, c:\asm\LUFA101122.cpy), запускаем инструмент клонирования (правой кнопкой щелкаем на папке проекта, выбираем в контексном меню TortoiseHG -> Clone...), в Destination path указываем полный путь до новой папки (можно воспользоваться кнопкой Browse...), ставим галку Clone to revision, вводим в поле Clone to revision номер ревизии, который мы узнали на шаге 1. Теперь если нажать на кнопку Clone, то в новой папке получим старую версию проекта, соответствующий номеру ревизии (точке сохранения Commit) номер 22.

TortoiseHG-clone02.PNG

[Ссылки]

1. Система управления версиями Mercurial.
2. Как скачать исходники с Google Code (code.google.com) - описание работы с репозиториями Mercurial и SVN.
3. Mercurial in daily use (повседневное использования Mercurial).

Последнее обновление ( 08.04.2011 )
 

Комментарии  

  1. #1 Krieger
    2011-04-0811:34:31 По-моему вы перемудрили. Метод который вы описали используется скорее, когда нужно из репозитория удалить ошибочные changeset'ы (вдруг вы закоммитили конфиденциальну ю информацию).
    Откат же рабочей версии проекта делается при помощи команды "Update", если вы хотите начать новую ветку и "Backout", если хотите вернуть все как было (на скриншоте - в ревизии 110330), но не удалять ошибочные changeset'ы (110330+).

    microsin: благодарю за ценный комментарий. Я пока новичок, начал использовать Mercurial недавно, и поэтому еще не разобрался со всеми тонкостями.

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2017