Вы можете поместить некоторые инструкции 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));
}
};
SVN является одним repo и большим количеством клиентов. Мерзавец является repo с большим количеством клиента repos, каждого с пользователем. Это децентрализовано к точке, где люди могут отследить свои собственные редактирования локально, не имея необходимость продвигать вещи к внешнему серверу.
SVN разработан, чтобы быть более центральным, где Мерзавец основан на каждом пользователе, имеющем их собственного Мерзавца repo, и те repos пододвигают изменения обратно в центральное. По этой причине Мерзавец дает людям лучший контроль локальной версией.
Между тем у Вас есть выбор между TortoiseGit, GitExtensions (и если Вы размещаете свой "центральный" репозиторий мерзавца на GitHub, их собственное клиент †“GitHub для Windows ).
при наблюдении выхода из SVN Вы могли бы хотеть оценить Базар некоторое время. Это - одно из следующего поколения систем управления версиями, которые имеют этот распределенный элемент. Это не иждивенец POSIX как мерзавец так существуют собственные сборки Windows , и это имеет некоторые мощные бренды с открытым исходным кодом, поддерживающие его.
, Но Вам еще даже, возможно, не понадобились бы эти виды функций. Взгляните на функции, преимущества и недостатки распределенного VCSes. Если Вы нуждаетесь в больше, чем предложения SVN, рассматриваете то. Если Вы не делаете, Вы могли бы хотеть придерживаться (в настоящее время) превосходящей интеграции настольных систем SVN.
Необходимо пойти с DVCS, он похож на квантовый прыжок в исходном управлении. Лично я использую Монотонность и ее ускоренное время разработки никакой конец. Мы используем его для Windows, Linux и Mac, и это было очень стабильно. У меня даже есть buildbot выполнение ночных сборок проекта на каждой из платформ.
DVCS, будучи распределенным обычно означает создание центрального сервера только для людей для продвижения изменений в и от.
SVN походит на хороший выбор в соответствии с Windows, как указано другими людьми.
, Если часть Вашего разработчика хочет судить МЕРЗАВЦА, это может всегда использовать МЕРЗАВЦА-SVN, где репозиторий SVN воссоздается в репозитории МЕРЗАВЦА. Тогда он должен быть в состоянии работать локально с МЕРЗАВЦЕМ и затем использовать SVN для публикации его изменений в основном репозитории.
Существует интересное Видео на YouTube об этом. От самого Linus Torwalds: Технический Разговор Goolge: Linus Torvalds на мерзавце
Я могу подробно остановиться на вопросе и спросить если работа Мерзавца хорошо над MacOS?
Ответ на Комментарии: Спасибо за новости я надеялся испытать его. Я установлю его дома на моем Mac
Вы попробовали Bzr?
Это довольно хорошо, connonical (люди, которые делают Ubuntu), сделал его, потому что им не нравилось ничто больше на рынке...
Я, вероятно, выбрал бы Git, потому что я чувствую, что это намного более мощно, чем SVN. Существуют дешевые Услуги хостинга Кода, доступные, которые просто работают отлично для меня - Вы не должны делать резервных копий или любых работ по техническому обслуживанию - , GitHub является самым очевидным кандидатом.
Однако я ничего не знаю относительно интеграции Visual Studio и различных систем SCM. Я воображаю интеграцию с SVN к особенно лучше.
Я выбрал бы SVN, так как он более широко распространен и более известен.
я предполагаю, Мерзавец был бы лучше для пользователя Linux.
Мерзавец исходно не поддерживается в соответствии с Windows, просто еще. Это оптимизировано для систем Posix. Однако выполнение Cygwin или MinGW позволяет Вам выполнить успешного Мерзавца.
В наше время я предпочитаю Мерзавца по SVN, но он требует времени для преобладания над порогом, если Вы происходите из CVS, земли SVN.
Едва ли отвечая на Ваш вопрос, но если Вы хотите преимущества Распределенное Управление версиями - оно кажется, что Вы делаете - и Вы используете Windows I, думают, что Вы были бы более обеспеченным использованием Подвижный скорее, что у Мерзавца как Подвижный есть намного лучшая поддержка Windows. Подвижный действительно имеет порт Mac также.
Если Ваша команда уже знакома с программными обеспечениями управления версиями и управления исходным кодом как cvs или svn, то, для простого и маленького проекта (такого как Вы требуете, это), я рекомендовал бы придерживаться SVN. Я действительно доволен svn, но для текущего проекта электронной коммерции я делаю на django, я решил работать над мерзавцем (я использую мерзавца в svn-режиме, то есть, с централизованным repo, к которому я продвигаю и вытягиваю от того, для сотрудничества, по крайней мере, с еще одним разработчиком). Другой разработчик доволен SVN, и в то время как события других могут отличаться, у нас обоих есть действительно плохой мерзавец охвата времени для этого маленького проекта. (Мы - оба жесткие пользователи Linux, если это имеет значение вообще.)
Ваш пробег может варьироваться, конечно.
Определенно svn
, начиная с Windows is— в best— второразрядный гражданин в мире git
(см. http://en.wikipedia.org/wiki/Git_ (программное обеспечение) #Portability для получения дополнительной информации).
ОБНОВЛЕНИЕ: Извините за неработающую ссылку, но я бросил пытаться добраться ТАК для работы с URIs, которые содержат круглые скобки. [ссылка зафиксирована теперь. - редактор]
Забавная вещь: Я размещаю проекты в Подрывной деятельности Repos, но получаю доступ к ним через команду Git Clone.
читайте , Разрабатывают с Мерзавцем на Google Code Project
, Хотя Google Code исходно говорит Подрывную деятельность, можно легко использовать Мерзавца во время разработки. Поиск "мерзавца svn" предполагает, что эта практика широко распространена, и мы также поощряем Вас экспериментировать с ним.
Используя Мерзавца на репозитории SVN приносит мне пользу:
backup/public
репозиторий SVN для других для проверки Я, никогда не имею не понимают это понятие о "мерзавце, не являющемся хорошим в Windows"; я разрабатываю исключительно в соответствии с Windows, и у меня никогда не было проблем с мерзавцем.
я определенно рекомендовал бы мерзавцу по подрывной деятельности; его просто настолько более универсальный и позволяет "офлайновую разработку" способом, подрывная деятельность никогда действительно могла. Ее доступное почти на каждой вообразимой платформе и имеет больше функций, чем Вы будете, вероятно, когда-либо использовать.
Основной момент, что Мерзавец является распределенным VCS и Подрывной деятельностью централизованная. Распределенные VCSs являются трудными понять, но иметь много преимуществ. Если Вам не нужно, это способствует, Подрывная деятельность может лучший выбор.
Другим вопросом является поддержка инструмента. Какой VCS лучше поддерживается инструментами, которые Вы планируете использовать?
РЕДАКТИРОВАНИЕ: Три года назад я ответил на этот путь:
И Мерзавец работает над Windows в данный момент только через Cygwin или MSYS. Подрывная деятельность поддерживала Windows с начала. Поскольку решения мерзавца для окон могут работать на Вас, могут быть проблемы, как большинство разработчиков работы Мерзавца с Linux и не имели мобильности в уме с начала. В данный момент я предпочел бы Подрывную деятельность для разработки в соответствии с Windows. Через несколько лет это может быть не важно.
Теперь мир изменился немного. У мерзавца есть хорошая реализация на окнах теперь. Хотя я протестировал не полностью на окнах (поскольку я больше не использую эту систему), я довольно уверен, что весь главный VCS (SVN, Мерзавец, Подвижный, Базар), имеет надлежащую реализацию Windows теперь. Этого преимущества для SVN не стало. Другие точки (Централизованный по сравнению с Распределенным и проверкой на поддержку инструмента) остаются допустимыми.
Я открыл бы репозиторий Подрывной деятельности. Путем выполнения его этот путь могут выбрать отдельные разработчики, использовать ли клиенты Подрывной деятельности или клиенты Мерзавца (с git-svn
). Используя git-svn
не дает Вам весь преимущества полного решения Мерзавца, но оно действительно дает отдельным разработчикам большой контроль их собственным рабочим процессом.
я полагаю, что это будет относительно короткое время, прежде чем Мерзавец будет работать точно также над Windows, как это делает на Unix и Mac OS X (так как Вы спросили).
Подрывная деятельность имеет превосходные инструменты для Windows, такие как TortoiseSVN для интеграции Проводника и AnkhSVN для интеграции Visual Studio.
2 ключевых преимущества SVN, которые редко упоминаются:
Поддержка больших файлов. В дополнение к коду я использую SVN для управления своим домашним каталогом. SVN - единственная VCS (распределенная или нет), которая не подавляется моими файлами TrueCrypt (пожалуйста, поправьте меня, если есть другая VCS, которая эффективно обрабатывает файлы размером более 500 МБ). Это потому, что сравнения diff передаются в потоковом режиме (это очень важный момент). Rsync неприемлем, потому что он не двусторонний.
Частичный репозиторий (подкаталог) checkout / checkin. Mercurial и bzr не поддерживают это, а поддержка git ограничена. Это плохо для командной среды, но бесценно, если я хочу проверить что-то на другом компьютере из моего домашнего каталога.
Только мой опыт.
Вот копия ответа, который я сделал на несколько повторяющихся вопросов, которые с тех пор были удалены о Git против SVN (сентябрь 2009 г.).
Лучше? Помимо обычной ссылки WhyGitIsBetterThanX , они разные:
одна - это центральная VCS, основанная на дешевом копировании веток и тегов , другая (Git) - это распределенная VCS на основе график изменений. См. также Основные концепции VCS .
Эта первая часть породила несколько неверно информированных комментариев, в которых утверждалось, что основная цель двух программ (SVN и Git) одна и та же, но реализованы они совершенно по-разному.
Чтобы прояснить фундаментальное различие между SVN и Git , позвольте мне перефразировать:
SVN - это третья реализация элемента управления ревизии : RCS, затем CVS и, наконец, SVN управляют каталогами версионных данных. SVN предлагает функции VCS (маркировка и слияние), но его тег - это просто копия каталога (например, ветка, за исключением того, что вы «не должны» касаться чего-либо в каталоге тегов), и его слияние по-прежнему сложно, в настоящее время на основе метаданных. -данные добавлены для запоминания того, что уже было объединено.
Git - это средство управления содержимым файлов (инструмент для объединения файлов), превратился в настоящую систему контроля версий , основанную на DAG ( Directed Acyclic Graph ) коммитов, где ветки являются частью истории данных (а не сами данные), а теги - настоящими метаданными.
Сказать, что они не «принципиально» различны, потому что вы можете достичь одного и того же, решить одну и ту же проблему, - это ... чистая ложь на многих уровнях.
Тем не менее, комментарии к этому старому (удаленному) ответу настаивали:
VonC: Вы путаете фундаментальное различие в реализации (различия очень фундаментальные, мы оба явно согласны с этим) с различием в целях.
Оба инструмента используются для одной и той же цели: вот почему многие команды, которые раньше использовали SVN, довольно успешно смогли отказаться от него в пользу Git.
Если бы они не решили ту же проблему, этой заменяемости не существовало бы.
, на что я ответил:
«заменяемость» ... интересный термин ( используется в компьютерном программировании ).
Конечно, Git вряд ли является подтипом SVN.
Вы можете достичь тех же технических функций (тег, ветвление, слияние) с обоими, но Git не мешает вам и позволяет вам сосредоточиться на содержании файлов , не думая о сам инструмент.
Вы, конечно, не можете (всегда) просто заменить SVN на Git «без изменения каких-либо желаемых свойств этой программы (правильность, выполненная задача, ...)» (что является ссылкой на вышеупомянутое определение заменяемости ):
Опять же, их природа принципиально отличается (что затем приводит к другой реализации, но не в этом суть).
Один видит контроль версий как каталоги и файлы, другой видит только содержимое файла (настолько, что пустые каталоги даже не регистрируются в Git!).
Общая конечная цель может быть такой же,но вы не можете использовать их одинаково, и вы не можете решить один и тот же класс проблем (по объему или сложности).