Можно вернуться к любой точке сохранения (Commit) проекта, если есть такая необходимость. Если коротко, то это делается так - правой кнопкой щелкаем на папке проекта (где создан репозиторий TortoiseHG), TortoiseHG -> Clone..., выбираем пустую папку в Destination path, ставим галку Clone to revision, указываем номер ревизии (точки сохранения, куда надо откатиться), жмем кнопку Clone. Все, в новой пустой папке Destination path мы получили старую версию проекта.
Теперь процесс по шагам, подробно:
1. Если Вы не знаете номер ревизии, куда нужно откатиться (а этот номер нужно обязательно знать при выполнении команды Clone), то можно воспользоваться браузером репозитория Repository Explorer. Запускаем его - щелкаем правой кнопкой на папке проекта, в выбираем в контекстном меню Repository Explorer. Теперь нужно определить, в какое место откатиться (номер Changeset). Это можно сделать, если знать дату/время точки сохранения. Если Вы точно не помните, когда произошло нужное сохранение, то это можно сделать, просматривая изменения кода в Repository Explorer. В верхней части окна GraphSummary отображаются точки сохранения Commit вместе с комментариями, которые Вы указали в точке сохранения.
Вверху списка 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.
[Ссылки]
1. Система управления версиями Mercurial. 2. Как скачать исходники с Google Code (code.google.com) - описание работы с репозиториями Mercurial и SVN. 3. Mercurial: как его обычно можно использовать. |
Комментарии
Откат же рабочей версии проекта делается при помощи команды "Update", если вы хотите начать новую ветку и "Backout", если хотите вернуть все как было (на скриншоте - в ревизии 110330), но не удалять ошибочные changeset'ы (110330+).
microsin: благодарю за ценный комментарий. Я пока новичок, начал использовать Mercurial недавно, и поэтому еще не разобрался со всеми тонкостями.
RSS лента комментариев этой записи