В чем разница между TFS, SVN и GIT?

Я использую Microsoft Visual SourceSafe для контроля версий. Я хотел бы изменить этот подход и использовать более новое программное обеспечение для этой работы. Каковы различия между этими тремя приложениями? Какой из них лучше?

Являются ли эти решения интегрированными с visual studio?

Ответ 1

TFS - это решение для управления жизненным циклом приложения, SVN и Git являются только источником управления.

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

Управление источниками TFS и SVN - это централизованное управление источником, распределяется Git.

Было много дискуссий о Stackoverflow о TFS vs SVN.

TFS наиболее тесно интегрирована в Visual Studio.

В SVN есть несколько сторонних опций для интеграции в Visual Studio, и они довольно приятны, но не так тесно интегрированы, как TFS.

Git имеет GitExtensions, который допускает низкий уровень интеграции в Visual Studio.

Ответ 2

Лучше это большая дискуссия, но в то же время вам нужно учитывать стоимость.

SVN является бесплатным, где в качестве TFS нет. Однако; если у вас есть Visual Studio через подписку MSDN, и это достаточно высокий уровень, то вы получите TFS2010 бесплатно через ваши подписки на подписку MSDN, когда выпущенный. Это может быть фактором, который подсказывает баланс.

Что касается интеграции с Visual Studio, вы не можете обойти Team Explorer для TFS. Тем не менее, я использовал Anhk с SVN, и это тоже хорошо работает. Я думаю, что в остальном это сказано: -)

Надеюсь, что это поможет.

Ответ 3

Я могу говорить только с интеграцией Visual Studio для SVN. Я использовал оба VisualSVN и AnkhSVN. Они имеют довольно плотную интеграцию и позволяют выполнять различные операции из меню Solution Explorer так, как вы обычно делали это с VSS. Версия 2+ Ankh (одна из которых я использую в настоящее время) была очень стабильной для меня и миров лучше старых версий.

Это похоже на довольно подробное обсуждение использования Git с Visual Studio.

Ответ 4

Это в дополнение к другим ответам, а не полный ответ, поскольку Майкл Шимминс удовлетворил большинство из того, что я сказал бы

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

Git - отличный инструмент, если вы тратите время нарастания и методы, которые сообщество принимает в качестве стандартной практики, стоят усилий в любой системе контроля версий. Вы по-прежнему сталкиваетесь с конфликтами с файлами SLN и CSProj/VBProj в командах из > 2. Это результат того, как эти файлы структурированы и управляются.

Ответ 5

Вопрос довольно старый, однако, если кто-то наткнется на него: с января 2013 года git был интегрирован в TFS (объявление: http://www.visualstudio.com/en-us/news/2013-jan-30-vso#git). Это означает, что команда теперь может использовать git как средство управления исходным кодом (а не, а не рядом с "встроенной" системой управления версиями TFS), все еще используя остальную часть TFS для таких действий, как непрерывная интеграция, отслеживание проблем и т.д.

Оригинальная дискуссия по MSDN: http://blogs.msdn.com/b/visualstudioalm/archive/2013/01/30/getting-started-with-git-in-visual-studio-and-team-foundation-service.aspx

В StackOverflow есть большой набор соответствующих обсуждений (https://stackoverflow.com/search?q=tfs+git), не может указывать на что-то конкретное.