Представлен (http://mercurial.selenic.com/wiki/) релиз распределённой системы управления версиями Mercurial 3.0 (http://mercurial.selenic.com). Код Mercurial написан на языке Python (требующие высокой производительности части оформлены в виде модулей на Си) и распространяется под лицензией GPLv2+. Среди проектов, использующих (http://mercurial.selenic.com/wiki/ProjectsUsingMercurial) Mercurial, можно выделить OpenSolaris, NetBeans, OpenJDK, ALSA, Mozilla, Nginx, Xine, Dovecot, NTFS-3G, Python, Vim и W3C.
Выпуск 3.0 не сигнализирует о появлении кардинальных изменений или новшеств, он лишь является следствием смены первой цифры в рамках используемой проектом десятичной схемы нумерации, в соответствии с которой после 2.9 следует версия 3.0, а не 2.10. Из новшеств (http://hglabhq.com/blog/2014/4/29/what-s-new-in-mercurial-3-0) можно отметить:
- Новая команда "hg config", которая выводит имена и значения всех переменных конфигурации, а при указании опции "--edit" позволяет изменять их значения. Опция "--local" указывает на конфигурацию репозитория, а "--global" на системную конфигурацию.
- Запоминание статуса HTTP-аутентификации. Раньше, параметры аутентификации передавались только после получения кода ошибки 401 (т.е. запросы дублировались 401/200, 401/200, 401/200...), сейчас параметры отправляются сразу для элементов путей в которых до этого был зафиксирован запрос аутентификации (401/200, 200, 200...).
- Вывод осмысленного теста ошибки при попытке выполнения "hg push" для только что созданного репозитория.Достоинства 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://mercurial.selenic.com/wiki/
Новость: http://www.opennet.me/opennews/art.shtml?num=39713
Идиотская схема версионирования.
Что в ней идиотского?
Именно эта схема дает возможность идиотам демонстрировать свой идиотизм.
Как, впрочем, и любая другая.
Во-первых, версия не несёт никакой информации - точка ничего не разделяет, её можно выкинуть, итого имеется просто номер как у хрома. Когда могло бы быть настоязее major/minor/patch где каждое число имеет смысл.
Во-вторых, эта версия не несущая никакой информации маскируется под версию несущую информацию той самой ничего не разделающей точкой.
Итого - такая же кривизна как вся VCS.
Какой тяжёлый случай. По выходным этот аноним, наверное, по капле дождя на окне делает глубокомысленные выводы о судьбах мира.
проспись, полено
Подобная схема, кстати, использовалась и используется openbsd, когда вы с анонимом ещё не родились. Но речь, разумеется, не об этом, а об сопливом пафосе вас с анонимом.
Возражения по сути есть, или как всегда - ничего не понял, и тявкнуть надо?
> Возражения по сути есть, или как всегда - ничего не понял, и тявкнуть надо?А что тут по сути скажешь. Какой-то аноним решил, что ему номер версии чем-то сильно обязан, причём обязан он соответствовать Единственно Правильному Идиотскому видению Анонима, хотя система началась ещё тогда, когда не было быть модно Дебилом По Номерам Версий. При этом, на основании самовыдуманных критериев сделал далеко идущие выводы. Диагноз понятен - типичный опеннетовец.
а с чего ты решил, что твоё понимание нумерации версий — самое верное на планете?пойди, кстати, линусу эту претензию выскажи: он вообще безо всякой системы перешёл на 3.0. просто вот захотел — и оп! в отличие от вполне логичной системы нумерации hg.
> на 3.0. просто вот захотел — и оп! в отличие от
> вполне логичной системы нумерации hg.Расскажи нам, какая версия "вполне логично" последует за 9.9 ?
10.0спешили фор ю, если ты вдруг засомневаешься, вот тебе генератор для проверки:
def newver():
a = 0.0
while True:
a += 0.1
yield a
> 10.0Тогда либо точек ало, либо точка лишняя! Где Логика?!
>> 10.0
> Тогда либо точек ало, либо точка лишняя! Где Логика?!логика - в генераторе. он написан выше.
9.9 + 0.1 = 10.0
если точка мешает, можешь её вообще не ставить, ничего не изменится, лично у меня в моей мульке нумерация 0.3 и 03 абсолютно равнозначна. 99+01 = 100
вообще, это в проприетаристическом мире версия значит "мы соизволили". в свободном - это может быть вообще периодический выпуск транка умеренной стабильности. что, собственно, происходит и в mercurial, и в openbsd, и в ubuntu - версия это просто отметка, возможность отличать их друг от друга, и понимать, что новее, что старее, что когда вышло. гадание возможностей по версиям - это вообще дурость махровая. как и навязывание "единственно правильной нумерации".
> Расскажи нам, какая версия "вполне логично" последует за 9.9 ?ну да, 10. в чём проблема-то?
И что в ней логичного? Просто последовательность номеров версий, которая ничего не означает, уже писали выше. Что до Linux, проект развивается таким образом, что никогда не происходит крупных или, тем более, гигантских изменений, достойных повышения мажорной версии. Повысили просто для удобства, чтобы не было версий 2.6.[40,∞), Mercurial же так делает постоянно. Это логично, по-вашему?
угу-угу. «когда ядро произвольно меняет версию — это логично и удобно. а когда hg по вполне понятному алгоритму меняет версию — это нелогично, неудобно и вообще КАКОНИПОСМЕЛИ!!11111»
p.s. да, кстати, для непонятливых гениев: последовательность номеров версий означает ровно одно: версия с большим номером выпущена позже, нежели версия с меньшим номером. все остальные ваши идеи по поводу того, что — якобы — «должны обозначать номера версий», являются вашими личными фантазиями. как я уже показал, даже такой немаленький и серьёзный проект, как linux, к номерам версий относится достаточно пофигистично. «всё, 2 надоело, теперь у нас 3 будет.»
Отсортируй же
2.60.3
240
27
3.1
3.0.0
2.41
http://search.cpan.org/~edavis/Sort-Versions/
По давней традиции, здесь будет обсуждаться git.
Под "обсуждением" понимается многократное повторение:
${знакомое название} - супер! ${незнакомое_название} - для #$%ов!
За 5$ я вам напишу генератор таких обсуждений на год вперед.
Под GPL2/MIT на ваш выбор.
> Под "обсуждением" понимается многократное повторение:
> ${знакомое название} - супер! ${незнакомое_название} - для #$%ов!
> За 5$ я вам напишу генератор таких обсуждений на год вперед.
> Под GPL2/MIT на ваш выбор.а распространяться будет в git или в hg? это важно! (в тарболах не предлагать)
Вы путаете "систему управления версиями" и "метод распространения".
в наши годы это может быть одно и то же :)
Да что вы говорите, бздуны тоже путают svn с системой контроля версий.
За 5$ давай, кидай линк на реализацию, я тебе даже 10 заплачу
# -*- coding: utf-8 -*-import random
def phr():
return random.choice([
u'%s не нужен',
u'В %s это было ещё год назад',
u'%s написан непонятно на чём!',
u'От %s тупеют! И ты тому доказательство.',
u'%s? Ты бы ещё RCS предложил!',
u'%s? Это у которого ветки кривые?',
u'Это же до чего надо докатиться, чтобы использовать %s',
u'И сам ты дурак, и твой %s туда же.',
u'Не было у бабки забот, так поставила %s',
u'%s? Да ты отстал от жизни! Мир развивается, один ты сидишь и ничего не видишь.'
]) % random.choice(['git','hg'])print phr()
Нет уж, давайте хоть с марковскими цепями.
> Нет уж, давайте хоть с марковскими цепями.Ничё не знаю, пять баксов гони. Сходство - поразительное.
Не вижу в вашем коде анализа сходства.
это вообще хрень, за такое можешь пойми у ms $5 попросить
> это вообще хрень, за такое можешь пойми у ms $5 попроситьда и пофиг. зато суть отображает.
а я думал пофиксили имена файлов, сделали их UTF-8-only...
> Привычный CVS-подобный набор команд;А что, многие сейчас помнят CVS'овские команды?
>> Привычный CVS-подобный набор команд;
> А что, многие сейчас помнят CVS'овские команды?Ни дня без cvs -q up -Pd :) Хотя я их в .cvsrc прописал :)
> Ни дня без cvs -q up -Pd :) Хотя я их в .cvsrc прописал :)Настоящим джедаям и hg не помеха ;)
>Ни дня без cvs -q up -Pd :)Ваш ник всё объясняет.
нормальная система, работает - и ок. мот какой-то мега-плюшки нету, но работает и радует. хорошая новость
>OpenSolarisЧто-что? Прикрытый 5 лет назад ораклом проект в новости?
> Что-что? Прикрытый 5 лет назад ораклом проект в новости?разработчиков забыли в репозитории, и поэтому они до сих пор пишут туда патчи...
> Что-что? Прикрытый 5 лет назад ораклом проект в новости?Это питонисты. Они не тормозят :).
Вопрос залу: хочу поставить Mercurial на виндовую машину, чтобы работать с ним по защищённому каналу. Ранее были танцы с бубном по прикручиванию этого хозяйства к IIS. Использовать последний не хочу и даже нарыл инфу, что Hg имеет встроенный сервер для тех же задач! Но потом в других тырнетах попадались отзывы, что встроенный сервер - гуано, неустойчивый и даже не поддерживает SSL. Экспериментировать на важных данных - не хочу, а на неважных может не проявиться баг.
Вопрос: этот "внутренний сервер" кто-то собирается доводить до ума или опять надо прыгать вокруг сторонних продуктов?
> Вопрос: этот "внутренний сервер" кто-то собирается доводить до ума или опять надо прыгать вокруг сторонних продуктов?нет, разумеется, ибо бред. у меня внутренний сервер, например, был в ngnix завёрнут, и там уже чё хошь, приделывай - хошь авторизацию, хошь ssl, хошь ищо чё-то. нахрена всё это ещё и в hg тащить?
покрути тот же rhodecode, на предмет того, чё там есть.
>требующие высокой производительности части оформлены в виде модулей на СиЗабавно это читать, учитывая что на комментарии про тормоза питона постоянно отвечают что это неправда и python ничуть не медленнее чем C.
>>требующие высокой производительности части оформлены в виде модулей на Си
> Забавно это читать, учитывая что на комментарии про тормоза питона постоянно отвечают
> что это неправда и python ничуть не медленнее чем C.Ну не хэши же считать - это чистая математика. Кстати, там есть и С-шный и нативный вариант, если не собирать сишные - будут нативные. Можешь сравнить разницу в скорости, если тебя так это волнует.
Вообще, в python это часто используется для математики и подобных примитивных алгоритмов, которые на C реализовывать проще, а вероятность ошибок - ниже. А тот, кто пишет на python, просто использует это, и оно работает быстро... Поэтому python быстрый.
>>> Поэтому python быстрый.Спасибо, поржали. Пиши и жги ишчо!
Очень быстрый.> Test Julia GSL Shell Python
> ------------------------------------------
> fib 0.429 0.120 3.641
> parse_int 0.367 0.856 3.878
> mandel 0.911 0.171 5.727
> quicksort 0.733 1.114 14.062
> pi_sum 38.59 38.60 764.24
> rand_mat_stat 42.17 57.09 254.92
> rand_mat_mul 175.45 178.70 200.25
> printfd 66.83 74.18https://docs.google.com/presentation/d/1Gwx8rYEV1FqaqALUvnE0...
> Поэтому python быстрый.По сравнению с чем, полено? :)
>> Поэтому python быстрый.
> По сравнению с чем, полено? :)По сравнению с поленом же
Правильно. Ничуть не медленне. И именно потому, что
> требующие высокой производительности части оформлены в виде модулей на СиБольшинство либ, требующих числодробления, пишут на сях.
А если вы пытаетесь сравнивать нативный код питона (и именно рефренсной его реализации CPython) с аналогичным кодом на сях, то на фразу
> комментарии про тормоза питона постоянно отвечают что это неправда и python ничуть не медленнее чем Снеплохо бы и пруф привести. Лично я никогда не сталкивался с подобными заявлениями.
> Высокая производительность работы с хранилищем, не зависящая от числа
> элементом в нём (O(1) revlog);O(1) - понятие растяжимое, но об этом питонисты узнают как-нибудь потом :). O(1) обещает что операции как правило заканчиваются за постоянное время. Но ничего не говорит о величине этого времени и хучших случаях. Завершение всех операций за 5 минут - это тоже O(1), внезапно :).
т-с-с-с. всем известно, что O(1) — это мегакруто.
> т-с-с-с. всем известно, что O(1) — это мегакруто."Но есть некоторые нюансы" (анекдот про Петьку и Василия Ивановича).
Мозилла, кстати, медленно, но верно переходит на git.
> Выпуск 3.0 не сигнализирует о появлении кардинальных изменений или новшеств, он лишь является следствием смены первой цифры в рамках используемой проектом десятичной схемы нумерации, в соответствии с которой после 2.9 следует версия 3.0, а не 2.10.что за фигня. кто придумал этот бред с десятичной схемой..?
а если в "Firefox-29" вставить точку между "2" и "9" --- типа "Firefox-2.9" --- то кому от этого станет легче?
Это поколение такое. Которое думает, что прикопавшись к версии, оно решает жизненно важную проблему. Подмена сознания, вызванная нервным истощением.
А что лично ты решил прикопавшись к поколению, болезный?
> А что лично ты решил прикопавшись к поколению, болезный?Я констатирую. Если факт повторяется из раза в раз, то это факт.
А спорить с подобными дебилами бесполезно. Если у нас, нормальных людей, смысл в нормальном существовании, то у подобных - смысл спора в споре. Позиции у них нет, поэтому свою точку зрения они могут крутить, как им угодно, и будут прикапываться ко всему, что видят. И это именно проблема поколения, культура потери ориентиров и замены их "сурргатами крутости". И то, что никакой крутости им от этого не прибавляется, что таких "самых умных" - каждый первый бесит их ещё больше, и они начинают закапываться во всё больше крайности.
Что тут поделаешь. Или отойти в сторонку и наблюдать, или просто воспринимать, как неизбежное зло. Потому что этот пузырь нереализованных амбиций рано или поздно лопнет.