Я должен использовать SVN или Мерзавца? [закрытый]

Вы можете поместить некоторые инструкции Java в цикл для инициализации коллекции:

List characters = new ArrayList() {
    {
        for (char c = 'A'; c <= 'E'; c++) add(c);
    }
};

Random rnd = new Random();

List integers = new ArrayList() {
    {
         while (size() < 10) add(rnd.nextInt(1_000_000));
    }
};

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

320
задан Cole Johnson 10 April 2013 в 12:34
поделиться

18 ответов

SVN является одним repo и большим количеством клиентов. Мерзавец является repo с большим количеством клиента repos, каждого с пользователем. Это децентрализовано к точке, где люди могут отследить свои собственные редактирования локально, не имея необходимость продвигать вещи к внешнему серверу.

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

Между тем у Вас есть выбор между TortoiseGit, GitExtensions (и если Вы размещаете свой "центральный" репозиторий мерзавца на GitHub, их собственное клиент †“GitHub для Windows ).

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

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

253
ответ дан BuZZ-dEE 23 November 2019 в 00:58
поделиться

Необходимо пойти с DVCS, он похож на квантовый прыжок в исходном управлении. Лично я использую Монотонность и ее ускоренное время разработки никакой конец. Мы используем его для Windows, Linux и Mac, и это было очень стабильно. У меня даже есть buildbot выполнение ночных сборок проекта на каждой из платформ.

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

1
ответ дан Phil Hannent 23 November 2019 в 00:58
поделиться

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

, Если часть Вашего разработчика хочет судить МЕРЗАВЦА, это может всегда использовать МЕРЗАВЦА-SVN, где репозиторий SVN воссоздается в репозитории МЕРЗАВЦА. Тогда он должен быть в состоянии работать локально с МЕРЗАВЦЕМ и затем использовать SVN для публикации его изменений в основном репозитории.

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

Существует интересное Видео на YouTube об этом. От самого Linus Torwalds: Технический Разговор Goolge: Linus Torvalds на мерзавце

3
ответ дан Roman Ganz 23 November 2019 в 00:58
поделиться

Я могу подробно остановиться на вопросе и спросить если работа Мерзавца хорошо над MacOS?

Ответ на Комментарии: Спасибо за новости я надеялся испытать его. Я установлю его дома на моем Mac

3
ответ дан Robert Gould 23 November 2019 в 00:58
поделиться

Вы попробовали Bzr?

Это довольно хорошо, connonical (люди, которые делают Ubuntu), сделал его, потому что им не нравилось ничто больше на рынке...

3
ответ дан Omar Kooheji 23 November 2019 в 00:58
поделиться

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

Однако я ничего не знаю относительно интеграции Visual Studio и различных систем SCM. Я воображаю интеграцию с SVN к особенно лучше.

4
ответ дан Christoph Schiessl 23 November 2019 в 00:58
поделиться

Я выбрал бы SVN, так как он более широко распространен и более известен.

я предполагаю, Мерзавец был бы лучше для пользователя Linux.

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

Мерзавец исходно не поддерживается в соответствии с Windows, просто еще. Это оптимизировано для систем Posix. Однако выполнение Cygwin или MinGW позволяет Вам выполнить успешного Мерзавца.

В наше время я предпочитаю Мерзавца по SVN, но он требует времени для преобладания над порогом, если Вы происходите из CVS, земли SVN.

4
ответ дан 23 November 2019 в 00:58
поделиться

Едва ли отвечая на Ваш вопрос, но если Вы хотите преимущества Распределенное Управление версиями - оно кажется, что Вы делаете - и Вы используете Windows I, думают, что Вы были бы более обеспеченным использованием Подвижный скорее, что у Мерзавца как Подвижный есть намного лучшая поддержка Windows. Подвижный действительно имеет порт Mac также.

9
ответ дан Dave Webb 23 November 2019 в 00:58
поделиться

Если Ваша команда уже знакома с программными обеспечениями управления версиями и управления исходным кодом как cvs или svn, то, для простого и маленького проекта (такого как Вы требуете, это), я рекомендовал бы придерживаться SVN. Я действительно доволен svn, но для текущего проекта электронной коммерции я делаю на django, я решил работать над мерзавцем (я использую мерзавца в svn-режиме, то есть, с централизованным repo, к которому я продвигаю и вытягиваю от того, для сотрудничества, по крайней мере, с еще одним разработчиком). Другой разработчик доволен SVN, и в то время как события других могут отличаться, у нас обоих есть действительно плохой мерзавец охвата времени для этого маленького проекта. (Мы - оба жесткие пользователи Linux, если это имеет значение вообще.)

Ваш пробег может варьироваться, конечно.

9
ответ дан ayaz 23 November 2019 в 00:58
поделиться

Определенно svn, начиная с Windows is— в best— второразрядный гражданин в мире git (см. http://en.wikipedia.org/wiki/Git_ (программное обеспечение) #Portability для получения дополнительной информации).

ОБНОВЛЕНИЕ: Извините за неработающую ссылку, но я бросил пытаться добраться ТАК для работы с URIs, которые содержат круглые скобки. [ссылка зафиксирована теперь. - редактор]

9
ответ дан Greg Hewgill 23 November 2019 в 00:58
поделиться

Забавная вещь: Я размещаю проекты в Подрывной деятельности Repos, но получаю доступ к ним через команду Git Clone.

читайте , Разрабатывают с Мерзавцем на Google Code Project

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

Используя Мерзавца на репозитории SVN приносит мне пользу:

  1. я могу работать , распределил на нескольких машинах, фиксируя и вытягивая от, и до них
  2. я имею центральный backup/public репозиторий SVN для других для проверки
  3. , И они свободны использовать Мерзавца для своего собственного
11
ответ дан Andre Bossard 23 November 2019 в 00:58
поделиться

Я, никогда не имею не понимают это понятие о "мерзавце, не являющемся хорошим в Windows"; я разрабатываю исключительно в соответствии с Windows, и у меня никогда не было проблем с мерзавцем.

я определенно рекомендовал бы мерзавцу по подрывной деятельности; его просто настолько более универсальный и позволяет "офлайновую разработку" способом, подрывная деятельность никогда действительно могла. Ее доступное почти на каждой вообразимой платформе и имеет больше функций, чем Вы будете, вероятно, когда-либо использовать.

110
ответ дан Dark Shikari 23 November 2019 в 00:58
поделиться

Основной момент, что Мерзавец является распределенным VCS и Подрывной деятельностью централизованная. Распределенные VCSs являются трудными понять, но иметь много преимуществ. Если Вам не нужно, это способствует, Подрывная деятельность может лучший выбор.

Другим вопросом является поддержка инструмента. Какой VCS лучше поддерживается инструментами, которые Вы планируете использовать?

РЕДАКТИРОВАНИЕ: Три года назад я ответил на этот путь:

И Мерзавец работает над Windows в данный момент только через Cygwin или MSYS. Подрывная деятельность поддерживала Windows с начала. Поскольку решения мерзавца для окон могут работать на Вас, могут быть проблемы, как большинство разработчиков работы Мерзавца с Linux и не имели мобильности в уме с начала. В данный момент я предпочел бы Подрывную деятельность для разработки в соответствии с Windows. Через несколько лет это может быть не важно.

Теперь мир изменился немного. У мерзавца есть хорошая реализация на окнах теперь. Хотя я протестировал не полностью на окнах (поскольку я больше не использую эту систему), я довольно уверен, что весь главный VCS (SVN, Мерзавец, Подвижный, Базар), имеет надлежащую реализацию Windows теперь. Этого преимущества для SVN не стало. Другие точки (Централизованный по сравнению с Распределенным и проверкой на поддержку инструмента) остаются допустимыми.

8
ответ дан Mnementh 23 November 2019 в 00:58
поделиться

Я открыл бы репозиторий Подрывной деятельности. Путем выполнения его этот путь могут выбрать отдельные разработчики, использовать ли клиенты Подрывной деятельности или клиенты Мерзавца (с git-svn). Используя git-svn не дает Вам весь преимущества полного решения Мерзавца, но оно действительно дает отдельным разработчикам большой контроль их собственным рабочим процессом.

я полагаю, что это будет относительно короткое время, прежде чем Мерзавец будет работать точно также над Windows, как это делает на Unix и Mac OS X (так как Вы спросили).

Подрывная деятельность имеет превосходные инструменты для Windows, такие как TortoiseSVN для интеграции Проводника и AnkhSVN для интеграции Visual Studio.

11
ответ дан Greg Hewgill 23 November 2019 в 00:58
поделиться

2 ключевых преимущества SVN, которые редко упоминаются:

  1. Поддержка больших файлов. В дополнение к коду я использую SVN для управления своим домашним каталогом. SVN - единственная VCS (распределенная или нет), которая не подавляется моими файлами TrueCrypt (пожалуйста, поправьте меня, если есть другая VCS, которая эффективно обрабатывает файлы размером более 500 МБ). Это потому, что сравнения diff передаются в потоковом режиме (это очень важный момент). Rsync неприемлем, потому что он не двусторонний.

  2. Частичный репозиторий (подкаталог) checkout / checkin. Mercurial и bzr не поддерживают это, а поддержка git ограничена. Это плохо для командной среды, но бесценно, если я хочу проверить что-то на другом компьютере из моего домашнего каталога.

Только мой опыт.

37
ответ дан 23 November 2019 в 00:58
поделиться

Вот копия ответа, который я сделал на несколько повторяющихся вопросов, которые с тех пор были удалены о Git против SVN (сентябрь 2009 г.).

Лучше? Помимо обычной ссылки WhyGitIsBetterThanX , они разные:

одна - это центральная VCS, основанная на дешевом копировании веток и тегов , другая (Git) - это распределенная VCS на основе график изменений. См. также Основные концепции VCS .


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

  • SVN - это третья реализация элемента управления ревизии : RCS, затем CVS и, наконец, SVN управляют каталогами версионных данных. SVN предлагает функции VCS (маркировка и слияние), но его тег - это просто копия каталога (например, ветка, за исключением того, что вы «не должны» касаться чего-либо в каталоге тегов), и его слияние по-прежнему сложно, в настоящее время на основе метаданных. -данные добавлены для запоминания того, что уже было объединено.

  • Git - это средство управления содержимым файлов (инструмент для объединения файлов), превратился в настоящую систему контроля версий , основанную на DAG ( Directed Acyclic Graph ) коммитов, где ветки являются частью истории данных (а не сами данные), а теги - настоящими метаданными.

Сказать, что они не «принципиально» различны, потому что вы можете достичь одного и того же, решить одну и ту же проблему, - это ... чистая ложь на многих уровнях.

  • если у вас много сложных слияний, выполнение их с помощью SVN будет дольше и более подвержено ошибкам. если вам нужно создать много ветвей, вам нужно будет управлять ими и объединять их, опять же гораздо проще с Git, чем с SVN, особенно если задействовано большое количество файлов (скорость становится важной)
  • , если у вас есть частичные слияния для незавершенной работы, вы воспользуетесь промежуточной областью Git (индексом) только для фиксации то, что вам нужно, отложите остальное и перейдите на другую ветку.
  • если вам нужна автономная разработка ... ну, с Git вы всегда «в сети», со своим собственным локальным репозиторием, независимо от рабочего процесса, которому вы хотите следовать с другими репозиториями.

Тем не менее, комментарии к этому старому (удаленному) ответу настаивали:

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

, на что я ответил:

«заменяемость» ... интересный термин ( используется в компьютерном программировании ).
Конечно, Git вряд ли является подтипом SVN.

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

Вы, конечно, не можете (всегда) просто заменить SVN на Git «без изменения каких-либо желаемых свойств этой программы (правильность, выполненная задача, ...)» (что является ссылкой на вышеупомянутое определение заменяемости ):

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

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

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

77
ответ дан 23 November 2019 в 00:58
поделиться