Home » Интернет и хостинг » Система управления версиями в жизни вебмастера

Система управления версиями в жизни вебмастера

Система управления версиями (version control system) хранит все изменения ваших файлов, позволяя вернуться к любой предыдущей версии всего проекта или его отдельных файлов. Вы можете просматривать изменения, сделанные в файлах в разное время, а при работе в команде система управления версиями позволяет легко вносить изменения в одни и те же файлы нескольким людям одновременно.

После того, как я начал пользоваться системой управления версиями в девяносто каком-то году, я уже не могу обходиться без этого инструмента: любое изменение исходного кода может привести к поломке сайта и вернуться к предыдущей рабочей версии без него будет непросто. Кроме того, часто возникает необходимость посмотреть, какие изменения были внесены в определенные файлы ранее.

Так как я почти всегда был виндузятником, мое знакомство с управлением версиями началось с Visual Source Safe. В свое время он предоставлял необходимые возможности, но на данный момент безнадежно устарел. Некоторое время назад ему на смену Microsoft выпустила Team Foundation Server (TFS) — довольно мощный и удобный инструмент, который хорошо интегрируется с Visual Studio и пользуется заслуженной популярностью у разработчиков.

Занимаясь своими разработками в одиночку, я некоторое время обходился возможностями Visual Source Safe (VSS). К сожалению, TFS довольно сложен в установке и настройке, поэтому я решил с ним не заморачиваться.

Возможно я бы и дальше пользовался VSS, но меня не устраивали в нем две вещи:

  • репозиторий (файлы системы управления версиями) хранился на моем компьютере, таким образом в случае поломки диска я мог рассчитывать только на свои бэкапы (которые недостаточно регулярны)
  • VSS хорошо интегрируется с Вижуал Студией, но при работе с другими редакторами им пользоваться неудобно

Вместе с тем, мне постоянно попадаются статьи про другие системы: svn, git, mercurial и другие. Они бесплатны сами по себе и есть даже хостинги, которые позволяют размещать на них ваши проекты тоже бесплатно.

SVN является аналогом VSS и TFS (все они работают с некоторым центральным репозиторием), а вот git и mercurial реализуют популярную сейчас идею распределенного репозитория. После небольшого исследования я выбрал для себя mercurial (просто по нему немного больше информации в Сети).

mercurial

Не буду вдаваться в особенности распределенных систем управлениями версиями, а просто дам ссылку на отличное руководство для новичков по Mercurial от Джоэля Спольски, перевод которого был размещен на Хабре:

http://habrahabr.ru/blogs/development_tools/109428/

Ссылка ведет на шестую, заключительную часть руководства, в начале которого есть ссылки на предыдущие части — начинать надо, конечно, с первой части.

Для Visual Studio есть два плагина для работы с mercurial: HgSccPackage и VisualHG. Плюс, имеется TortoiseHg, который ставится в качестве Windows shell extension. Я поставил себе только HgSccPackage, а вне студии использую командную строку (это совсем несложно).

Наконец, в качестве хостинга репозитория я выбрал Bitbucket: для проектов, в которых участвует не более пяти пользователей оплата не требуется.

В итоге получается, что репозиторий хранится на Битбакете и моем компьютере. Если у меня полетит диск, то я смогу получить все свои файлы с Битбакета. Если, вдруг, закроется Битбакет, то у меня будет локальный репозиторий со всей историей изменений (который я могу потом перенести на другой хостинг). Профит!

А какими системами управления версиями пользуетесь вы?

  • Для работы в одиночку и небольшими группами с головой хватает SVN. Всегда можно найти бесплатный хостинг, в принципе все устраивают. Много сейчас говорят о GIT, пока не понимаю в она может быть лучше лично для меня. Возможно для больших команд разработчиков это и полезно. 

    • GIT и mercurial – по сути одно и тоже. Лично для меня преимущество перед SVN в том, что репозиторий находится и локально и на сервере. При работе в команде проще делать мерджи, можно чекинить в свой репозиторий неработающую версию (за это в SVN надают по голове).

  • Kubeman

    Аналогично TortoiseHq + Bitbucket (еще постигаю азы SVN)