Если вы не являетесь крупной компанией, обязанной Microsoft, я бы порекомендовал Subversion.
Управление исходным кодом TFS - как бы это выразиться - неудачно.
Это работает очень хорошо, если единственное, что вы когда-либо делаете, это работаете в visual studio. Однако, как только вы захотите взаимодействовать с ним извне (например, добавить текстовый файл или некоторые командные файлы, которых нет в файле решения Visual Studio), это становится болезненным и проблематичным.
Это происходит главным образом потому, что в файловой системе все файлы помечаются как доступные только для чтения, если вы явно не проверили их. Visual Studio делает это автоматически, но для всего остального вам всегда нужно явно извлекать файлы, используя либо командную строку tf.exe
, либо электроинструменты TFS. Это очень быстро раздражает.
Еще одним побочным эффектом является отслеживание новых файлов. Subversion и др. Расскажут вам о новых неотслеживаемых файлах и каталогах, когда вы выполните diff, тогда как TFS полностью их проигнорирует. Это привело ко многим неисправным сборкам, потому что разработчик забыл проверить новый файл, потому что, что касается TFS, он вообще не существовал, пока они явно не добавили его.
TFS также сильно привязан к доменной модели Windows аутентификации пользователей. Вам нужно добавить учетные записи пользователей Windows, чтобы люди имели к ним доступ, что очень неприятно, если вы еще не работаете в корпоративной доменной сети.