Mercurial+Bitbucket. Intro

Наконец-то, все осколки от найденных основ по работе с и мысли-наблюдения сформировались в некое подобие статьи.
Итак, есть в природе такие штуки как системы контроля версий. Распределённые и централизованные (традиционные). Подробно про них расскажут всякие википедии и прочие статьи с просторов Интернета, тут напишу лишь пару фраз. Сейчас модно переходить на распределённые системы контроля версий (РСКВ), либо вообще начинать с них, тем более РСКВ точно не менее функциональны, чем централизованные, а в некоторых вещах объективно получше.

Герои этого поста: mercurial — один из представителей РСКВ и Bitbucket — free code hosting, работающий с Mercurial. К примеру, аналог связки mercurial + bitbucket это git + github.com. Особенности Mercurial — адекватная (субъективно, конечно) документация и python-based. Особенности Bitbucket — с некоторого момента неограниченное количество как приватных, так и публичных репозиториев, неограниченное место под репозиторий (раньше 2 гигабайта выделялось), openID, wiki проекта на bitbucket также может быть репозиторием. Само собой, есть и джентльменский набор в виде issue-tracker`ов и т.д. Github же более мейнстримный, но в целом, дело вкуса. Допустим я, выбирал тип РСКВ (hg или git, bazaar уж слишком редок, хотя и он кем-то используется) по веб-мордам соответствующих code hosting.

Bitbucket понравился больше, чем github, gitorius, google code, LaunchPad и SourceForge. Так я и пришёл к Mercurial. Тем более, Mercurial объективно не так уж и отличается от Git. К примеру, многочисленные статьи вида «Почему Git лучше чем …», как правило, сравнивают Git с тем же SVN. Поэтому, 99% указанных плюсов Git в таких статьях это также и плюсы Mercurial.

Изначально, РСКВ придумывались для работы с исходным кодом. Они обладают такими функциями как удобное ветвление, слияние, откат и применения ревизий, ну и backup исходников, само собой. Но разве пытливый ум это когда-то останавливало? РСКВ отлично используется, к примеру, лично мной не только для исходников, но и для хранение fb2-файлов. А на днях попробую засунуть в РСКВ raw 🙂 Проблем с этим не должно быть. Хотя… диффы для двоичных файлов могут и не максимально правильно посчитаться, что в итоге приведёт к полной замене файла, а не только изменённой части. Но эта багофича отразится только на размере конечного репозитория, но никак не на принципах работы с ним.

Философия Mercurial, как и РСКВ в целом: история изменений должна сохраняться на века. Поэтому, будьте внимательны и не повторяйте моих ошибок — сразу коммит и пуш делать одним хоткеем опасно, пусть и очень удобно. Проверяйте, что идёт в коммит перед пушем, иначе nuclear launch codes попадёт в РСКВ, а вычистить с того же Bitbucket после пуша нельзя. Только из коммита в локальном репозитории (Update: Стоит отметить, что в админке Bitbucket есть конечно всякие hg strip revision, но лучше тему абзаца вообще не допускать). Конечно, уничтожение всего репозитория может спасти от распространения nuclear launch codes. Но, во-первых, это если вы обнаружили утечку сразу, а не через месяц, когда апдейты уже распространились по миру. Приватный репозиторий же даёт чуть больше шансов не запалиться, но… тем не менее.
P.S. Объяснение, что такое коммиты и пуши, да и quickstart mercurual + bitbucket — следующим постом.

Advertisements

One response to “Mercurial+Bitbucket. Intro

  1. Уведомление: Mercurial+Bitbucket. QuickStart « Reflection Of A Life, v3·

Обсуждение закрыто.