The OpenNET Project / Index page

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

Вышла распределённая система управления версиями Mercurial 2.8

04.11.2013 21:53

Представлен релиз распределённой системы управления версиями Mercurial 2.8. Код Mercurial написан на языке Python (требующие высокой производительности части оформлены в виде модулей на Си) и распространяется под лицензией GPLv2+. Среди проектов, использующих Mercurial, можно выделить OpenSolaris, NetBeans, OpenJDK, ALSA, Mozilla, Nginx, Xine, Dovecot, NTFS-3G, Python, Vim и W3C. Из изменений можно отметить реализацию в web-интерфейсе поддержки использования синтаксиса revset при поиске; добавление файла конфигурации для использования TLS или SSLv23; новое дополнение shelve для сохранения/восстановления save/restore рабочих изменений.

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

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


  1. Главная ссылка к новости (http://mercurial.selenic.com/w...)
  2. OpenNews: Проект Xen перешёл с Mercurial на Git
  3. OpenNews: Проект nginx перешёл с использования Subversion на Mercurial
  4. OpenNews: Релиз распределённой системы управления версиями Mercurial 2.3
  5. OpenNews: Релиз распределённой системы управления версиями Mercurial 2.2
  6. OpenNews: Проект OpenOffice.org переходит на систему управления версиями Mercurial
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/38336-mercurial
Ключевые слова: mercurial
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (40) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 21:59, 04/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Обожаю Mercurial и TortoiseHg, но... они пофиксили переименование файла?
     
  • 1.2, Аноним (-), 22:03, 04/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ребят, кто использовал и чем оно субъективно лучше гита?
     
     
  • 2.3, хрюкотающий зелюк (?), 22:18, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • +5 +/
    (надеюсь ты не тролль) По моим ощущениям, простая и логичная система команд, всё просто работает, идеальный GUI для всех ОС.

    Когда надо что-то в гите сделать - ты роешь кучу мануалов, и оно с десятого раза заработает как надо. А меркуриал - идеология в том что "всё должно работать так как ожидает того пользователь" - в общем, так и есть.

     
     
  • 3.7, Аноним (-), 22:57, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Когда надо что-то в гите сделать - ты роешь кучу мануалов,

    Я не рою. Он просто ведет себя так как должна себя вести DVCS. А не позорная мимикрия под "я тут типа SVN с парой добавочных плюшек". Просто используя гит надо осознать как выглядит модель распределенной разработки. И тогда все будет весьма просто и логично.

     
     
  • 4.9, хрюкотающий зелюк (?), 23:01, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Я не рою. Он просто ведет себя так как должна себя вести DVCS. А не позорная мимикрия под "я тут типа SVN с парой добавочных плюшек". Просто используя гит надо осознать как выглядит модель распределенной разработки. И тогда все будет весьма просто и логично.

    И я не рою - просто Mercurial работает. Как МНЕ надо и так, как я этого ожидаю.

     
  • 4.11, iZEN (ok), 23:06, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Чем опасен rebase, или как получилось, что 2*3=5: http://habrahabr.ru/post/179123/
    Ещё раз о «Mercurial против Git» (с картинками): http://habrahabr.ru/post/123700/
    Полезности Mercurial: http://habrahabr.ru/post/188418/
     
     
  • 5.16, vitalif (ok), 23:15, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Чем опасен rebase, или как получилось, что 2*3=5: http://habrahabr.ru/post/179123/

    Это в тему гита что ли? А причём тут он-то? Типа на меркуриале ребейз не сделаешь шо ле?

    > Ещё раз о «Mercurial против Git» (с картинками): http://habrahabr.ru/post/123700/
    > Полезности Mercurial: http://habrahabr.ru/post/188418/

    Ну да, только перманентные ветки - это одновременно главный недостаток. Потому что а) всё это гуано к себе приходится тянуть и оно всё время маячит перед глазами, а в гите всякие стародревние тестовые ветки можно чик-чик pи готово; и б) невозможно тянуть из нескольких репозиториев с переименованием веток. Вот hg'шники и изгаляются в итоге - то переименование веток изобретают, то evolve, то bookmark'и...

     
     
  • 6.18, Пиу (ok), 23:23, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > а) всё это гуано к себе приходится тянуть и оно всё время маячит перед глазами

    зачем вы коммитаете "гуано" в репозиторий?

     
     
  • 7.28, angra (ok), 01:10, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если задаете такие вопросы, значит либо не используйте полноценно dvcs, либо делаете очень незначительные правки.


     
     
  • 8.29, Пиу (ok), 01:42, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а не могли бы вы раскрыть своё утверждение ... текст свёрнут, показать
     
     
  • 9.38, 1 (??), 08:30, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    очевидно нет, он занят написанием гуано для очередного коммита ... текст свёрнут, показать
     
  • 7.45, arisu (ok), 14:15, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> а) всё это гуано к себе приходится тянуть и оно всё время маячит перед глазами
    > зачем вы коммитаете «гуано» в репозиторий?

    тебе не понять, иди отлаживай свой падучий приветмир.

     
  • 6.19, Аноним (-), 23:25, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > а) всё это гуано к себе приходится тянуть и оно всё время маячит перед глазами

    История есть история.

    А переписыватели истории плохо кончают, как историей же было показано.

     
  • 4.22, develop7 (ok), 23:36, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я не рою.

    И я. Просто гуглю "git что_мне_надо_сделать" и в первом результате ответ на stackoverflow.

     
  • 4.30, iZEN (ok), 01:47, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Просто используя гит надо осознать как выглядит модель распределенной разработки.

    Модель разработки в Git как SVN в конечном итоге выглядит.

    А в Mercurial работают с лесами, как показывает проект OpenJDK: http://www.youtube.com/watch?v=_Z934djQtiQ

     
     
  • 5.41, annulen (ok), 12:47, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >А в Mercurial работают с лесами

    git submodule? нет, не слышали

     
     
  • 6.43, develop7 (ok), 12:57, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    я, конечно, понимаю, что git — родина слонов и всё такое прочее, но домашнее задание было бы неплохо делать *прежде* чем заявлять чушь, опровергаемую одной ссылкой (http://mercurial.selenic.com/wiki/Subrepository)

    что особенно забавно, поддерживаются также репозитории Git — http://mercurial.selenic.com/wiki/Subrepository#Git_subrepositories

     
  • 3.23, ip1981 (ok), 23:42, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Сравнивать git и hg можно только по одному критерию: policy прибита гвоздями или нет?

    Git и Hg - это как X Window и GTK

     
     
  • 4.33, Аноним (-), 02:23, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Git и Hg - это как X Window и GTK

    Всмысле первое работает везде, а второе в некоторых случаях выглядит как гуано и ломает совместимость между версиями?

     
  • 2.8, Аноним (-), 22:58, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Ребят, кто использовал и чем оно субъективно лучше гита?

    Жрет вагон памяти и тормозит на больших иерархиях. Производители процессоров и памяти одобряют.

     
  • 2.27, _dm_ (?), 00:56, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тут обычно многое упоминают, работать можно и с тем и с другим либо с обоими од... большой текст свёрнут, показать
     
     
  • 3.39, vn971 (ok), 09:23, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    gitk --all
    gitg  # в тулбаре выбрать Branches: All Branches

    (Лично я не пользуюсь, но)при работе через IDE разница между hg и git тоже будет минимальна.

     
  • 3.42, annulen (ok), 12:49, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Безымянные ветки гит соответственно тоже не
    > поддерживает. Таковые, как я понимаю, попадут под сборщик мусора. Возможно поэтому
    > гите так любят линейность истории и перебазирование.

    Нет, просто мы любим порядок, а также предпочитаем, чтобы конфликты разрешал автор патча, а не человек, делающий мерж.

    > В hg во многих интерфейсах (веб, тортойс, glog, сторонние) отображается не просто
    > текущая ветка, а дерево (граф) веток.

    git log --graph


     
     
  • 4.44, develop7 (ok), 13:00, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > предпочитаем, чтобы конфликты разрешал автор патча, а не человек, делающий мерж

    не вопрос, hg rebase присутствует в коробке

     
  • 2.32, all_glory_to_the_hypnotoad (ok), 02:23, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    семьпицот раз уже задавали этот вопрос везде. Ничем.
     

  • 1.4, Аноним (-), 22:27, 04/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Оно всё ещё требует немеренной оперативки при работе с большими файлами?
    В достоинствах не увидел лёгких бранчей (без копирования файлов), таки нету?
     
     
  • 2.5, Аноним (-), 22:33, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    есть аналог - закладки: http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/#branchin
     
     
  • 3.12, vitalif (ok), 23:07, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Я вот кстати долго на меркуриале жил, но на обычных ветках. И, собственно, пожив на перманентных ветках - понял, чем они плохи и почему их в гите таки нет. И зачем, собственно, нужны tracking branches.

    Но когда я это всё понял - просто перешёл на гит, так и не попробовав букмарки. А тем временем интересно - раз в меркуриале есть лёгкие ветки, там ДОЛЖЕН быть и tracking. Или нет? А если нет - как же там работать с апстримом-то? Вот допустим твой локальный букмарк ушёл вперёд на пару коммитов, и апстрим тем временем тоже ушёл вперёд, история разошлась. Но если нет tracking'а, то букмарк-то один, и не трогая ничего, обновлённый апстримный букмарк записать некуда. Получается что, в момент pull обязательно должно произойти слияние? Или там всё-таки тоже есть что-то типа master + remotes/origin/master?

     
  • 2.15, Пиу (ok), 23:14, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    в меркуриале есть три типа бранчей:
    1. анонимные
    2. именованные
    3. закладки
    ни один из них не требует копирования патчей
     
  • 2.24, Аноним (-), 00:37, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Распределённая система управления версиями не для бинарников, и тем более не для огромных бинарников. Она для исходного кода.
     

  • 1.6, iZEN (ok), 22:41, 04/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Ура!
     
  • 1.10, Пиу (ok), 23:03, 04/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    мл***! зачем мне описание его достоинств (я их и так знаю, а потому и использую hg), вместо описания новых фич? распишите плз, что нового и вообще.
     
     
  • 2.13, vitalif (ok), 23:08, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    +1
     
  • 2.21, Аноним (-), 23:36, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    видимо их нет, и чтобы новость не казалось скучной и короткой... )
     

  • 1.14, Аноним (-), 23:12, 04/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто скажет, пространства имён для веток (или хотя бы букмарков) уже появились?

    Например, как мне получить diff между веткой some_experimental_feature в апстриме на bitbucket и веткой some_experimental_feature в репозитории "вон того чудика с googlecode", при этом не трогая ветку some_experimental_feature в своём локальном репозитории?

     
     
  • 2.20, Аноним (-), 23:35, 04/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Укажи явно номера коммитов, ёпт. Не надо усложнять сущности без необходимости.
     
     
  • 3.25, Аноним (-), 00:39, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я хочу кликнуть мышкой и получить красивые графики. Чо в этом плохова?
     
  • 2.26, develop7 (ok), 00:54, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Кто скажет, пространства имён для веток (или хотя бы букмарков) уже появились?
    > Например, как мне получить diff между веткой some_experimental_feature в апстриме на bitbucket и веткой some_experimental_feature в репозитории "вон того чудика с googlecode", при этом не трогая ветку some_experimental_feature в своём локальном репозитории?

    hg pull в худшем случае просто добавит ветке some_experimental_feature +1 голову (head). Сами разберётесь, где ваши коммиты, а где нет?

    ну и потом hg incoming https://code.google.com/p/choodeek_forrrkk/ --branch=some_experimental_feature

     

  • 1.47, Аноним (-), 15:09, 05/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не гит конечно, но всё-равно слишком сложно - darcs куда проще и удобнее.
     
     
  • 2.48, Аноним (-), 16:27, 05/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Соска ещё проще, попробуй.
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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