Jump to content

Монотонный (программное обеспечение)

монотонный
Разработчик(и) Монотонная команда
Первоначальный выпуск 6 апреля 2003 г .; 21 год назад ( 06.04.2003 )
Финальный выпуск
1.1 [1] / 4 мая 2014 г .; 10 лет назад ( 04.05.2014 )
Репозиторий
Написано в С++
Операционная система Unix , Linux , BSD , Mac OS X , Windows
Доступно в английский, итальянский, шведский, португальский, немецкий, испанский
Тип Контроль версий
Лицензия GPL-2.0 или новее
Веб-сайт www .монотонный .что  Edit this on Wikidata

Monotone — это инструмент с открытым исходным кодом программный для распределенного контроля версий . Он отслеживает изменения в файлах, группирует наборы изменений в наборы изменений и отслеживает историю переименований. В проекте основное внимание уделяется честности, а не производительности. [2] Monotone предназначен для распределенной работы и интенсивно использует криптографические примитивы для отслеживания версий файлов (через SHA-1 безопасный хэш ) и для аутентификации действий пользователя (с помощью RSA криптографических подписей ).

Версия Monotone 0.26 внесла серьезные изменения во внутренние структуры базы данных, включая новую структуру, известную разработчиками Monotone как реестр . [3] Базы данных Monotone, созданные в версии 0.26, не могут обмениваться ревизиями со старыми базами данных Monotone. Старые базы данных сначала необходимо обновить до нового формата. Новый протокол netsync несовместим с более ранними версиями Monotone.

Как вдохновение Git

[ редактировать ]

В апреле 2005 года Monotone стал предметом повышенного интереса в FOSS сообществе после того, как Линус Торвальдс упомянул его как возможную замену BitKeeper в процессе разработки Linux . В сообщении в списке рассылки ядра Linux Торвальдс похвалил Monotone и пренебрег Subversion (и, как следствие, всеми клиент-серверными системами контроля версий): [4]

Не трудитесь рассказывать мне о подрывной деятельности. Если необходимо, начните читать о «монотоне». Это кажется наиболее жизнеспособной альтернативой, но не приставайте к разработчикам настолько, чтобы они не выполнили никакой работы. Они уже знают о моих проблемах ;)

—  [4]

Вместо того чтобы использовать Monotone, Торвальдс решил написать собственную SCM -систему Git . В дизайне Git используются некоторые идеи Monotone, но у этих двух проектов нет общего исходного кода. Git уделяет гораздо больше внимания высокой производительности, вдохновленный длительной историей и требовательными распределенными режимами совместной работы, используемыми Торвальдсом и другими авторами ядра Linux. Позже Торвальдс так прокомментировал дизайн и производительность Monotone:

Если вам нужна система контроля версий, написанная на C++, попробуйте Monotone. Действительно. Они используют «реальную базу данных». Они используют «хорошие объектно-ориентированные библиотеки». Они используют «красивые абстракции C++». И, откровенно говоря, в результате всех этих дизайнерских решений, которые кажутся некоторым людям из CS так привлекательными, конечным результатом является ужасный и неустранимый беспорядок.

—  [5]

Ключевой вопрос, обсуждаемый [6] заключался в том, должна ли замена BitKeeper поддерживать выбор вишен, при котором специалист по обслуживанию дерева может утверждать подмножество исправлений, одновременно отклоняя другие на индивидуальной основе. Торвальдс утверждал, что этот подход «приводит к неправильной динамике и психологии в системе», перекладывая бремя на вышестоящих сопровождающих , а не заставляя нижестоящих сопровождающих прилагать больше усилий для защиты своих деревьев от мусора. Он также утверждал, что Monotone прав в своем отвращении к сбору вишен как к функции, но затем не смог зайти достаточно далеко, не упрощая «выбрасывание» нечистых рабочих деревьев после того, как их цель достигнута. [7] Торвальдс также отметил, что, по его мнению, Monotone в то время не достиг уровня производительности, необходимого для такого крупного проекта, как разработка ядра Linux.

Как и GNU Arch и в отличие от Subversion , Monotone использует распределенный подход к контролю версий. Monotone использует хэши SHA-1 для идентификации конкретных файлов или групп файлов, как в Git и Mercurial , вместо линейных номеров версий. Каждый участник ведет свою собственную историю изменений, хранящуюся в локальной базе данных SQLite .

Честность

[ редактировать ]

До серьезной оптимизации в версии 0.27 упор Monotone на правильность, а не на оптимизацию, часто обвиняли в неудачном первоначальном опыте. Первым действием нового пользователя часто является синхронизация (клонирование) большой существующей базы данных Monotone, действие, которое часто занимало часы для больших баз данных из-за обширной проверки и проверки целостности, которую Monotone выполняет при перемещении ревизий по сети. После заполнения исходной базы данных (клона) последующие действия обычно выполняются быстрее. По состоянию на июль 2010 г. , еще есть возможности для дальнейшей оптимизации некоторых более редких функций. [ нужна ссылка ]

Рабочий процесс

[ редактировать ]

Monotone особенно сильна в поддержке рабочего процесса расхождения/слияния, чего он частично достигает за счет того, что всегда разрешает фиксацию перед слиянием. [8]

Хотя изначально Monotone поддерживал множество сетевых протоколов для синхронизации деревьев, теперь он использует исключительно собственный протокол под названием netsync , который более надежен и эффективен и имеет некоторые концептуальные основы с rsync и cvsup . (Однако, начиная с версии 0.27, протокол netsync можно использовать для любого потока, в частности, включая соединения ssh.) Netsync имеет собственный порт, назначенный IANA (4691), и более старые его версии поддерживаются подключаемым модулем . Wireshark для анализа трафика. Отдельного сервера Monotone нет, поскольку в качестве сервера может выступать любой клиент Monotone.

Другие особенности

[ редактировать ]

Другие особенности Monotone включают в себя:

  • Хорошая поддержка интернационализации и локализации
  • Портативный дизайн, реализованный на C++.
  • Высокая целостность — ключевая цель проектирования
  • Monotone может импортировать проекты CVS .
  • Подписание редакций с использованием RSA сертификатов
  • Легко освоить благодаря набору команд, аналогичному набору команд CVS.
  • Очень хорошо разветвляется (как расхождения внутри ветки, так и именованные ветки) и слияние.
  • Хорошая документация
  • Очень низкие эксплуатационные расходы
  • Полная и всеобъемлющая библиотека Perl , которая позволяет вам полностью управлять Monotone из сценария Perl (mtn-browse использует это)

Недостатки

[ редактировать ]

По состоянию на январь 2008 г. К возможным недостаткам Monotone относятся:

  • Потенциальные пользователи не могут получить (или зафиксировать) из-за прокси-сервера (очень часто встречается в корпоративных средах) из-за протокола, отличного от http.
  • Проблемы с производительностью для некоторых операций (наиболее заметное начальное нажатие)

Выполнение

[ редактировать ]

Monotone реализован на современном диалекте C++ поверх библиотеки Boost , библиотеки шифрования Botan и библиотеки базы данных SQLite . Monotone поддерживает настройку и расширение с помощью функций-перехватчиков, написанных на языке программирования Lua . Монотонный процесс сборки автоматизирован с помощью BuildBot и включает обширные регрессионные тесты .

См. также

[ редактировать ]
  1. ^ «НОВОСТИ» . 4 мая 2014 года . Проверено 16 июля 2019 г.
  2. ^ «Обзор 7 систем контроля версий» . 18 сентября 2008 года . Проверено 1 ноября 2010 г.
  3. ^ Что такое реестры
  4. ^ Jump up to: а б Линус Торвальдс (6 апреля 2005 г.). «LKML: Линус Торвальдс: Сага о Kernel SCM» . ЛКМЛ .
  5. ^ Линус Торвальдс (6 сентября 2007 г.). «Re: [RFC] Преобразование builin-mailinfo.c для использования The Better String Library» . ГМАНЕ . Архивировано из оригинала 6 февраля 2016 г.
  6. ^ Дэвид Вудхаус (7 апреля 2005 г.). «LKML: Дэвид Вудхаус: Сага о Kernel SCM» . Проверено 23 февраля 2017 г.
  7. ^ Линус Торвальдс (7 апреля 2005 г.). «LKML: Линус Торвальдс: Re: Сага о Kernel SCM» . ЛКМЛ .
  8. ^ «Работа с форком — монотонная документация» . Проверено 21 ноября 2010 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0751abb1d1356d054299bd9cb1cf82b6__1713665760
URL1:https://arc.ask3.ru/arc/aa/07/b6/0751abb1d1356d054299bd9cb1cf82b6.html
Заголовок, (Title) документа по адресу, URL1:
Monotone (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)