Меркуриал - Mercurial
Разработчики) | Оливия Макколл |
---|---|
Первый выпуск | 19 апреля 2005 г . |
Стабильный выпуск | |
Репозиторий | |
Написано в | Python , C и Rust |
Операционная система | Unix-подобный , Windows , macOS |
Тип | Контроль версий |
Лицензия | GPL-2.0 или новее |
Веб-сайт |
www |
Mercurial - это инструмент распределенного контроля версий для разработчиков программного обеспечения . Он поддерживается в Microsoft Windows и Unix-подобных системах, таких как FreeBSD , macOS и Linux .
Основные цели дизайна Mercurial включают высокую производительность и масштабируемость, децентрализацию, полностью распределенную совместную разработку, надежную обработку как текстовых, так и двоичных файлов , а также расширенные возможности ветвления и слияния, оставаясь при этом концептуально простыми. Имеет встроенный веб-интерфейс. Mercurial также предпринял шаги, чтобы облегчить переход для пользователей других систем контроля версий, особенно Subversion . Mercurial - это в первую очередь программа, управляемая из командной строки , но доступны расширения графического пользовательского интерфейса , например TortoiseHg , и несколько IDE предлагают поддержку контроля версий с помощью Mercurial. Все операции Mercurial вызываются в качестве аргументов его программы-драйвера hg
(ссылка на Hg - химический символ элемента ртути ).
Оливия Макколл основала Mercurial и была его ведущим разработчиком до конца 2016 года. Mercurial выпускается как бесплатное программное обеспечение под лицензией GPL-2.0 или более поздней . Это в основном реализуется с помощью языка программирования Python , но включает в себя двоичный дифф реализацию , написанной на C .
История
Mackall впервые анонсировал Mercurial 19 апреля 2005 года. Толчком к этому послужило объявление ранее в том же месяце Bitmover об отмене бесплатной версии BitKeeper из-за разработки SourcePuller .
BitKeeper использовался для требований контроля версий проекта ядра Linux . Макколл решил написать распределенную систему контроля версий в качестве замены для использования с ядром Linux. Этот проект стартовал через несколько дней после того , как Линус Торвальдс инициировал теперь хорошо известный проект Git с аналогичными целями.
В проекте ядра Linux было решено использовать Git, а не Mercurial, но Mercurial теперь используется во многих других проектах (см. Ниже ). «Git vs. Mercurial» стал одной из священных войн хакерской культуры .
В ответе на список рассылки Mercurial Оливия Макколл объяснила, как было выбрано имя «Mercurial»:
Незадолго до первого релиза я прочитал статью о продолжающемся разгроме Bitkeeper, в которой Ларри Маквой описывался как непостоянный (в смысле «непостоянный»). Учитывая множество значений, удобную аббревиатуру и хорошее соответствие моей ранее существовавшей схеме именования (см. Мой адрес электронной почты), он мгновенно щелкнул. Таким образом, Mercurial назван в честь Ларри. Я не знаю, верно ли то же самое в отношении Git.
В крупных проектах, таких как Java, то есть OpenJDK , используется Mercurial (но больше не используется в Java 16).
Дизайн
Mercurial использует хэши SHA-1 для идентификации ревизий. Для доступа к репозиторию через сеть Mercurial использует протокол на основе HTTP , который стремится сократить количество двусторонних запросов, новых подключений и передаваемых данных. Mercurial также может работать через SSH, где протокол очень похож на протокол на основе HTTP. По умолчанию перед вызовом внешних инструментов слияния используется трехстороннее слияние .
использование
На рисунке 1 показаны некоторые из наиболее важных операций в Mercurial и их отношения с концепциями Mercurial.
Принятие
Хотя Mercurial не был выбран для управления исходными кодами ядра Linux, он был принят несколькими организациями, включая Facebook , W3C и Mozilla . Facebook использует язык программирования Rust для написания Mononoke, сервера Mercurial, специально разработанного для поддержки больших многопроектных репозиториев.
В 2013 году Facebook принял Mercurial и начал работу над его масштабированием для обработки своего большого унифицированного репозитория кода.
Google также использует Mercurial в своем монорепозитории Piper.
Bitbucket объявил, что его веб-службы контроля версий прекратят поддержку Mercurial в июне 2020 года (затем продлили до июля 2020 года), объяснив, что «менее 1% новых проектов используют его, а опросы разработчиков показали, что 90% разработчиков используют Git. ". Между тем, сотни пользователей открыто сомневались в причинах массового удаления исторических данных, спрашивали, почему не было значительного предупреждения или официального плана миграции, и запаниковали по поводу поспешных сроков в официальной ветке поддержки своей компании.
Mercurial серверы и управление репозиториями
- Heptapod , форк Gitlab для Mercurial от Octobus
- Калифея , GPLv3 вилка RhodeCode
- Печь от Fog Creek Software
- Фабрикатор от Phacility
- RhodeCode от RhodeCode Inc.
Хостинг исходного кода
Следующие веб-сайты предоставляют бесплатный хостинг исходного кода для репозиториев Mercurial:
- Bitbucket от Atlassian (не рекомендуется с февраля 2020 г .; только для чтения с июля 2020 г.)
- Кодовая база
- FusionForge
- GNU Savannah от FSF
- Гептапод
- Моздев
- OSDN
- Другие
- Волей-неволей
- Puszcza (дочерний сайт GNU Savannah, размещенный в Украине)
- SourceForge
- SourceHut
- TuxFamily
Проекты с открытым исходным кодом с использованием Mercurial
Некоторые проекты, использующие распределенную RCS Mercurial:
- GNU Health
- Библиотека GNU Multi-Precision
- GNU Octave
- ЛИМОН
- Жидкость
- Mozilla (также использует Git / GitHub )
- Nginx
- Ортханк
- Пиджин
- RhodeCode
- Округлять
- Трайтон
- WinDirStat
- wmii
- XEmacs
- Xine
Смотрите также
- Сравнение программного обеспечения для контроля версий
- Распределенный контроль версий
- Список программного обеспечения для контроля версий
Примечания
использованная литература
внешние ссылки
- Макколл, Мэтт, "Подкаст FLOSS" , на этой неделе в Tech
- О'Салливан, Брайан (2009), Mercurial: The Definitive Guide (книга), О'Рейли, в свободном доступе в Интернете
- Spolsky, Joel, руководство Mercurial , заархивировано из оригинала 13 июня 2016 г. , извлечено 6 апреля 2010 г.
- Учебное пособие по Mercurial на основе примеров (PDF) , SE : Jemander охватывает как базовое, так и расширенное использование
- «Mercurial: альтернатива git» , LWN
- «Subversion или CVS, Bazaar или Mercurial? Сравнение четырех систем контроля версий с открытым исходным кодом» , JavaWorld , сентябрь 2007 г.
- «Меркуриал», TechTalk (видео)
- Список проектов, использующих Mercurial из Mercurial wiki
- Официальный веб-сайт