Программирование AVR TortoiseHG: как откатить версию проекта из репозитория Mercurial Mon, September 25 2017  

Поделиться

нашли опечатку?

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


TortoiseHG: как откатить версию проекта из репозитория Mercurial Печать
Добавил(а) microsin   

Можно вернуться к любой точке сохранения (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: как его обычно можно использовать.

 

Комментарии  

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

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

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


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

Top of Page