Системы контроля версий - Mercurial Hg

Система контроля версий - Mercurial Hg



Version Control System (VCS),
Revision Control System (RCS)

Что такое система контроля версий и для чего она нужна?


Когда разработчик ведет относительно сложный проект, то в результате работы

у него скапливаются папки вида:

Project

Project_old

Project_old1

Project_01012013

Project_21012013

Project_copy

(и так далее)


Растут копии проектов, бэкапы и зачастую всё это никак не документировано.

В результате подобной практики рождается множество проблем:


Проблема 1


Спустя, предположим, пол года с даты 21.01.2013 программист может не помнить

какая была разница в функционале сайта (или программы) в папках

Project_01012013

Project_21012013


Бывают ситуации когда проект надо откатить до более ранней версии.

И тут начинаются проблемы - надо вспомнить в какой папке есть необходимый функционал

и еще нет того функционала который уже не нужен.

Вы можете сказать - "А надо документировать!"

Да, Надо Документировать! Я, например, когда работал без VCS и плодил кучу папок,

ничего не документировал! Так же как и большинство программистов...


Проблема 2


Если разработчик увольняется или по какой либо иной причине передает проект новому программисту.

Другому человеку будет очень сложно решать задачи связанные с версиями проекта.

С текущей версией он разберется, а что либо откатить или найти функционал который был

в ранних версиях, но которого нет в текущей версии, будет очень сложно.


Проблема 3


Если вы работаете над проектом не один, а командой разработчиков.

Часто получается так что надо править какой либо файл параллельно с товарищем по команде.

Вы можете сделат себе копию и добавить функционал по своей задаче.

Но в этот же самый момент ваш товарищ внесет свои изменения в оригинальный файл.

В лучшем случае вам потребуется руками переносить свои изменения.

А в худшем случае вы затрете изменения который внес ваш товарищ.


Проблема 4


Вам требуется в текущем проекте реализовать нечто сложное, например какую либо акцию на сайте.

И реализовывать вы будете её примерно две недели.

В этот момент вся ваша команда продолжает работу над проектом и регулярно выносит изменения на боевой сервер

(выкладывает новые версии сайта в интеренет).


Ваши изменения, пока вы не закончите полностью вашу задачу и не протестируете, не должны попасть на боевой сервер.

Тоесть мы получаем Проблему3 в огромном масштабе - у вас будут изменены множество файлов проекта и эти изменения будут конфликтовать

с изменениями вашей команды. Эта проблема уже тупиковая.



Все эти проблемы решают системы контроля версий.


Систему контоля версий следует применять даже если вы работаете один над проектом.

И однозначно применять если работаете в команде.


Наиболее популярные системы контроля версий на сегодняшний день это - Mercurial Hg, Git, SVN.


Мы с вами будем изучать Mercurial Hg

(Mercurial в переводе с англита - ртутный, ну а Hg - обозначение химического элемента ртути)


Сам меркуриал живет здесь - http://mercurial.selenic.com/


Скачав и установив меркуриал с оф сайта, вы получите функционал этой системы контроля версий в работе с командной строкой. В ряде случаев это удобно.

Но в большинстве случаев удобнее использовать визуальные средства для работы с меркуриалом. Так же это более удобнее для изучения и для понимания работы меркуриала

и системы контроля версий.


И в этом нам поможет замечательная программа Tortoise Hg (http://tortoisehg.bitbucket.org/).

Программа является свободнораспростроняемой и кроссплатформенной (тоесть

работает на Windows, Linux и MacOS)

Последнюю версию скачать можно тут http://tortoisehg.bitbucket.org/download/index.html


Скачайте и установите последнюю версию программы.

(Каких либо хитростей в установке нет. Единственное если у вас Windows 7 x64

установите галочку поддержки x86 систем. Без нее меркуриал может не интегрироваться в контекстное меню тоталкоммандера)

Добавить отзыв (пожелание, комментарий)

Сергей, Санкт-Петербург
Дима, ну что сказать? Всё круто. Сразу
видно , что знаешь о чём говоришь!

Продолжай в том же духе...