TFS vs SVN [закрыто]


Я собираюсь начать проект (.NET) и должен решить между TFS и SVN.

Я больше привык к SVN (с клиентом tortoise), CVS и VSS. Есть ли у TFS все функции, доступные в SVN

кто-нибудь из вас переключился с SVN на TFS и нашел это стоящим?
Также похоже, что нам может понадобиться Visual Studio, если нам нужно работать с TFS.

[Edit]
Деньги не являются соображением, так как у нас уже есть лицензии на TFS в место. И меня больше интересуют функции управления версиями TFS vs SVN, конечно, список других функций также приветствуется.

16 60

16 ответов:

Ну, для меня выбор, очевидно, TFS:

  • интеграция SVN в Visual Studio является неполной, если не сказать больше (многие функции недоступны из IDE), и немного глючит (AnkhSVN, безусловно, есть), в то время как TFS one совершенен (что имеет смысл...). У меня было все мое рабочее пространство повреждено несколько раз с помощью SVN (в течение одного месяца), Никогда не используя TFS (около 2 лет)

  • в то время как связанные с исходным кодом функции обеих систем являются вероятно, вполне эквивалентные, они доступны непосредственно из IDE с TFS, в то время как вы должны полагаться на TortoiseSVN или другие внешние инструменты, если вы используете SVN. почти все задачи TFS доступны в несколько кликов на вкладке обозреватель решений.

  • слияние намного проще с TFS, даже для сложных слияний (например,СВН будет добавить >>>>>>>>'S на свой .файлы csproj, поэтому вам нужно будет вручную отредактировать их откройте их снова от VS.)

хотя я думаю, что этих причин более чем достаточно, чтобы предпочесть TFS над SVN, я могу добавить, что :

  • TFS-это больше, чем просто инструмент управления версиями (подумайте о рабочих элементах, портале проектов и т. д.)

    Я использовал его в проекте среднего размера (12 кодеров, 3 тестировщика, 3 бизнес-аналитики) в прошлом, и мы смогли успешно централизовать все задачи в TFS (отчеты об ошибках, проектная документация, сборка процесс и т. д.)

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


чтобы оставаться справедливым, вот два очевидных недостатка TFS:

  • цена

  • установка TFS-это довольно боль, в то время как установка SVN-это вопрос минут.

    установка TFS 2008 over SqlServer 2008 довольно сложный, вы не можете установить TFS на PDC и т. д. Для меня, это определенно худший опыт я когда-либо имел с продуктом Microsoft.

    Как говорится, После установки TFS очень проста в использовании (особенно для кодеров, не знакомых с системами управления версиями)


в моем текущем проекте я начал с SVN и быстро переключился на TFS. Я счастлив, что сделал это.

главная причина почему я решил переключиться, очевидно, общее поведение багги SVN (я использовал VisualSVN как сервер и AnkhSVN в качестве клиента). По крайней мере, раз в неделю я тратил часы на загадочные сообщения об ошибках AnkhSVN.

на сегодняшний день я не нашел ни одной причины сожалеть о переходе на TFS.

"нельзя сравнивать между TFS и SVN"

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

У обоих есть хорошая возможность использовать надстройки интеграции IDE(например, ankhsvn, надстройка Collabnet), доступные для VS2005, так что это не имеет смысла считать.

критерии для рассмотрения на выбор:
- Если у вас нет или небольшой бюджетный проект, выберите SVN
- Если вы ищете только систему управления версиями выберите SVN, Если вы ищете полное управление развитием выберите TFS
- Если у вас есть терпение, чтобы жонглировать с различными инструментами интеграции (CruiseControl.Net, NUnit, NCover, FIT) для достижения правильной среды разработки выберите SVN, или если вы ищете из коробки реализации всех этих для вас, то выберите TFS

использовав TFS 18 месяцев назад, я обнаружил, что это багги, медленные, раздражающие, очень ограниченные критерии поиска, и у него было ощущение продукта, выброшенного командой незаинтересованных, неоплачиваемых, надработанных техников, вынужденных использовать Sharepoint и другие технологии MS, потому что это то, что хотел маркетинг. Серьезно, это была собака, я бы скорее использовал SourceSafe!

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

вы рассматривали Vault? Работает хорошо и не слишком дорого.

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

  • невозможно отправить несколько файлов на ваш инструмент diff сразу. Это смешно полезно, когда вы хотите просмотреть свои изменения перед слиянием и недоступны.
  • несогласованная доступность функциональности. Некоторые функции доступны только в IDE в то время как другие части доступны только из Проводника Windows, в то время как другие доступны только из командной строки.
  • добавление файлов в систему управления версиями недоступно из среды IDE и доступно только из интеграции Проводника Windows.
  • доступ к наборам полок доступен только из среды IDE и недоступен через интеграцию Проводника Windows.
  • отсутствие единой установки. Недостаточно просто установить TFS, вы также должны установить Team инструментов и электроинструментов для получения базовой функциональности.
  • функциональность набора полок не сливается. То, что могло бы быть классным способом делать частные ветви, по существу гарантирует, что ваш код устареет и перестанет работать.
  • вы должны вручную разблокировать текстовые файлы перед их редактированием, если вам нужно использовать редактор, отличный от Visual Studio.
  • иногда Visual Studio забывает разблокировать файлы, которые он сам управляет и бросает ошибка.
  • регистрация и стеллажи UIs базы доступных файлов для фиксации на то, что уже было добавлено в TFS, а не то, что на самом деле присутствует в файловой системе. Это делает его чрезвычайно легко пропустить файлы. (На самом деле это проблема с тем, как Visual Studio обрабатывает файлы проекта, но это само по себе еще одна напыщенность).
  • это излишне трудно использовать не Microsoft tools для редактирования источника из-за ранее упомянутых проблем.
  • TFS конфигурация фиксируется с вашим источником. Это означает, что если вы измените свой сервер TFS, конфигурация для всей вашей истории теперь неверна. Существует конфигурация по умолчанию, которую вы можете использовать, которая переопределяет это поведение, но это не очевидно.
  • нет поддержки игнорирования фильтров на любом уровне, кроме базового.
  • невозможность обрабатывать пути длиной более 249 символов.
  • файлы, которые были разблокированы, но не редактировались показать показать, как изменилось, хотя они не были там. Дифференциация между измененным и разблокированным сделает его намного проще для diffs, или еще лучше покончить со всей сломанной системой разблокировки полностью.
  • наложения значков Проводника Windows не ясно показывают, был ли файл отредактирован. Все файлы в TFS имеют зеленый угол, а измененные файлы добавляют карандаш в нижнюю часть значка. Переключение на красный угол для изменения было бы намного проще увидеть или использовать систему значков tortoise.
  • старший версии Visual Studio имеют проблемы с интеграцией в более новые версии TFS. Это означает, что теперь у нас есть зависимость версии IDE в системе управления версиями.
  • включает файлы пользовательского решения по умолчанию, когда они не нужны. Конечно, я признаю, что это может быть вопрос предпочтений.
  • плохое кэширование делает возможным, что различия между вашей локальной копией и сервером не отражаются точно. Это очень расстраивает, чтобы получить последнюю и найти, что вы этого не делаете на самом деле есть последние.

прошло уже 1,5 года, что я использую SVN для различных проектов. Настройки, которые я использовал до сих пор:

  • AnkhSVN клиент для Visual Studio. Он прекрасно интегрируется в качестве поставщика управления версиями с версии 2.
  • серверы CollabNet Subversion на windows или Apache 2.2 с SSL + SVN через DAV на linux.

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

Я бы выбрал SVN. Я работал с SVN с точки зрения разработчика раньше, и в настоящее время я работаю с TFS, и позвольте мне сказать вам, что TFS является болезненным. Хотя TFS является полнофункциональным и больше, чем просто контроль версий, его контроль версий в лучшем случае небрежен. Слияние-это ужасно, и многие из нас теперь обращаются к ручному слиянию или инструментам слияния, потому что мы не можем полагаться на TFS. Файлы пропадают без вести, иногда не загружаются в локальную систему, и есть только странности в ее поведении, которые заставляют вас хотеть чтобы стукнуться головой о стол.

Это, как говорится, если вы хотите TFS во всей красе, готовы работать со своими болевыми точками, это отличный инструмент для настройки автоматических сборок и релизов.

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

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

проверьте эту статью, прежде чем решить: сравнение TFS и Subversion для проектов с открытым исходным кодом

Если вы знакомы с svn, я бы придерживался его. Tfs не является бесплатным и не просто. Он делает гораздо больше, чем просто управление версиями. Если вы магазин .net, как и мы, и вы решаете, какой продукт использовать для всего цикла разработки, это соперник, но для простого управления исходным кодом это перебор.

Я бы сказал, что TFS-это больше, чем просто управление версиями. Если вы можете себе это позволить, я бы определенно посоветовал использовать его. Когда вы начнете использовать командные сборки, например, или использовать такие вещи, как рабочие элементы, вы увидите, что TFS действительно может управлять всем вашим жизненным циклом разработки, обеспечивая богатую среду, в которой отчетность, простота использования, интеграция slick VS и управление твердым исходным кодом объединяются в один.

Это требует некоторого железа на стороне сервера. Я не считаю, что это будет медленно тем не менее, он прекрасно работает через VPN и поддерживает автономную работу.

основным недостатком является процесс установки (на стороне сервера), который является утомительным, негибким и, на мой взгляд (я исхожу из поля, в котором упаковка приложений и развертывание очень важны) плохой пример того, как могут быть установлены SQL Server, службы Reporting Services, Sharepoint и веб-сервисы.

TFS может импортировать из SVN, однако SVN не может импортировать из TFS. Поэтому, если вы не найдете веской причины в противном случае использовать SVN, как это легче изменить свое мнение позже.

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

по моему опыту SVN в целом гораздо быстрее и безболезненнее. Я использовал его со сценариями развертывания XCOPY, которые позволяют работать и развертывать гораздо быстрее в целом по сравнению с TFS.

У меня нет опыта работы с TFS, но интеграция IDE-это то, о чем вы должны подумать. ТФС, очевидно, интегрирует очень хорошо с Visual Studio. AnkhSVN, единственный доступный бесплатный плагин для VS, часто проблематичен, даже в новых версиях. Однако я не пробовал VisualSVN.

учтите, что TFS 2010 может быть установлен также на клиентских ОС Windows Vista / 7 и что он поддерживает экспресс-установку в три клика.

плюсы:

  • интеграция с Visual Studio. Реальный плюс, если вы используете полную технологию Microsoft. стек для развития.
  • автоматизированное построение (правда, достигаемых за счет других продуктов) - это действительно красиво сделано. Непрерывной интеграции и построения с условным возвратом фантастические ММО.

плюсы:

  • Windows Workflow Foundation. Для некоторых причина, Windows Workflow Foundation был выбран в качестве метода для настройки многих аспектов TFS. Короче говоря, вам нужна книга о рабочем процессе Windows, чтобы понять это, и у меня просто нет времени. Очень разочаровывает ИМО.
  • Управление Проектами. Концепция рабочих элементов достаточно проста, я думаю, но есть много странностей с ней, которые просто оставляют меня в замешательстве. Это просто слишком сложно ИМО. Исходя из фона Trac + SVN, я предпочитаю Trac здесь. Опять же, просто мой взгляд.

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

хотя я полностью согласен с сторонниками SVN, поскольку это великолепный инструмент (я использовал его много раз в университете) , я обнаружил, что TFS обычно более сотрудничает в ситуациях OOTB, когда вы использование версии SP1 с Studio 2010.

кроме того, есть некоторые приятные маленькие плагины, которые делают TFS немного более приемлемым для тех из нас, кто привык, и вообще предпочитают решение типа SVN, и многие из них имеют отличную поддержку:

TeamReview для просмотра кода является одним из примеров:http://teamreview.codeplex.com/ MS-пути для многоплатформенного использования TFS: http://www.microsoft.com/pathways/teamprise/FAQ.htm

этот вопрос SO является отличным ресурсом для аддонов TFS:какие дополнения / утилиты доступны для TFS?

слово к мудрому, как упоминалось выше, TFS может быть болью для установки, поэтому следует проявлять осторожность. По маршруту ниже, я столкнулся с минимальными проблемами:

Studio 2008 - > Patching - > Studio 2010 - > Patching - > .NET - > SQL Server 2008RD / 2012 - > исправление - > TFS - > исправление