Начинаем использовать систему контроля версий tortoisehg(mercurial) - установка/настройка

Нигде на сайте не видел статьи про использование системы контроля версий HG. Решил восполнить этот пробел. Я буду описывать (с картинками) работу в системе на базе mercurial: tortoisehg (обычно говорят HG = Hydrargyrum == ртуть == mercurial)
В работе над печкой, в течении более 3-х месяцев, я с самого начала разрабатывал код и платы под HG. Сейчас репозиторий выглядит так:
Репозиторий проекта печки
Как его поставить, настроить и основные принципы работы под катом.

Часть 2: Commit


Установка:
Идем на сайт и качаем нужную версию. Тут есть нюанс: с версии 2.х они полностью переделали интерфейс. Зачем — не понимаю, мне больше нравится старый интерфейс. Он простой и логичный. Про него я и буду рассказывать.
Итак, идем в список старых версий и качаем последнюю версию: tortoisehg-1.1.10-hg-1.8.1-x64.msi для 64-битных окон или tortoisehg-1.1.10-hg-1.8.1-x86.msi для 32-битных окон.
Качаем, запускаем, устанавливаем. Все по умолчанию. Ничего сложного.

Настройка:
Открываем глобальные настройки:

Настраиваем язык. Я по привычке использую Английский.

Самое главное, поставить расширения:

По большому счету, я не знаю что делают большинство расширений кроме тех, которые отмечены и я ими пользуюсь.
MQ — позволяет менять местами комиты. Иногда удобно поменять местами, чтобы перенести коммит в другую ветку без конфликтов… Хотя последнее время я перешел на Transplant…
Transplant — перенос в один клик комитов из ветки в ветку. Если автоматически не получилось — остаются все файлы и все изменения. Можно поправить руками и сделать коммит.
Rebase — перенос целых веток.
ВАЖНО: каждый из этих инструментов будет описан подробно позже.
Сохраняем. Закрываем.

Настраиваем расширение в контекстном меню:

Надо добавить команду Commit, если ее там нет по умолчанию.
Сохраняем, закрываем.
Мы готовы начать…

Создание репозитория:
Идем в нужный каталог, где мы будем работать. Из контекстного меню, выбираем «Create Repository Here».

Ставим галочку «MakeRepo compatible with Mercurial 1.0», если нужна совместимость с версией 1.0.
Жмем «Create». В каталоге появится каталог: .hg, в котором лежит весь репозиторий.

Просмотр репозиторя:
В каталоге с репозиторием, из контекстного меню выбираем «HG Repository Explorer», и получаем картинку из заставки )

В настройках отображения, выбираем Graph, Revision, Summary, User, Age, остальное по вкусу.


В след. статье напишу как делать коммиты.

Комментарии (61)

RSS свернуть / развернуть
Мне git ближе. И инфы по нему масса просто.
0
  • avatar
  • ploop
  • 08 февраля 2015, 23:10
По Hg не меньше, и тоже разжёвано всё, вдоль и поперек, например вот habrahabr.ru/post/108658/ :)
P.S. Если работаете с Hg из консоли, то я бы из расширений поставил ещё color(раскрашивает ввод diff-a), fetch(чтобы не делать pull с ключом -u, иногда можно забыть, а потом удивляться) и graphlog(отображает лог в графическом виде — псевдографикой, с линиями и ответвлениями ^_^)
+1
Ну это фломастеры конечно, но какую-нибудь VCS желательно каждому освоить. Дело не в только коде, любые схемы, расчеты, с любым файлами проекта ой как проще работать становится…
+2
Мне HG нравиться больше, т.к. я с него начинал ) Первая любовь. После VSS и SVN это как «Tesla S4» после телеги )
А по бльшому счету — возможности у них одинаковые, т.к. принцип похож, если не такой-же.
0
Для мелкопроектов лучше ртуть. И вообще, если не знаешь зачем тебе гит — всегда лучше выбрать ртуть.
+1
Двачую. Ртуть лично мне значительно проще и понятнее. Но корпоративный стандарт git, вот и пересел. Ну и ртутные репки тяжелее сломать так что потом не разгребёшь.
0
А если меня устраивает гит, и я не знаю зачем мне ртуть?
Про простоту ртути обычно говорят пересевшие с svn, на который он похож по интерфейсу.
0
раскрыть комментарий
-6
Спасибо. Поправил.
З.Ы. Эту статью я начинал писать давно. На тот момент про Git ничего не было. Ест-но поправить забыл.
0
0
А вот тут я пожалуй соглашусь: Да SVN это ЙУХ. :)
Т.к. SVN и Git или HG это как небо и земля…
З.Ы. Это был сарказм…
0
Да ладно. Посадить тебя на месяцок в CVS — мнение о SVN сразу и улучшится :)
0
Мне VSS хватило )
0
Эта программа для «локального» контроля версий? Как ее на сайт привязать, чтобы в инет выкладывались изменения?
0
да. для локального.
0
Ну для локального это да, но я думаю стоит здесь (а лучше в Вашем продолжении) написать про bitbucket.org/ (если есть альтернатива, то я просто другим ничем не пользовался) и про привязку HG к нему…
В свое время это хорошо описал BSVi… tqfp.org/best_practices/sistemy-kontrolya-versiy.html
0
Я никогда не работал с сетевыми РЕПО. А писать то чего не знаешь — не люблю.
0
Я имел в виду — не цеплял локальный HG к сетевым ресурсам.
0
Mercurial прекрасно поддерживает веб-репо, тот же BitBucket хотя бы.
+1
0
QuaziKing2 Вам огромная благодарность за статью! Статьи на соседних ветках (от злого покемона) для меня, новичка, нифига не понятны, хотя видно, что человек старался. У вас все просто и по делу. С нетерпением буду ждать от вас продолжения, поскольку тема очень актуальна.
0
Спасибо. Статью продолжу в пятницу.
0
Какие расширения за что отвечают? Хотя бы из отмеченных?
0
По большому счету, я не знаю что делают большинство расширенийю кроме тех, которые отмечены и я ими пользуюсь.
MQ — позволяет менять местами комиты. Иногда удобно поменять местами, чтобы перенести коммит в другую ветку без конфликтов… Хотя последнее время я перешел на Transplant…
Transplant — перенос в один клик комитов из ветки в ветку. Если автоматически не получилось — остаются все файлы и все изменения. Можно поправить руками и сделать коммит.
Rebase — перенос целых веток.
0
Пропали команды чероепашки из проводника Win.
Подскажите, что необходимо поправить в конфиге?
0
Тут много вариантов.
1) Антивирус заюлокировал библиотеку расширения
2) Посмотрите в настройках расширений самого HG (см. Настраиваем расширение в контекстном меню)
Это то что на вскидку…
0
Помог «ремонт» через панель управления/программы. Вчера как раз ставил софт для Тектроникса, возможно что-то пострадало попутно.
0
2)Посмотрите в настройках расширений самого HG (см. Настраиваем расширение в контекстном меню)
О чём и был вопрос: из меню Проводника (эксплорера) пропали ВСЕ иконки ртути/черепашки. Соответственно, доступа к Explorer Extension Setting не было от слова «совсем».
0
Расширение от эксплорера отвалилось. Если нет познаний для восстановления ручками — переставить клиент (собственно, repair это и делает).
0
Это понятно, Кэп. Но сперва показалось, что что-то отвадилось в конфигурации самой черепашки.
0
Статья интересная, но за ошибки «мне больше нравиться» — расстрел на хабре/лепре гарантирован.
0
  • avatar
  • igorp
  • 10 февраля 2015, 14:04
Спасибо. Поправил уже. )
0
Небольшой вопрос: как насчет беспечной траты дискового пространства? Не расхолаживают ли инструменты контроля версий? Не засираются ли со скоростью звука диски? Что подсказывает опыт бывалых?
0
  • avatar
  • DVF
  • 10 февраля 2015, 21:30
VCS хранят данные весьма эффективно. Репозиторий с двумя сотнями ревизий весит меньше, чем последняя ревизия в распакованном виде.
Конечно, бывают нюансы. Если ты положишь в репоз стометровый файл, который перед каждым коммитом будет заполняться новыми рандомными данными — с каждым коммитом репозиторий будет расти на примерно эту сотню метров.
Со скоростью звука диски засираются, если коллекционировать аниме… Как жаль, что моя система не поддерживает 6ТБ диски :)
0
:) Выходит, что такая штука идеальна только для кода.
0
Ну, не зря они называются системами управления исходным кодом. Впрочем, другие методы хранения версий рандомно меняющихся бинарных файдов оптимальней все равно не будут. Ну и если бинарный файл меняется не сильно (скажем, разные версии собранного бинарника) — репозиторий, опять же, расти будет не сильно.
0
Всё вышеописанное происходит с хранением версий в архивах, и даже больше (хуже).
Трата пространства будет при большом количестве полностью изменённых текстовых файлов, или при изменении бинарных файлов. ISO и фильмы в ней хранить не получится. Для исходников программ всё отлично.
0
1) Данные хранятся в сжатом виде.
2) Храняться диф-ы (т.е. разницы между файлами)
Отсюда вывод: если вы каждым комитом меняете 100ГБ видео, то да в репозитории +100ГБ на каждый комит.
Если же мы говорим о «нормальном» использовании РЕПО, т.е. для хранения версий текстовых файлов, то никаких проблем нет. Мой репозиторий с 200+ ревизий кода печки занимает около <4М
0
SVN и бинарнички неплохо хранит, диффами. Я там собранные бинарники держу из-за того, что гуглькод выпилил страничку загрузок, и на размере они отражаются не сильно.
0
Да. Для хранения больших объемов информации SVn пока лучшее… На работе мы живем на SVN и пока не знаем как пересесть на что-то другое. Одна ревизия «весит» >50Gb. Львиная доля — графика, модели, бинари… Никакой Git или HG это просто не вытянет…
0
Забавно. А perforce не тыкали?
0
Тыкали.
1) Он платный.
2) Надо на него перейти.
3) А особых плюсов пока не видим…
0
1) Да, бесплатная верия вам врядли подойдет)
3) Вроде как обещают лучшую работу с здоровыми репозиториями, и вообще скорость повыше, чем SVN.
0
Когда гуглькод их выпилил, я перенёс их на sourceforge. Репа всё-таки для исходников, а не того что из них собирается…
0
Мне было лень изобретать описание проекта для SF. Да и бинарники в репозе лежали задолго до убирания загрузок.
0
Вообщем в свете последних статей решил тоже посадить себя на скв, и в связи с этим пара вопросов.
1) Ртуть черепашка полностью бесплатная — никаких ограничений, ключей и прочего?
2)Репозиторий самая крупная структурная единица? Нельзя их например в какие-нибудь рабочие области объединять? Ну обычно в проекте кроме исходников, есть схема и печатка, рисунки морды, выкройки вырезов в корпусе и прочее. Можно ли разбить их на репы, а последние объединить в один проект? Или все в один репозиторий скапливается?
3) Будет ли вредить Гугл диск/дропбокс/прочие репозиторию, если он будет в их папке синхронизации?
0
1) Hg и Git бесплатны;
2) Github, например, хранит исходники в ветке master и других, страничку проекта (совершенно иного содержания) в ветке gh-pages.
Также, субрепы в Git и Hg.
3) Если несколько пользователей, то будет, да и сам по себе дропбокс и пр могут поудалять файлы и репозиторий накроется. В кол-ве одного разрботчика люди ими таки пользуются. Но лучше использовать специализированные хостинги проектов и/или домашние.
0
Пользователь будет 1 — я) Да и спец сервис для распространения исходников мне не нужен, если кому что понадобится, то не лень будет в архивчик запаковать и скинуть.
Ну т.е. потенциально облаками пользоваться можно, но любой облачный сбой при загрузке и репозиторий идет, так сказать, погулять?
0
Да, чуть что — улетает.
Bitbucket и GitHub это бесплатные сервисы. Попробуйте, понравится. А про архивчики забудьте, они вообще не в тему с DVCS.
0
Я правильно понял, что в ВедреБитов максимальный размер репозитория на данный момент 2Гб? А санкции кстати их не накрывают, так чисто для справки?
0
Да, 2 ГБ.
Санкции могут. Но прелесть DVCS в том, что вы можете иметь сколько угодно репозиториев, подключённых к вашей локальной копии, которая сама содержит все необходимые данные. Потерянный удалённый репозиторией замещается другим. Поднимете дома — никто не забанит санкциями. Синхронизировать можно и через репозиторий на флэшке, если что.
+1
О, а вот это интересно, т.е. есть возможность бэкапить и синхронизироваться с обычной флешкой?
0
Да, на флэшке делается локальный репозиторий, который для вашего проекта видится аналогично удалённым.
В него заливаете изменения из одной копии проекта, в другой копии считываете.
Так с любым диском.

DropBox и прочие могут неудачно синхронизировать, если запись будет идти с нескольких пользователей.
0
Ага, т.е. если я один, то вероятность краха при синхронизации с облаком будет минимальна, я правильно понимаю?
0
Как вариант – в той же ртути+черепашке организовать локальный репозиторий.
А уже его парку синхронизировать, например, с Дропбоксом.
0
Ну судя по ответам оратора выше — так сломать репозиторий легко. Или нет?
0
Зависит от работы самого дропбокса. Есть, тем не менее люди, которые пользуются таким способом (пока ещё, и есть те, кто уже не пользуется :D )
Поломка ничем ужасным не грозит, всегда есть локальные копии. Это вам не SVN.
0
Усё понял шеф)
0
Есть те, кто не делает бекапы и есть те, кто уже делает.

habrahabr.ru/post/119433/#comment_3903800
scripting.com/2014/01/24/githubAndDropboxDoNotPlayWellTogether.html
Хотите словить баг в неподходящий момент — пользуйтесь возможностью.
0
Поломка ничем ужасным не грозит, всегда есть локальные копии. Это вам не SVN.
Ну, при помощи svn-sync можно и svn-овский репозиторий дублировать.
0
Еще раз: реп у тебя ЛОКАЛЬНЫЙ. А на дропбоксе – его резервная копия. Как ее сделать не ломая – это уже проще. Например, ночью копировать, или часов в 5 утра.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.