Меркуриальный
Разработчик(и) | Оливия Макколл [а] (ушедший на пенсию), [1] Пьер-Ив Давид |
---|---|
Первоначальный выпуск | 19 апреля 2005 г [2] |
Стабильная версия | 6.4rc0 [3] / 2 марта 2023 г.; 8 июля 2024 г.; 1 августа 2024 г. |
Репозиторий | |
Написано в | Python , C и Rust [4] |
Операционная система | Unix-подобный , Windows , macOS |
Тип | Контроль версий |
Лицензия | GPL-2.0 или новее |
Веб-сайт | www |
Mercurial — это распределенный инструмент контроля версий для разработчиков программного обеспечения . Он поддерживается в Microsoft Windows , Linux и других Unix-подобных системах, таких как FreeBSD и macOS .
Основные цели разработки Mercurial включают высокую производительность и масштабируемость, децентрализацию, полностью распределенную совместную разработку, надежную обработку как простых текстовых , так и двоичных файлов , а также расширенные возможности ветвления и слияния, оставаясь при этом концептуально простыми. [5] Он включает в себя интегрированный веб-интерфейс. Mercurial также предпринял шаги, чтобы облегчить переход для пользователей других систем контроля версий, в частности Subversion . Mercurial — это, прежде всего, программа, управляемая из командной строки , но графического пользовательского интерфейса доступны расширения , например TortoiseHg , а некоторые IDE предлагают поддержку контроля версий с помощью Mercurial. Все операции Mercurial вызываются как аргументы его программы-драйвера. hg
(отсылка к Hg – химическому символу элемента ртути ).
Оливия Макколл [а] основал Mercurial и был его ведущим разработчиком до конца 2016 года. Mercurial выпускается как бесплатное программное обеспечение под лицензией GPL-2.0 или более поздней версии . [7] В основном он реализован с использованием языка программирования Python , но включает в себя реализацию двоичного сравнения, на C. написанную
История
[ редактировать ]Макколл впервые анонсировал Mercurial 19 апреля 2005 года. [2] Толчком к этому послужило объявление Bitmover ранее в том же месяце об отзыве бесплатной версии BitKeeper из-за разработки SourcePuller .
BitKeeper использовался для контроля версий требований проекта ядра Linux . Макколл решил написать распределенную систему контроля версий в качестве замены ядру Linux. ныне известный проект Git инициировал Этот проект стартовал через несколько дней после того, как Линус Торвальдс с аналогичными целями. [8]
В проекте ядра Linux было решено использовать Git , а не Mercurial, но сейчас Mercurial используется многими другими проектами (см. ниже ).
В ответе в списке рассылки Mercurial Оливия Макколл объяснила, как было выбрано название «Mercurial»:
Незадолго до первого выпуска я прочитал статью о продолжающемся фиаско Bitkeeper, в которой Ларри Маквоя описывался как непостоянный (в смысле «непостоянный»). Учитывая множество значений, удобное сокращение и хорошее соответствие с моей уже существующей схемой именования (см. мой адрес электронной почты), оно мгновенно мне понравилось. Таким образом, Mercurial назван в честь Ларри. Я не знаю, верно ли то же самое для Git. [9] [10]
такие громкие проекты, как OpenJDK, использовали Mercurial. В прошлом [11] хотя OpenJDK больше не работает с Java 16.
Дизайн
[ редактировать ]Mercurial использует хэши SHA-1 для идентификации версий. Для доступа к репозиторию через сеть Mercurial использует протокол на основе HTTP , который стремится сократить количество двусторонних запросов, новых подключений и передаваемых данных. Mercurial также может работать через SSH , протокол которого очень похож на протокол на основе HTTP. По умолчанию перед вызовом внешних инструментов слияния используется трехстороннее слияние .
Использование
[ редактировать ]На рис. 1 показаны некоторые наиболее важные операции Mercurial и их связь с концепциями Mercurial.
Принятие
[ редактировать ]Хотя Mercurial не был выбран для управления исходными кодами ядра Linux, он был принят несколькими организациями, включая Facebook , [12] W3C и Mozilla . Facebook использует язык программирования Rust для написания Mononoke. [13] [14] сервер Mercurial, специально разработанный для поддержки больших многопроектных репозиториев.
В 2013 году Facebook внедрил Mercurial и начал работу над его масштабированием для работы со своим большим унифицированным хранилищем кода. [15]
Google также использует клиент Mercurial в качестве внешнего интерфейса для своего облачного внутреннего хранилища монорепозитория Piper. [16]
Bitbucket объявила, что ее веб-службы контроля версий прекратят поддержку Mercurial в июне 2020 года (затем она будет продлена до июля 2020 года). [17] объясняя, что «его используют менее 1% новых проектов, а опросы разработчиков показали, что 90% разработчиков используют Git». [18]
Серверы Mercurial и управление репозиториями
[ редактировать ]- Heptapod, форк GitLab для Mercurial от Octobus
- Kallithea — лицензией GPLv3. ответвление RhodeCode под
- Печь от Glitch, Inc.
- Фабрикатор от Phacility
- RhodeCode от RhodeCode Inc.
Хостинг исходного кода
[ редактировать ]Следующие веб-сайты предоставляют бесплатный хостинг исходного кода для репозиториев Mercurial:
- Bitbucket от Atlassian (устарело с февраля 2020 г.; доступно только для чтения с июля 2020 г.) [18]
- Кодовая база [19]
- FusionForge
- GNU Саванна от FSF
- гептапод
- Моздев
- ОСДН [20]
- Другие [21]
- Перфорс [22]
- дикая местность [23] (дочерний сайт GNU Savannah, размещенный в Украине)
- ИсточникForge
- ИсточникHut
- Семья Тукс [24]
Проекты с открытым исходным кодом с использованием Mercurial
[ редактировать ]Некоторые проекты, использующие распределенную RCS Mercurial: [25]
- GNU Здоровье
- Библиотека многоточности GNU
- GNU Октава
- ЛИМОН
- ЖидкостьОбратная связь
- Мозилла [26] (также использует Git/ GitHub [27] )
- Нгинкс
- Ортанк
- Пиджин
- РодКод
- Округлять
- Тритон
- Виндирстат
- ух ты
- XEmacs
- Сине
- Эрик
См. также
[ редактировать ]- Сравнение программного обеспечения для контроля версий
- Распределенный контроль версий
- Список программного обеспечения для контроля версий
Примечания
[ редактировать ]- ^ Jump up to: а б Оливия Макколл раньше была Мэттом Макколлом. [6]
Ссылки
[ редактировать ]- ^ «мпм — Меркуриальный» . Меркуриальный . Проверено 24 февраля 2023 г.
- ^ Jump up to: а б Макколл, Мэтт (20 апреля 2005 г.). «Mercurial v0.1 – минимальная масштабируемая распределенная SCM» . Ядро Linux (список рассылки).
- ^ «Набор изменений 50269:05de4896508e стабильная 6.4rc0» .
- ^ «Файл README в подкаталоге Rust, ветка master» . 24 января 2020 г. Проверено 30 января 2020 г.
- ^ Макколл, Мэтт. «На пути к лучшему SCM: Revlog и Mercurial» (PDF) . Меркуриальный . Архивировано (PDF) из оригинала 26 мая 2019 года . Проверено 26 мая 2019 г.
- ^ «Мэтт Макколл теперь Оливия Макколл» . Меркуриальный . Проверено 28 мая 2021 г.
- ^ «Перелицензирование» , Mercurial (вики), Mercurial-scm.org .
- ^ Макколл, Мэтт (29 апреля 2005 г.). «Re: Mercurial 0.4b против теста git patchbomb» . Ядро Linux (список рассылки). Архивировано из оригинала 9 июля 2012 года.
- ^ Макколл, Мэтт (15 февраля 2012 г.). «Почему Мэтт выбрал имя Меркуриал?» . Mercurial (список рассылки) . Проверено 7 июня 2016 г.
- ↑ Торвальдс сказал: «Я эгоистичный ублюдок, поэтому называю все свои проекты в честь себя. Сначала Linux, теперь git».
- ^ Джеймс Гослинг (октябрь 2006 г.). «Реализация платформы Java с открытым исходным кодом Sun, часть 1» (интервью). Беседовал Роберт Экстайн. Солнце. Архивировано из оригинала 1 марта 2009 года.
{{cite interview}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ «Масштабирование Mercurial в Facebook» . 7 января 2014 г.
- ^ «Сервер управления версиями Mercurial, специально разработанный для поддержки больших монорепозиториев: facebookexperimental/mononoke» . 31 января 2019 г. – через GitHub.
- ^ Сзорц, Грегори (17 октября 2016 г.). «Заметки о спринте Mercurial 4.0» . mozilla.dev.контроль версий. Группы Google . Проверено 22 ноября 2021 г.
- ^ Гуд, Дарем; Агарвал, Сиддхарт (7 января 2014 г.). «Масштабирование Mercurial в Facebook» . Код Фейсбука . Проверено 13 октября 2015 г. - через Facebook.
- ^ «Почему Google хранит миллиарды строк кода в одном репозитории» .
- ^ «Закат поддержки Mercurial в Bitbucket» . 21 апреля 2020 г. Архивировано из оригинала 1 июля 2020 г.
- ^ Jump up to: а б Чан, Дениз (20 августа 2019 г.). «Закат поддержки Mercurial в Bitbucket» . Битбакет . Проверено 29 августа 2019 г.
- ^ «Хостинг Git, Mercurial и Subversion» . Функции . Штаб-квартира кодовой базы. 4 марта 2013 г. Архивировано из оригинала 30 марта 2014 г. . Проверено 4 марта 2013 г.
- ^ «Давайте начнем разработку OSS с Mercurial (Hg) – OSDN» . osdn.net .
- ^ «Хостинг», Mercurial (вики), Mercurial-scm.org .
- ^ «Попробуйте Helix TeamHub бесплатно | Perforce» . info.perforce.com .
- ^ «Добро пожаловать [Пуща]» . ps.gnu.org.ua.
- ^ «TuxFamily: Бесплатный хостинг для свободных людей» . tuxfamily.org .
- ^ «Некоторые проекты, использующие Mercurial» , Mercurial (вики), Mercurial-scm.org .
- ^ Рид, Дж. Пол (12 апреля 2007 г.). «Система контроля версий Shootout Redux Redux» .
- ^ mozilla-mobile/fenix , Mozilla Mobile, 19 марта 2021 г. , получено 19 марта 2021 г.
Внешние ссылки
[ редактировать ]- Официальный сайт
- Макколл, Мэтт, «Подкаст FLOSS» , На этой неделе в сфере технологий
- О'Салливан, Брайан (2009), Mercurial: The Definitive Guide (книга), О'Рейли , доступно в свободном доступе в Интернете.
- Спольски, Джоэл, Учебное пособие по Mercurial , заархивировано из оригинала 13 июня 2016 г. , получено 6 апреля 2010 г.
- Учебное пособие по Mercurial на основе примеров (PDF) , SE : Jemander, охватывающее как базовое, так и расширенное использование.
- «Mercurial: альтернатива git» , LWN
- «Subversion или CVS, Bazaar или Mercurial? Сравнение четырех систем контроля версий с открытым исходным кодом» , JavaWorld , сентябрь 2007 г.
- «Mercurial», TechTalk (видео) , заархивировано из оригинала 21 декабря 2021 г.
- Список проектов, использующих Mercurial, из вики Mercurial
- программное обеспечение 2005 года
- Кроссплатформенное бесплатное программное обеспечение
- Распределенные системы контроля версий
- Бесплатное программное обеспечение, написанное на C.
- Бесплатное программное обеспечение, написанное на Python.
- Бесплатное программное обеспечение для контроля версий
- Системы контроля версий