Представлен (http://gregoryszorc.com/blog/2015/07/31/mercurial-3.5-released/) релиз распределённой системы управления версиями Mercurial 3.5. Код Mercurial написан на языке Python (требующие высокой производительности части оформлены в виде модулей на Си) и распространяется под лицензией GPLv2+. Среди проектов, использующих Mercurial, можно выделить следующие: Mozilla, Python, Go, OpenOffice.org, OpenSolaris, NetBeans, OpenJDK, ALSA, Nginx, Xine, Dovecot, NTFS-3G и W3C.
Ключевым новшеством (https://mercurial.selenic.com/wiki/WhatsNew) является задействование протокола bundle2 по умолчанию на стороне клиента (ранее был включен только для серверов, после обновления клиентов для версии 3.5 они смогут работать с hg.mozilla.org по новому протоколу). По сравнению с классическим протоколом, в bundle2 сокращено число этапов согласования соединения, что положительно сказалось на скорости выполнением операций push и pull, и дало возможность сделать данные операции атомарными. В протоколе bundle2 также реализованы средства для обмена дополнительными метаданными в рамках установленного канала связи, что открывает широкие возможности для развития новшеств, например, возможности автоматического перестроения (rebase) сервера при выполнении операции push.
Из других изменений отмечается прекращение поддержки Python 2.4 и 2.5 (ожидается скорое начало портирования на Python 3), добавление параметра конфигурации ui.allowemptycommit (управляет допустимостью пустых коммитов), в hgignore добавлена поддержка директив include и subinclude (для включения содержимого других файлов), а также реализация серии оптимизаций производительности. Продолжена работа над реализацией возможности разбиения единого файла-манифеста на серию локальных манифестов, привязанных к отдельным директориям.
Особенности Mercurial:- Быстродействие:
- Высокая производительность работы с хранилищем, не зависящая от числа элементом в нём (O(1) revlog);- Компактное хранение данных в проиндексированном и сжатом виде;
- Оптимизирован для эффективной работы с данными на жёстком диске;
- Все изменения и файлы в репозитории дополнительно проиндексированы;
- Для копирования данных по сети используется HTTP и SSH, данные передаются в сжатом виде.
- Масштабирование
- Распределённая модель разработки позволяет участвовать в проекте неограниченному числу разработчиков;- Допускается произвольное слияние отдельных децентрализованных репозиториев, поддерживаемых отдельными разработчиками;
- Объём репозитория, число файлов и зафиксированных изменений не отражается отрицательно на производительности;
- При работе нет необходимости ждать освобождения блокировки.
- Надёжность.
- Для контроля целостности данных в репозитории используется SHA1;
- Хранилище реализовано в журнальном виде - данные не замещаются, а добавляются. Ведётся журнал транзакций;
- Быстрый алгоритм проверки целостности репозитория;
- Встроенные средства резервного копирования и проверки целостности;
- Удобство использования.
- Привычный CVS-подобный набор команд;
- Наличие встроенной системы подсказки;
- Интегрированный Web-интерфейс;
- Большой выбор GUI интерфейсов (http://www.selenic.com/mercurial/wiki/index.cgi/GUIClients).
- Лёгкость внедрения:
- Поддержка платформ UNIX, MacOS X и Windows;- Средства (http://www.selenic.com/mercurial/wiki/index.cgi/RepositoryCo...), упрощающие миграцию с других систем управления исходными текстами;
- Поддержка нескольких моделей организации репозитория: централизованная cvs-подобная, децентрализованная иерархическая и распределённая полуиерархическая;
- Поддержка внешних обработчиков и дополнений.
URL: http://gregoryszorc.com/blog/2015/07/31/mercurial-3.5-released/
Новость: http://www.opennet.me/opennews/art.shtml?num=42731
Это что, мне чтобы скачать исходники, придётся ставить пистон? Офиигенная система, блин.
Мне почему-то кажется, что он у тебя и так стоит.
У таких не то что Python у таких и XYZ никогда не стоит :)))
> У таких не то что Python у таких и XYZ никогда не стоит :)))А если стоит питон - это уже рельса. Стало быть - руби.
> Мне почему-то кажется, что он у тебя и так стоит.Совершенно не обязательно. К большому облому бидонистов, на 90% десктопов бидона вообще ни разу нет (у майкрософтика дотнетик же).
>> Мне почему-то кажется, что он у тебя и так стоит.
> Совершенно не обязательно. К большому облому бидонистов, на 90% десктопов бидона вообще
> ни разу нет (у майкрософтика дотнетик же).Никогда ещё Штирлиц не был так близок к провалу(с)
Для майкрософтика бидон бандлится в Mercurial.
Чтобы скачать исходники ни pyton ни mercurial не нужно, совсем.
С такими вопросами, Вам эти исходники не нужны. Рано...
> С такими вопросами, Вам эти исходники не нужны. Рано...Странно.. гитом то у меня нормально тянутся/пушатся коммиты.
И в школу его тоже отправлять рано... :)
Может таки уже поздно? )
Значительно лучше, чем гит, требующий перла. Который, в отличие от питона, тащить в современную систему особо причин нет.
>чем гит, требующий перлаОпционально
>Который, в отличие от питона, тащить в систему для школоты особо причин нет.
fixed
Исключительно практическое наблюдение. Берем какую-нибудь федорку, ставим минимальную установку. Перлом даже не пахнет. Начинаем ставить разные полезные вещи, в какой момент в систему решит влезть перл с жирной пачкой пакетов? Из сколько-либо интересного - autotools, texinfo, vim-enhanced (хотя последний никто не мешает собрать без перла). Ну и git если угораздит поставить, тоже без перла никак.А теперь попробуйте сделать минимальную установку (можете потом руками попробовать почистить) без питона. Начиная от базовых системных утилит типа yum/gettext/nfs-utils/authconfig/sesystem-config-* и заканчивая любыми компонентами Gnome, кучей софта типа gimp, bind и прочее - без питона система не живет. Поэтому у hg нет никаких лишних зависимостей и никаких монстров в систему он не тянет. Этим и замечателен!
PS не относитесь к написанному серьезно. Но, когда в следующий раз вам придется объяснять виндоюзеру, почему он, поставив git не может использовать половину функциональности, не вкатывая в систему перл - возможно, пожалеете, что не стали сразу использовать mercurial...
> PS не относитесь к написанному серьезно. Но, когда в следующий раз вампридется объяснять виндоюзеру,
Ему надо объяснить что это софт для пассажиров первого класса. Для них - MSTFS, полное овно и за конские бабки :)
> - MSTFS, полное овно и за конские бабки :)Угар в том что MS нынче таки запилил гит в MSVS...
>Берем какую-нибудь федорку, ставим минимальную установку. Перлом даже не пахнет.Федоркопроблемы
>Начинаем ставить разные полезные вещи
Например, perl является полезной вещью, так как позволяет решать задачи эффективнее, чем bash + awk + sed
>Ну и git если угораздит поставить, тоже без перла никак.
Федоркопроблемы, perl не является обязательной зависимостью для git.
А гит требует перл, и чо (с)?
Не требует. Только компилятор ANSI C и stdlib
> Не требует. Только компилятор ANSI C и stdlibчтобы иметь только pull и push? спасибо
> чтобы иметь только pull и push? спасибоЗа отмазку не катит. По минмуму работает. В отличие от этой бидонятины, где все наоборот - модули на си один фиг пришлось писать, но все облеплено тормозным питном с его чудесами по части версий и хреновой скоростью работы.
> все облеплено тормозным питном с его чудесами по части версий и хреновой скоростью работыПерепись людей, отличающих 1 миллисекунду от трёх в полном разгаре.
>> все облеплено тормозным питном с его чудесами по части версий и хреновой скоростью работы
> Перепись людей, отличающих 1 миллисекунду от трёх в полном разгаре.Твой сарказм неуместен, т.к. ты не знаешь ни условия задачи, ни области применения напиуемого софта, к тому же миллисекунды быстро превращаются в минуты, Карл
> чтобы иметь только pull и push? спасибоВесь git уже давно написан на С. Питон и перл в основном используется в костылях типа hg-to-git и svn-to-git
Чтобы все кроме gitweb иметь.
> Это что, мне чтобы скачать исходники, придётся ставить пистон? Офиигенная система, блин.Да еще небось это ненужно и на флопарь (не говоря уже о перфокарте) не влезает!
> Да еще небось это ненужно и на флопарь не влезает!Кстати да, я помниццо понял что времена изменились когда осознал что ни одна фотка с моего телефона на флопарь больше не лезет :)
Это что, мне чтобы скачать исходники, придётся ставить glibc? Офиигенная система, блин.
msvcrt.dll хватит всем
Для ОС написанной на Си вместе со всеми ее утилитами, это нормально и правильно. Ставить аж целый гвидобейсик ради того чтоб скачать репу и посмотреть коммиты - жЫрно.
> целый гвидобейсикЧувствуется попaболь неoсилятора :)
Ну да, кто же еще может поставить питон на один уровень с бейсиком?
согласен: не буду больше бейсик обижать…
Интересно, к какому из этих языков у Вирта более матерное отношение?
> Ну да, кто же еще может поставить питон на один уровень с бейсиком?Ну так программисты на питоне похожи на программистов на бэйсике. Одних ставили в стойло обучая при помощи пинков нумеровать строки, в то время как нормальные програмеры такой хренью не занимались. Других при помощи точно таких же пинков учат форматировать код. Сразу видно на кого ЯП ориентирован.
>Ну так программисты на питоне похожи на программистов на бэйсике. Одних ставили в стойло обучая при помощи пинков нумеровать строки, в то время как нормальные програмеры такой хренью не занимались. Других при помощи точно таких же пинков учат форматировать код. Сразу видно на кого ЯП ориентирован.ШКОЛОТА!
Для большинства поколения программистов от 35 и выше basic был первым языком программирования, потому что в компьютере больше ничего не было, а basic был действительно лучшим из набора содержащего помимо него "машинный код" и "ассемблер". Среди таких программистов, например, Линус Торвальд, да и собственно весь цвет сегодняшнего ИТ. А нумеровать код это чуть ли не единственный способ отредактировать код в тогдашних редакторах.
Если ты не форматируешь код - то ты не программист, хотя кому я говорю.
>Если ты не форматируешь код - то ты не программист, хотя кому я говорю.Но это не задача языка. Для этого есть IDE и прочие Vim/Emacs. Алсо, да, возможность сломать логику программы, случайно нажав backspace, весьма доставляет.
А ещё можно всё сломать из-за ненужного символа tab (не путать с кнопкой tab, от неё есть хоть какая-то польза).
> А ещё можно всё сломать из-за ненужного символа tab (не путать с
> кнопкой tab, от неё есть хоть какая-то польза).А ещё можно случайно файл удалить в консоли! Давайте в rm сделаем интерактивный режим неотключаемым!
Чё. Напиши уже свою первую программу
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....Гы-гы
> Гы-гыНу валяется какой-то скрипт вспомогательный. И чего? Там полсотни утилсов на всем чем можно валяется. Только они даром не упали для сборки ядра, для его конфигурации и вообще.
> Ну валяется какой-то скрипт вспомогательный. И чего? Там полсотни утилсов на всем
> чем можно валяется.А почему не на Си? Надеюсь, Вы над этим уже работаете?
> Только они даром не упали для сборки ядра,
> для его конфигурации и вообще.Да ну?
> checkkconfigsymbols.sh: reimplementation in python
> The scripts/checkkconfigsymbols.sh script searches Kconfig features
> in the source code that are not defined in Kconfig. Such identifiers
> always evaluate to false and are the source of various kinds of bugs.
> However, the shell script is slow and it does not detect such brokenА, ну да, очередной любитель желудей :)
Ну и отличненько.
> написан на языке Python (требующие высокой производительности части оформлены в виде модулей на Си)Этот костыль уже традиция. В место того, чтобы нормально освоить c++ с qml, они строят велосипед за зависимостью в 200 метров, и всё только из личных принципов.
Не путай Mercurial и TortoiseHg
> Этот костыль уже традиция. В место того, чтобы нормально освоить
> qml c js, они строят велосипед за зависимостью в 200 метровfixed.
Вообще-то, зависимостьи в 200 метров -- это как раз для кутей маловато будет, так что перевести стрелки не удалось. Пистоны по прожорливости и жирноте рядом с кумулями и рядом не стояли https://packages.debian.org/wheezy/amd64/python2.7-minimal/d... ;)
> чтобы нормально освоить c++смотрим на monotone и где он сейчас. до-DRY-ились посоны
> и всё только из личных принципов
портабельность продукта - очень хороший личный принцип. Исркенне Ваш, счастливый пользователь thg
> Исркенне Ваш, счастливый пользователь…windows 10
>> чтобы нормально освоить c++
> смотрим на monotone и где он сейчас. до-DRY-ились посоныНу да, перцы из гита их таки обошли на повороте. Вобще на си в основном. Обидно наверное, что тут скажешь - оказывается, мегафичи того или иного языка вовсе и не гарантируют что программа получится хорошей. А вот хреновый выбор языка, как в сабже, может создать массу дурных проблем.
Ура! Я постоянный юзер Hg!
> Ура! Я постоянный юзер Hg!Регистрация участников Специальной олимпиады начата!
> постоянный юзер Hgзвучит как диагноз
Очень инопланетянские принципы организации веток, обязательство всегда иметь ветку с именем default и включение имени ветки в ченжсет коммита (т.е. под контрольную сумму) делают меркуриал непригодным к использованию.
Mercurial ещё и любит гадить прямо в проект файлами .rej и .orig при merge с конфликтами. Я после одного такого раза не выдержал больше мучений с Mercurial (основные - это ветки, кразумеется) и слинял на git-remote-hg.
> обязательство всегда иметь ветку с именем defaultловите безмозглого гуманитария:
>> If no branch name was set, Mercurial assigns the branch name "default". So the name of the default branch in a repository is "default" (which, for example, is not displayed when doing a hg log).
> Очень инопланетянские принципы организации ветокОпять гуманитарии подтянулись со своими stash/rebase
> Среди проектов, использующих Mercurial, можно выделить следующие: ..., OpenSolaris, ...Что за OpenSolaris такой?
Если это про illumos,
то на странице http://wiki.illumos.org/display/illumos/Mercurial+Workflow читаем -
"Please Note: Though this workflow is still valid, the canonical illumos-gate repository is now using git rather than Mercurial, and is hosted as "illumos/illumos-gate" on github."