Полезные техники для бизнеса и деловых людей: инструменты, системы и сервисы

Сходство и различие между Mercurial и Git

Толчком к созданию обеих систем, как Mercurial, так Git, послужило одно событие 2005 года. Всё дело было в том, что в 2005 году ядро системы Linux потеряло возможность бесплатного использования системы контроля версий BitKeeper. После пользования BitKeeper в течение трёх лет разработчики ядра привыкли к его распределённому рабочему процессу. Автоматизированная работа с патчами сильно упрощала процесс учёта и слияния изменений, а наличие истории за продолжительный период времени позволяло проводить регрессию.

Практически одновременно Мэт Макол (Matt Mackall) и Линус Торвальдс (Linus Torvalds) выпускают свои системы контроля версий: Mercurial и Git соответственно. В основу обеих систем легли идеи появившегося двумя годами ранее проекта Monotone.

Cходство

Обе системы контроля версий имеют ряд общих черт:

  • ревизии ассоциируются с контрольными суммами;
  • история имеет вид направленного ациклического графа;
  • поддерживаются высокоуровневые функции, в т.ч. бисекция, ветвление и выборочные фиксации.

Отличия

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

  1. Mercurial для улучшения производительности пользуется специальным механизмом хранения Revlog. В основе модели хранения Git лежат большие объектные бинарные файлы (BLOB).
  2. Для Mercurial ветки — это публичное место разработки вне основного ствола. Имена веток публикуются среди всех участников, поэтому в качестве имен обычно используют устойчивые во времени номера версий. Ветки Git, по сути, являются лишь указателями на фиксации. В разных клонах хранилища ветки с одинаковыми названиями могут указывать на разные фиксации. Ветки в Git могут удаляться и передаваться по отдельности.
  3. Mercurial позволяет легко фиксировать изменения, проталкивать и вытягивать их с поддержкой всей предыдущей истории. Для Git не имеет значения предыдущая история и на что раньше ссылались указатели, важно то, что актуально в текущий момент.


Обзор GitHub

Выбор редакции, Разработка GitHub - это система управления проектами и версиями кода, а также платформа социальных сетей, созданная для разработчиков.

Подробнее...


Обзор GitLab

Выбор редакции, Разработка Git - это система контроля версий, используемая различными проектами с открытым исходным кодом.

Подробнее...


Обзор Mercurial

Разработка Mercurial — кроссплатформенная распределённая система управления версиями, разработанная для эффективной работы с очень большими репозиториями кода.

Подробнее...

Добавить комментарий

Закрыть меню
×

Корзина