Каковы относительные достоинства и недостатки Мерзавца, Подвижного, и Базар? [закрытый]

У вас есть эта опция также:

type Configuration struct {
        Val string
        Proxy
}

type Proxy struct {
        Address string
        Port    string
}

func main() {
        c := &Configuration{"test", Proxy{"addr", "port"}}
        fmt.Println(c)
}
136
задан Hank Gay 17 September 2008 в 09:52
поделиться

16 ответов

Мерзавец очень быстр, масштабируется очень хорошо и очень прозрачен о его понятиях. Вниз сторона этого - то, что это имеет относительно крутую кривую обучения. Порт Win32 доступен, но не совсем первоклассный гражданин. Мерзавец выставляет хеши как номера версий пользователям; это обеспечивает гарантии (в этом, единственный хеш всегда относится к тому же самому содержанию; взломщик не может изменить историю, не будучи обнаруженным), но может быть громоздким пользователю. У мерзавца есть уникальное понятие отслеживания содержания файла, как раз когда то содержание перемещается между файлами, и просматривает файлы как объекты первого уровня, но не отслеживает каталоги. Другая проблема с мерзавцем, это начинает много операций (такой как переоснова ), которые помогают изменить историю (в некотором смысле - содержание, упомянутое хешем, никогда не будет изменяться, но ссылки на тот хеш могут быть потеряны); некоторым пуристам (самостоятельно включенный) не нравится так очень.

Базар довольно быстр (очень быстро для деревьев с мелкой историей, но в настоящее время масштабируется плохо с длиной истории), и является легко изучаемым знакомым с интерфейсами командной строки традиционного SCMs (CVS, SVN, и т.д.). Win32 считает первоклассной целью ее группа разработчиков. Это имеет сменную архитектуру для различных компонентов и часто заменяет ее формат устройства хранения данных; это позволяет им представлять новые возможности (такие как лучшая поддержка интеграции с системами управления версиями на основе различных понятий) и улучшать производительность. Команда Базара рассматривает отслеживание каталога, и переименуйте поддержку первоклассная функциональность. В то время как глобально уникальные идентификаторы идентификатора пересмотра доступны для всех изменений, древовидно-локальный revnos (стандартные числа пересмотра, более сродни используемым svn, или другой более стандартный SCMs) используются вместо довольного хеши для идентификации изменений. Базар имеет поддержку "легкого контроля", в котором история сохранена на удаленном сервере вместо копируемого к локальной системе и автоматически упомянута по сети при необходимости; в настоящее время это уникально среди DSCMs.

Оба имеют некоторую форму в наличии интеграции SVN; однако, bzr-svn значительно более способен, чем мерзавец-svn, в основном из-за изменений формата бэкенда, представленных с этой целью. [Обновление, по состоянию на 2014: сторонний коммерческий SubGit продукта обеспечивает двунаправленный интерфейс между SVN и Мерзавцем, который сопоставим в точности bzr-svn и значительно более полируется; я сильно рекомендую его использование по тому из мерзавца-svn когда бюджет и лицензирование ограничительного разрешения].

я не использовал Подвижный экстенсивно и так не могу прокомментировать его подробно - кроме отметить, что это, как Мерзавец, имеет довольную хэш-адресацию для изменений; также как Мерзавец, это не рассматривает каталоги как первоклассные объекты (и не может сохранить пустой каталог). Это, однако, быстрее, чем какой-либо другой DSCM за исключением Мерзавца, и имеет намного лучшую интеграцию IDE (специально для Eclipse), чем любой из его конкурентов. Учитывая его рабочие характеристики (которые отстают незначительно позади тех из Мерзавца) и его межплатформенный начальник и поддержка IDE, Подвижная, может быть востребовано для, подходит к значительному числу win32-центральных или ограниченных IDE членов.

Одно беспокойство в миграции от SVN - то, что GUI SVN frontends и интеграция IDE являются более сформировавшимися, чем те из любого из распределенных SCMs. Кроме того, при текущем создании интенсивного использования из автоматизации сценария перед фиксацией с SVN (т.е. модульные тесты требования для передачи, прежде чем фиксация сможет продолжиться), Вы, вероятно, захотите использовать инструмент, подобный , PQM для автоматизации слияния запрашивает к Вашим общим ответвлениям.

SVK является DSCM, который использует Подверсию в качестве ее запоминающего устройства и имеет довольно хорошую интеграцию с SVN-центральными инструментами. Однако это имеет существенно худшую производительность и характеристики масштабируемости, чем какой-либо другой главный DSCM (даже Darcs), и должно избежаться для проектов, которые склонны стать большими или с точки зрения длины истории или с точки зрения количества файлов.

[Об авторе: Я использую Мерзавца и По необходимости для работы и Базара для моих персональных проектов и как встроенная библиотека; другие части организационного использования моего работодателя, Подвижного в большой степени. В предыдущей жизни я создал большую автоматизацию вокруг SVN; перед этим у меня есть опыт с Дугой GNU, BitKeeper, CVS и другими. Мерзавец был довольно нерасполагающим сначала - было похоже на Дугу GNU, поскольку, будучи тяжелой понятием средой, в противоположность инструментариям, созданным для приспосабливания выбору пользователем рабочих процессов - но я с тех пор стал довольно довольным им].

143
ответ дан 23 November 2019 в 23:40
поделиться

На git есть хорошее видео Линуса Торвальдса. Он является создателем Git, так что это то, что он продвигает, но в видео он объясняет, что такое распределенные SCM и почему они лучше, чем централизованные. Существует много сравнений между git (mercurial считается нормальным) и cvs / svn / Perforce. Есть также вопросы от аудитории относительно перехода к распределенному SCM.

Я нашел этот материал поучительным, и я продан распределенному SCM. Но, несмотря на старания Линуса, мой выбор - ртутный. Причина в bitbucket.org, я нашел его лучше (более щедрым), чем github.

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

http: // www. youtube.com/watch?v=4XpnKHJAok8

1
ответ дан 23 November 2019 в 23:40
поделиться

Распределенные системы управления версиями (DVCSs) решают различные проблемы, чем Централизованный VCSs. Сравнение их похоже на сравнение молотков и отверток.

Централизованный VCS системы разработаны с намерением, что существует Один Истинный Источник, который Благословлен и поэтому Хороший. Все разработчики работают (контроль) из того источника и затем добавляют (фиксируют) их изменения, которые затем становятся столь же Счастливыми. Единственная реальная разница между CVS, Подверсией, ClearCase, По необходимости, VisualSourceSafe и всеми другими CVCSes находится в рабочем процессе, производительности и интеграции, которую предлагает каждый продукт.

Распределенный VCS системы разработаны с намерением, что один репозиторий так же хорош как любой другой, и это объединяется от одного репозитория до другого, просто другая форма общения. Любое семантическое значение, относительно которого нужно доверять репозиторию, наложено с внешней стороны процессом, не самим программным обеспечением.

реальный выбор между использованием одного типа или другого является организационным - если Ваш проект или организация хотят централизованное управление, то DVCS является обреченным на неудачу. Если Ваши разработчики, как ожидают, будут работать на всем протяжении страны/мира без безопасных широкополосных соединений с центральным репозиторием, то DVCS является, вероятно, Вашим спасением. При необходимости в обоих Вы - fsck'd.

0
ответ дан 23 November 2019 в 23:40
поделиться

ddaa.myopenid.com упомянул это мимоходом, но я думаю, что это стоит упомянуть снова: Базар может читать и записать в удаленные репозитории SVN. Это означает, что Вы могли использовать Базар локально в качестве подтверждения концепции, в то время как остальная часть команды все еще использует Подверсию.

РЕДАКТИРОВАНИЕ: В значительной степени весь инструмент теперь имеет приблизительно способ взаимодействовать с SVN, но у меня теперь есть личный опыт что git svn работы чрезвычайно хорошо. Я использовал его в течение многих месяцев с минимальными отклонениями.

1
ответ дан 23 November 2019 в 23:40
поделиться

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

1
ответ дан 23 November 2019 в 23:40
поделиться

, Что люди здесь рассматривают как относительные достоинства и недостатки Мерзавца, Подвижного, и Базар?

Это - очень нерешенный вопрос, гранича flamebait.

Мерзавец является самым быстрым, но все три достаточно быстры. Базар является самым гибким (он имеет прозрачную поддержку чтения-записи репозиториев SVN), и заботится много о пользовательском опыте. Подвижный находится где-нибудь в середине.

Все три системы имеют много фанатов. Я - лично фанат Базара.

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

Первый - распределенные системы. Последние являются централизованными системами. Кроме того, По необходимости является собственным, в то время как все, другие свободны как в речи .

, Централизованной по сравнению с децентрализованным, является намного более важным выбором, чем любая из систем, Вы упомянули в его категории.

В планировании миграции от SVN до одной из этих распределенных систем управления версиями, какие факторы Вы рассмотрели бы?

Первый, отсутствие хорошей замены для TortoiseSVN. Хотя Базар работает над их собственным вариант Черепахи , но это еще не там, по состоянию на сентябрь 2008.

Затем обучение ключевые люди о том, как использование децентрализованной системы собирается влиять на их работу.

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

1
ответ дан 23 November 2019 в 23:40
поделиться

Базар, по моему скромному мнению, легче изучить, чем мерзавец. У мерзавца есть хорошая поддержка в github.com.

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

1
ответ дан 23 November 2019 в 23:40
поделиться

Sun сделал оценку мерзавец , Подвижный , и Базар как кандидаты для замены VCS Sun Teamware для кодовой базы Соляриса. Я нашел это очень интересным.

5
ответ дан 23 November 2019 в 23:40
поделиться

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

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

1
ответ дан 23 November 2019 в 23:40
поделиться

Я использовал Базар некоторое время, который мне понравилось много, но это были только меньшие проекты, и даже затем это было довольно медленно. Настолько легкий учиться, но не супер быстро. Это - очень x-платформа все же.

я в настоящее время использую Мерзавца, который мне нравится много, так как версия 1.6 сделала это намного более подобным другому VCS с точки зрения команд для использования.

я думаю, что основные отличия для моего опыта в использовании DVCS являются этим:

  1. у Мерзавца есть самое вибрирующее сообщество, и распространено видеть статьи о Мерзавце
  2. , GitHub действительно качается. Launchpad.net в порядке, но ничто как удовольствие Github
  3. количество инструментов рабочего процесса для Мерзавца не было большим. Это интегрируется повсеместно. Существуют некоторые для Bzr, но совсем не как многие или также сохраняются.

, Таким образом, Bzr был большим, когда я получал первый опыт в DVCS, но я теперь очень счастлив с Мерзавцем и GitHub.

2
ответ дан 23 November 2019 в 23:40
поделиться

Подвижный и Базар напоминают себя очень на поверхности. Они оба обеспечивают основное распределенное управление версиями, как в офлайновой фиксации и объединяющий несколько ответвлений, и записаны в Python и оба медленнее, чем мерзавец. Существует много различий, после того как Вы копаетесь в коде, но для Ваших стандартных ежедневных задач они - эффективно то же, хотя Подвижный, кажется, имеет немного больше импульса.

Мерзавец, ну, в общем, не для непосвященного. Это намного быстрее и, чем Подвижный и, чем Базар и было записано для управления ядром Linux. Это является самым быстрым из трех, и это является также самым мощным из этих трех вполне полем. Журнал мерзавца и инструменты управления фиксацией несопоставлены. Однако это является также самым сложным и самым опасным использовать. Очень легко потерять фиксацию или разрушить репозиторий, особенно если Вы не понимаете внутренние работы мерзавца.

7
ответ дан 23 November 2019 в 23:40
поделиться
14
ответ дан 23 November 2019 в 23:40
поделиться
<час>
, Что люди здесь рассматривают как относительные достоинства и недостатки Мерзавца, Подвижного, и Базар?

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

Это имеет некоторые функции, которые полезны, но прилагают некоторые усилия, которые привыкнут к ним. Они включают видимый промежуточное звено, подготавливающее ara (индекс) между рабочей областью и хранилищем данных, которое допускает лучшее разрешение слияния в более сложных случаях, возрастающей фиксации и фиксации с грязным деревом; обнаружение переименовывает и копии с помощью эвристики подобия вместо того, чтобы отследить их использующий некоторые идентификаторы файла, который работает хорошо и которые допускают вину (аннотируют), который может следовать за перемещением кода через файлы и не, только оптовая торговля переименовывает.

Один из его недостатков - то, что поддержка MS Windows отстает и не полна. Другой воспринятый недостаток - то, что это также не документируется что касается Подвижного примера, и менее удобно для пользователя, чем конкуренция, но это изменяется.

, По-моему Подвижный сила находится в своей хорошей производительности и небольшом размере репозитория в ее хорошей поддержке MS Windows.

основной недостаток является, по-моему, тем, что локальные ответвления (несколько ответвлений в едином репозитории) являются все еще второразрядным гражданином, и странным и сложным способом, которым он реализует теги. Также способ, которым это имеет дело с файлом, переименовывает, было субоптимальным (но это, возможно, изменилось). Подвижный не поддерживает слияния разветвителя (больше чем с двумя родителями).

Из того, что я услышал и читал основной Базар , преимущества - он легкая поддержка централизованного рабочего процесса (который является также недостатком с централизованными понятиями, видимыми, где он не был должен), отслеживание переименовывает и файлов и каталогов.

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

Мерзавец записан в C, сценариях оболочки и Perl, и scriptable; Подвижный записан в C (ядро, для производительности) и Python, и обеспечивает API для расширений; Базар записан в Python и обеспечивает API для расширений.

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

Системы управления версиями как Подверсия (SVN), По необходимости, или ClearCase , централизовал системы управления версиями. Мерзавец, Подвижный, Базар (и также Darcs, Монотонность и BitKeeper), , распределил системы управления версиями. Распределенные системы управления версиями допускают намного более широкий диапазон рабочих процессов. Они позволяют использовать, "публикуют когда готовый". У них есть лучшая поддержка того, чтобы перейти и объединиться, и тяжелых ответвлением рабочих процессов. Вы не должны доверять людям доступ фиксации, чтобы смочь получить вклады от них в простом способе.

<час>
В планировании миграции от SVN до одной из этих распределенных систем управления версиями, какие факторы Вы рассмотрели бы?

Одним из факторов, которые Вы могли бы хотеть рассмотреть, является поддержка inetracting с SVN; у Мерзавца есть мерзавец-svn, Базар имеет bzr-svn, и Подвижный имеет hgsubversion расширение.

Правовая оговорка: я - пользователь Мерзавца и маленький участник времени и часы (и участвуйте на), список рассылки мерзавца. Я знаю Подвижный и Базар только из их документации, различного обсуждения IRC и списков рассылки, и сообщений в блоге и статей, сравнивающих различные системы управления версиями (некоторые из которых перечислены на страница GitComparison на Мерзавце Wiki).

15
ответ дан 23 November 2019 в 23:40
поделиться

Очень важным пропавшие без вести вещь в базаре является CP. У Вас не может быть нескольких файлов, совместно использующих ту же историю, как Вы имеете в SVN, посмотрите, например здесь и здесь . Если Вы не планируете использовать CP, bzr является великим (и очень простой в использовании) замена для svn.

2
ответ дан 23 November 2019 в 23:40
поделиться

Взгляните на сравнение, сделанное недавно разработчиками Python: http://wiki.python.org/moin/DvcsComparison . Они выбрали Mercurial по трем важным причинам: чем в Bazaar или Git.

  • Mercurial написан на Python, что соответствует тенденции python-dev «есть свою собачью еду».
  • Mercurial значительно быстрее, чем bzr (он медленнее, чем git, хотя разница гораздо меньше).
  • Mercurial легче изучить пользователям SVN, чем Bazaar.
  • (из http://www.python.org/dev/peps/pep-0374/ )

    6
    ответ дан 23 November 2019 в 23:40
    поделиться

    Стив Стритинг из проекта Ogre 3D только что (28 сентября 2009 г.) опубликовал в блоге запись на эту тему, в которой он делает отличное и даже однозначное сравнение Git, Mercurial и Bazaar .

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

    alt text

    Это краткое прочтение, и я настоятельно рекомендую его.

    19
    ответ дан 23 November 2019 в 23:40
    поделиться