The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск распределённой системы управления версиями Mercurial 3.4

05.05.2015 07:50

Представлен релиз распределённой системы управления версиями Mercurial 3.4. Код Mercurial написан на языке Python (требующие высокой производительности части оформлены в виде модулей на Си) и распространяется под лицензией GPLv2+. Среди проектов, использующих Mercurial, можно выделить следующие: Mozilla, Python, Go, OpenOffice.org, OpenSolaris, NetBeans, OpenJDK, ALSA, Nginx, Xine, Dovecot, NTFS-3G и W3C.

Основные новшества:

  • По умолчанию на серверах задействован новый протокол bundle2, которому присвоен статус стабильного (в клиентах пока требуется явное включение bundle2). По сравнению с классическим протоколом, в bundle2 сокращено число этапов согласования соединения, что положительно сказалось на скорости выполнением операций push и pull, и дало возможность сделать данные операции атомарными. Кроме того, в протоколе предоставлены средства для обмена дополнительными метаданными в рамках установленного канала связи, что открывает широкие возможности для развития новшеств, например, уже продемонстрирована возможности автоматического перестроения (rebase) сервера при выполнении операции push. На сервере hg.mozilla.org поддержка нового протокола появится не раньше 1 июня.
  • Переписан код кэширования тегов, что позволило избавиться от узких мест с производительностью, проявляющихся при работе с очень большими репозиториями (например, для некоторых типов запросов к mozilla-central могли возникать подвисания в несколько секунд);
  • В web-интерфейс hgweb добавлена возможность вывода в формате JSON для почти всех вызовов API. Поддержка JSON позволяет создавать новые надстройки и сервисы, работающие с Mercurial.
  • Компания Google подготовила новый бэкенд для хранения манифестов (списков файлов в коммите), который позволяет реализовать такие возможности, как клонирование только выбранных директорий. Новое хранилище позволит перенести репозитории l10n в mozilla-central;
  • Связанные с вычислениями стадии переписаны на языке Си, что заметно отразилось на производительности;
  • Приблизительно на 20% увеличена скорость работы команды "hg diff".
  • Разработчиками из компании Google проведены оптимизации частей, используемых для чтения манифеста. Операции, подобные "hg export tip", стали выполняться в mozilla-central на 50% быстрее;
  • На файловых системах, не чувствительных к регистру символов в именах файлах, возросла производительность "hg status". На платформе OS X скорость работы "hg status" возросла на 25%. Производительность вызова "hg revert" в некоторых сценариях возросла до 4 раз;
  • Добавлена команда "hg diff --root", позволяющая оценить различия, относительно произвольной директории;
  • Добавлена команда "censor", которая позволяет цензурировать данные из прошлых коммитов. Например, если по ошибке в составе коммита в репозиторий переданы сведения, которые не подлежат разглашению, то команда "censor" позволяет закрыть эти данные от клонирования клиентами.
  • В основной состав перенесена функциональность расширения "hg record". Добавлен экспериментальный интерактивный консольный интерфейс, созданный при помощи библиотеки curses (включается через "experimental.crecord = true" );
  • При вводе неизвестной команды, Mercurial теперь пытается исправить ошибку и предлагает наиболее близкую рабочую команду;
  • Устранены появившиеся в прошлом выпуске регрессивные изменения, проявляющиеся проблемами с производительностью при обращении к hg.mozilla.org через web-интерфейс;
  • Для дополнений предоставлены средства для создания собственных обработчиков для редактирования истории операций (histedit)
  • Mercurial 3.4 объявлен последним выпуском, в котором поддерживаются ветки Python 2.4 и 2.5.



Достоинства Mercurial:

  • Быстродействие:
    • Высокая производительность работы с хранилищем, не зависящая от числа элементом в нём (O(1) revlog);
    • Компактное хранение данных в проиндексированном и сжатом виде;
    • Оптимизирован для эффективной работы с данными на жёстком диске;
    • Все изменения и файлы в репозитории дополнительно проиндексированы;
    • Для копирования данных по сети используется HTTP и SSH, данные передаются в сжатом виде.
  • Масштабирование
    • Распределённая модель разработки позволяет участвовать в проекте неограниченному числу разработчиков;
    • Допускается произвольное слияние отдельных децентрализованных репозиториев, поддерживаемых отдельными разработчиками;
    • Объём репозитория, число файлов и зафиксированных изменений не отражается отрицательно на производительности;
    • При работе нет необходимости ждать освобождения блокировки.
  • Надёжность.
    • Для контроля целостности данных в репозитории используется SHA1;
    • Хранилище реализовано в журнальном виде - данные не замещаются, а добавляются. Ведётся журнал транзакций;
    • Быстрый алгоритм проверки целостности репозитория;
    • Встроенные средства резервного копирования и проверки целостности;
  • Удобство использования.
    • Привычный CVS-подобный набор команд;
    • Наличие встроенной системы подсказки;
    • Интегрированный Web-интерфейс;
    • Большой выбор GUI интерфейсов.
  • Лёгкость внедрения:
    • Поддержка платформ UNIX, OS X и Windows;
    • Средства, упрощающие миграцию с других систем управления исходными текстами;
    • Поддержка нескольких моделей организации репозитория: централизованная cvs-подобная, децентрализованная иерархическая и распределённая полуиерархическая;
    • Поддержка внешних обработчиков и дополнений.


  1. Главная ссылка к новости (http://gregoryszorc.com/blog/2...)
  2. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.4.0
  3. OpenNews: Увидела свет система управления версиями Subversion 1.8.0
  4. OpenNews: Эрик Реймонд представил новую систему управления версиями SRC
  5. OpenNews: Выпущена система управления версиями Bazaar 2.6.0
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/42165-mercurial
Ключевые слова: mercurial
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (46) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:43, 05/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне кажется hg.mozilla.org и без регрессий всегда тормозил. Но это торможение меркнет на фоне скорости поиска в багтрекере :-)
     
     
  • 2.2, vitalif (ok), 11:28, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А шо вы таки хотели, когда там багзилла и поиск по ПОДСТРОКЕ ))))
     
  • 2.14, Аноним (-), 14:23, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну так до них только начинает доползать:
    > Связанные с вычислениями стадии переписаны на языке Си

    Если б они не выделывались со своим бидончиком - их участь была менее печальна. А так все-равно половину на си пришлось переписать, потому что Питон Не Тормозит!!!111

    Только до этого они получили бодрый заряд антипиара "hg - тормозилово".

     

  • 1.3, Штунц (?), 11:31, 05/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > Привычный CVS-подобный набор команд;

    интересно, почему это является достоинством в 2015 году?

     
     
  • 2.5, Аноним (-), 11:54, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Давайте переведу.
    Несомненным плюсом Mercurial над Git является, то что у него не git-образный набор команд))
    Так-то команды отражают внутренние понятия. Я думаю, если бы в git вписывался в локальной работе в режим CVS/SVN, то там тоже использовали бы такие же команды. Хотя кто знает этого Торвальдса)
     
     
  • 3.8, Nikitron (?), 12:53, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Несомненным плюсом Mercurial над Git является наличие приватного репозитория в bitbucket, а так и забыли бы все про него...
     
     
  • 4.12, уке (?), 14:08, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    У меня три десятка приватных git репозитариев в bitbucket.
     
  • 4.17, Аноним (-), 14:33, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Несомненным плюсом Mercurial над Git является наличие приватного репозитория в bitbucket,

    А что, юные жлоборасы, фапающие на hg - даже свой сервер не способны нынче поставить?

     
  • 4.23, vn971 (ok), 15:33, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Если что, существует ещё и gitlab:  https://gitlab.com/
    Там можно и юзать приватные репозитории на их центральном сервере, и вообще установить на своём серве. У меня на одной из работ применяли (свой серв).
     
  • 3.15, Аноним (-), 14:25, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Несомненным плюсом Mercurial над Git является, то что у него не git-образный
    > набор команд))

    Не вижу в чем тут достоинство. Мимикрия под древнее гoвно в DVCS? Это как если бы пульт электровоза пытался мимикрировать под привычные всяким ретардам вожжи.

     
  • 2.18, правдоруб (?), 14:37, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Git в роли первой VCS - это как Emacs/Vim в роли первого редактора или C++/Haskell в роли первого языка.
     
     
  • 3.20, Аноним (-), 14:46, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > это как Emacs/Vim

    Как вы смеете упоминать эту поделку наравне с божественным Emacs-ом?

     
     
  • 4.21, правдоруб (?), 14:53, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В ОС Emacs уже появился нормальный редактор?
     
     
  • 5.24, Аноним (-), 16:03, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Сто лет же как vim прикрутили ! :-p
     
  • 5.32, Аноним (-), 19:47, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > нормальный редактор?

    М-x butterfly

    Ну или для начинающих
    M-x list-packages
    и выбираете по вкусу.

     
  • 3.22, Crazy Alex (ok), 15:14, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Из всего этого разве что Haskell не может быть первым.

    На git собственно ручно сажал некоторое количество народу именно как на первую VCS. Как раз теми, кто не испорчен CVS/SVN он довольно легко осваивается. Это жертвы SVN с парой add/commit освоиться не могут и с тем, что репозиторий - это единое целое, а не пачка независимых каталогов.

    vim/emacs - плевать, в для какого редактора распечатать cheatsheet с двумя десятками основных команд.

    Плюсы - hello world в них пишется совершенно так же, как в каком нибудь паскале или бейсике. Все объектные фишки (и даже идея о выделении памяти) начинающему абсолютно не можны, их добавлять потом.

     

  • 1.4, Аноним (-), 11:53, 05/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    По последним данным, vim переезжает на github и соответственно git
     
  • 1.6, Kodir (ok), 12:30, 05/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Mercurial - лучший! Дай бог, чтобы его и дальше продвигали. А нечаянный революционер пусть дальше пилит свой "версионник ядра" ОТДЕЛЬНО от мэйнстрима.
     
     
  • 2.7, Аноним (-), 12:38, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для этого "лучшего" надо вагон всякой питонятины тащить.
     
     
  • 3.9, onekosha (?), 13:13, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Git тянет с собой Perl и Tcl/Tk.
     
     
  • 4.11, Аноним (-), 13:33, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наверно в какой-нить убунте. У меня в source-based системе этого не тянется.
     
     
  • 5.13, yet another anonymous (?), 14:16, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В git есть и python, и perl, и shell, и Tk. Будут ли работать соответствующие компоненты --- зависит от наличия, само собой.
     
     
  • 6.25, develop7 (ok), 16:16, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это Совершенно Другое Дело
     
     
  • 7.33, Аноним (-), 19:53, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Это Совершенно Другое Дело

    Естественно. Core то там писали нормальные спецы, на языках которые для этого лучше подходят. Бидонисты из hg это тоже начинают осознавать. Но, как говорится, too lillte and too late.

     
     
  • 8.41, develop7 (ok), 01:15, 06/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    то-то я смотрю это ваше core так легко из другого ЯП позвать, что его переписали... текст свёрнут, показать
     
     
  • 9.42, Аноним (-), 08:37, 06/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Его просто позвать в unix way - из консольных тулзов А это вообще не было час... текст свёрнут, показать
     
     
  • 10.44, develop7 (ok), 15:46, 06/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    и собссно на этом кейсе уровня 171 выложить домашку на гитхаб 187 простота з... текст свёрнут, показать
     
     
  • 11.46, Аноним (-), 19:54, 06/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну как бы в разработке софта есть такая штука приоритеты Вот Торвальдс умеет и... большой текст свёрнут, показать
     
     
  • 12.48, develop7 (ok), 20:44, 06/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Всё бы хорошо, но есть одна проблема 8212 разработку Mercurial начал и продо... текст свёрнут, показать
     
  • 4.19, правдоруб (?), 14:38, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Tcl/Tk только для GUI.
     

  • 1.26, Аноним (-), 16:45, 05/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Но ребейзить в нем по-человечески всё еще нельзя.
     
     
  • 2.27, правдоруб (?), 17:20, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ребейз - это костыль для неосиливших нелинейную историю, он не может быть по-человечески.
     
     
  • 3.35, Аноним (-), 19:56, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Ребейз - это костыль для неосиливших нелинейную историю, он не может быть
    > по-человечески.

    Ну хорошо, уговорил! Многосторонний мерж то они осилили? А то нелинейная история у всех и вся - это круто, но как-то синхронизировать усилия в конечном итоге все-таки придется! :)

     
  • 2.28, develop7 (ok), 18:07, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Но ребейзить в нем по-человечески всё еще нельзя.

    define "по-человечески"

     
  • 2.37, Аноним (-), 22:23, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Давным-давно осилили: http://mercurial.selenic.com/wiki/RebaseExtension

    Что именно не по человечески?

     
     
  • 3.49, Аноним (-), 21:20, 06/05/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1) Из статуса паблик нужно переводить в драфт, иначе не ребейзится.
    2) После пуша в апстрим-репе ДВЕ ОДНОИМЕННЫХ ВЕТКИ, та что до ребейза и которая после ребейза. И нахрена мне старая ветка?
     

  • 1.29, GotF (ok), 18:53, 05/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Добавлена команда "censor", которая позволяет цензурировать данные из прошлых коммитов. Например, если по ошибке в составе коммита в репозиторий переданы сведения, которые не подлежат разглашению, то команда "censor" позволяет закрыть эти данные от клонирования клиентами.

    Смахивает на эпичный костыль.

     
     
  • 2.30, develop7 (ok), 19:14, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    главное — ни в коем случае не пытаться разобраться, так ли это на самом деле
     
     
  • 3.34, Аноним (-), 19:55, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > главное — ни в коем случае не пытаться разобраться, так ли это
    > на самом деле

    Главное - понять нафуя это в dvcs. Какой-то костыль для переклиненых на централизованной модели.

     
  • 2.36, user (??), 20:12, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    особенно если кто-то успел скачать
     
     
  • 3.38, Аноним (-), 22:28, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вот странно, да.
    Если никто не успел скачать - так отреврайтить и всё.
    А если кто-то успел, то уже поздняк метаться.
     
  • 2.39, all_glory_to_the_hypnotoad (ok), 23:40, 05/05/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Смахивает на эпичный костыль.

    как всё остальное в hg, это норм.

     

  • 1.31, iZEN (ok), 19:42, 05/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    И это хорошо.
     
  • 1.43, Аноним (-), 15:23, 06/05/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    в ртути архитектурный косяк, который никто не собирается фиксить - имя ветки входит в коммит. Поэтому буээ, неприятно пользоваться.
     
     
  • 2.45, develop7 (ok), 15:56, 06/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    всем известно, что если за софтом не следить, он не будет развиваться. Плагин с гитоветками лежит в коробке с 2009, с февраля 2012 он стало core feature, но кому какое дело? Ведь фатальные недостатки Mercurial — название (не матчится с /^git$/) и отсутствие Торвольца в кредитсах, а потому любой уважающий себя хипстор от программирования в его сторону даже голову не повернёт.
     
  • 2.47, Ich (??), 19:58, 06/05/2015 [^] [^^] [^^^] [ответить]  
  • +/
    это как раз его достоинство :-)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру