svn система Популярность Git/Mercurial/Bazaar против которой рекомендуется



сервисы контроля версий (8)

Исходя из количества вопросов на этом сайте для этих трех распределенных систем управления версиями, похоже, что Git либо

  1. является более популярным или
  2. (что требует больше вопросов), или
  3. имеет больше возможностей (поэтому требуется больше вопросов).

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

                | Jun 2009 | Jul 2010 | Jul 2011 | Jul 2012 | Jul 2013 | Jul 2014 | Jul 2015 | Jul 2016 | Jun 2017
    ---------------------------------------------------------------------------------------------------------------
    [svn]       |     2353 |     5323 |     9028 |    12687 |    15587 |    18846 |    21209 |    23037 |    24692
    [git]       |      726 |     3725 |     9225 |    17523 |    27862 |    41478 |    55315 |    71056 |    86958
    [mercurial] |      169 |     1120 |     2765 |     4221 |     5230 |     6030 |     6651 |     7134 |     7524
    [bazaar]    |       50 |      159 |      252 |      351 |      425 |      483 |      506 |      525 |      534

Это не совсем удовлетворительно, когда есть три конкурирующих, но в основном эквивалентных продукта с открытым исходным кодом. Лично я использую Git, и я в порядке с двумя другими. Но когда дело доходит до рекомендации одной системы над другими, я хотел бы спросить: можем ли мы еще раз рекомендовать одну?

Комментарии с середины 2009 года : недавняя историческая популярность Subversion четко отражается на количестве вопросов, указывающих, по крайней мере, небольшое опрокидывание шкал в сторону Git над Mercurial или Bazaar.

Комментарии с середины 2010 года . Посмотрите на это огромное относительное увеличение числа Mercurial. Очевидно, только двух точек данных недостаточно, чтобы показать тенденцию, но похоже, что Git и Subversion в значительной степени укоренились, Mercurial видел большой рост, а Bazaar оставался относительно спокойным.

Краткий комментарий, середина 2011 года . Можно ли назвать Git победителем? :) Нет, я согласен с тем, что количество вопросов не эквивалентно популярности. Числа уверены, что сильны.

https://ffff65535.com


Исходя из количества вопросов на этом сайте для этих трех распределенных систем управления версиями, похоже, что Git либо

  1. является более популярным или
  2. (что требует больше вопросов), или
  3. имеет больше возможностей (поэтому требуется больше вопросов).
  1. О популярности SCM - см. Следующий вопрос : есть ли статистика популярности / использования для бесплатных систем RCS / SCM / VCS? , Здесь у нас есть вопросы, как набор игнорируемых файлов для конкретного проекта, которые являются SCM-агностиками, но их просят использовать Git (и использовать тег git), потому что именно этот вопрос задал вопрос.

  2. О Git становится более сложным (и, следовательно, имея больше вопросов о SO) - конечно, Git имеет более крутую кривую обучения. Он также использует несколько (совершенно) уникальных концепций, таких как область постановки (индекс) или все ветви, равные, которые отвечают за ее мощность, но могут быть трудно получить сразу (особенно если кто-то приходит из другого SCM) , Также Git UI не совсем согласован (хотя он становится лучше), потому что он вырос, а не развит; который отвечает за его мощность, но может привести к субоптимальному пользовательскому интерфейсу.

  3. О Git, имеющем больше возможностей - вам нужно будет проверить, сколько SO вопросов касается продвинутых / необычных функций Git. Однако вы должны знать, что проекты с открытым исходным кодом заимствуют идеи друг от друга или имеют схожие функции, разработанные независимо: один пример - поиск ошибок путем дебитации (поиска) истории для фиксации, которая ввела ошибку, которая была (насколько мне известно) сначала в Git, а затем реализована как плагин в Bazaar, а также первая расширительная и в настоящее время основная функциональность в Mercurial. Другим будет интерактивный выбор фрагментов изменений для фиксации, вдохновленный поведением Даркса. Еще одна идея Git's bundle, взятая из аналогичной концепции в Mercurial.

  4. Еще одна возможность источника большего количества вопросов SO может заключаться в отсутствии хорошей документации ... хотя теперь это становится лучше с Git User's Manual (распространяется вместе с Git) и Git Community Book (находится на главной странице Git). Тем не менее, существует постоянный мем, что у Git хуже документации, чем, скажем, Subversion с ее контролем версий с Subversion (также известный как svnbook ) и Mercurial: The Definitive Guide (также известный как hg-book ) ... и люди не читают документацию, прежде чем задавать вопрос о , иногда.

Это не совсем удовлетворительно, когда есть три конкурирующих, но в основном эквивалентных продукта с открытым исходным кодом. Лично я использую Git, и я в порядке с двумя другими. Но когда дело доходит до рекомендации одной системы над другими, я хотел бы спросить: можем ли мы еще раз рекомендовать одну?

Ну, Git и Mercurial были разработаны независимо, начиная примерно с того же времени, в ответ на прекращение бесплатной лицензии для BitKeeper для использования разработчиками ядра Linux в качестве замены для нее. Subversion не могло быть и речи, поскольку централизованный SCM, с отсутствием поддержки (тогда) в ядре для отслеживания слияния; это сделало его совершенно непригодным для широко распространенной модели разработки ядра Linux. Базар был, вероятно, слишком медленным (по крайней мере, тогда), и немного на централизованной стороне (я думаю).

Git более мощный (на мой взгляд), Mercurial проще (по мнению людей) и немного более портативен (Python); Git является сценарием и основан на модели данных, позволяющей выполнять независимые повторные реализации (см., Например, JGit, git, написанные на Java), в то время как Mercurial имеет привязки Python для написания расширений и в основном основан на API, позволяющем изменять базовый формат репозитория (revlog - revlog-ng ) ... но это только мое предположение. Они заполняют несколько разных ниш.

Кроме того, у вас нет выбора, который считается хорошим? У нас есть KDE, и у нас есть GNOME и XFCE (и другие оконные менеджеры и настольные приложения); у нас есть Emacs и Vim (и другие редакторы программистов); у нас есть rpm-based (например, Fedora Core, Mandriva, SuSE) и deb-based (Debian, Ubuntu) и tgz-based (Slackware) и основанные на источниках (Gentoo) дистрибутивы; у нас есть KWord, AbiWord и OpenOffice.org ... и у нас есть Git, Mercurial и Bazaar.


Canonical (Ubuntu) отслеживает использование пакета программного обеспечения для своего дистрибутива, поэтому нет необходимости полагаться на количество проблем с Stack Exchange для измерения популярности. Однако, как отмечали другие, это только треки пользователей Ubuntu и Canonical (Ubuntu) использует и рекомендует bzr (выборочное смещение). Тем не менее ...

            2011    2011    2011           
Package     Aug 3   Sep 29  Dec 9   Change 
------      ------  ------  ------  ------ 
git-core    3647    3402    3236    -11%   
bzr         4975    5286    6070    +22%   
mercurial   3411    3387    3461     +1%   

Снижение голосов за пакет git-core заставляет меня думать, что я сделал что-то не так, как grep неправильное имя пакета из таблицы популярности ubuntu. Или, может быть, даже этот подсчет «голосов» связан с установками, а не с фактическим использованием программного обеспечения.

Вот некоторые исторические данные для трендов. Я использовал статистику <install> а не <vote> из Ubuntu в этой таблице, но в 2011 году он показывает всплеск роста в Bazaar и Mercurial. Тем не менее, bzr был позади git в 2011 году, но последние данные за 2011 год показывают, что это передал git в общих установленных экземплярах (на Ubuntu).

        June    Aug     Dec     Growth  Oct   Growth
        2010    2011    2011            2013 
----    -----   ----    ----    ------  ----  ------
git      94k    159k    171k      80%   165k   -3.5%
bzr      52k    121k    135k     160%   170k   26.0%
hg       36k     68k     75k     110%    95k   26.7%

Discalaimer: Я использовал bzr на Ubuntu до 2012 года, когда работал над командами, которые использовали git исключительно. Bzr отлично Bzr со всеми другими VCS, позволяя использовать последовательный, интуитивно понятный синтаксис командной строки bzr. Мой переход к git был для социальных, а не технических причин.



Ну, причина в том, что у git столько пользователей, что ядро ​​Linux использует его, поэтому, если вы хотите заниматься разработкой Linux, вы используете git.

Поскольку так много людей связано с git, я бы рекомендовал использовать git, просто из-за большей базы пользователей. Фактически, цифры, которые вы показываете выше, являются явным признаком этого.

Что касается трудности, все управление версиями сложно, особенно распределенный. SVN и CVS были не совсем легкими (для меня как минимум) на первый взгляд. Это всего лишь часть необходимой кривой обучения для использования в системе контроля версий.

EDIT: Поскольку вы добавили ссылку на subversion, я решил, что я обратился к ней. Я думаю, что большинство людей будут использовать svn, потому что для него есть всевозможные графические интерфейсы. В общем, люди ненавидят использовать командную строку, включая некоторых разработчиков. git обычно не очень хорошо работает в Windows (или, по крайней мере, не так легко). Поскольку многие люди в Windows, это убивает количество потенциальных пользователей.

Кроме того, я думаю, что концепции SVN немного легче понять, поскольку svn использует центральный репозиторий, а не распределенную систему. Легче понять: «Вот большая гора кода, пожалуйста, добавьте здесь свой код», чем «Вот какой-то код, мой может отличаться от его, его от нее, но вы можете что-то добавить, если хотите».

На мой взгляд, svn имеет гораздо лучшую систему документации. Документация git нацелена на немного более высокий уровень знаний (программы, а не на программистов), и поэтому имеет смысл после использования системы, но при первом запуске она выглядит как кучка gobbeldy-gook.

В целом, я думаю, что svn является и будет всегда более распространенным, потому что его общие эксплуатационные концепции легче понять, инструменты просты в использовании, и он имеет прекрасную поддержку в Windows.

Позвольте мне закончить мои последние два цента, хотя и сказать, что я предпочитаю git, потому что я думаю, что это намного мощнее, чем любая другая система, которую я использовал. Восхождение на кривую обучения определенно окупается, как только вы начинаете понимать программу лучше.


По моему опыту, судя по количеству вопросов, заметно ухудшается сравнение с git и против Mercurial. Причина двоякая:

  1. Посмотрите на hg update --help сравнению с git checkout -h и git --help checkout . С Mercurial я редко встречал вопросы, на которые не ответил несколько взглядов на hg help .

  2. Проверьте Mercurial Wiki - если вам нужна помощь , вы, скорее всего, найдете ее там , включая множество подсказок и трюков: http://mercurial-scm.org/wiki/TipsAndTricks


Поскольку происхождение социального кодирования с Git в GitHub , Git, похоже, привлек много последователей.


Я использую и рекомендую меркуриальные

  • а не подрывной деятельности, поскольку он поддерживает распределенную разработку. Я могу работать на нескольких машинах и совершать локально. Вы не можете сделать это с помощью подрывной деятельности, по крайней мере, не с кувырками, как с дополнительными репозиториями
  • а не базар, потому что поддержка окон на базаре ... ну.
  • а не git, потому что он: a) проще учиться и использовать, и б) поддержка окон намного лучше

Я обычно не пост, но ..

Я пробовал git, bzr и несколько других, которых я забыл, и нашел, что bzr имеет очень слабый момент. Для больших файлов он настаивает на загрузке всего файла в память. Это создает проблемы для больших двоичных файлов.

В этом отношении Гит был намного лучше. Что касается трудности. Я использую git в окнах из git bash. Работает отлично и учится менее чем за неделю (включая фактическую работу и эксперименты с другими VCS)





bazaar