Я использовал Perforce на моих последних 3 работах (сейчас я использую Subversion, которая мне не очень нравится). Я большой поклонник Perforce, и переход от SourceSafe будет выглядеть как Nirvana , Просто получение атомной регистрации будет большим стимулом для вашей компании. В противном случае Perforce работает быстро, у него есть хорошие инструменты, а рабочий процесс прост для выполнения таких операций, как слияния и интеграции. Я искренне рекомендую это. Возможно, он не совсем новый и показной, как последние распределенные VCS, но, честно говоря, я предпочитаю модель клиент / сервер за ее скорость, особенно если вы работаете с людьми из других стран, которые могут иметь медленные соединения с вами.
Интеграция с Visual Studio довольно хорошая, но у нее есть несколько раздражающих проблем. Если вы одновременно запускаете другой клиент Perforce (например, P4V), он очень плохо синхронизирует изменения с другим клиентом с точки зрения отображения, какие файлы в настоящее время извлекаются / выводятся. Как правило, вам нужно закрыть Visual Studio и снова загрузить проект, если вы хотите, чтобы он синхронизировался правильно. Но состояние синхронизации на самом деле не влияет на правильную работу checkins / checkouts / updates, это просто означает, что вы можете быть обмануты, думая, что что-то находится в другом состоянии, чем на самом деле, пока вы находитесь в Visual Studio. Клиенты Perforce всегда будут показывать правильный статус, поскольку они постоянно синхронизируются с базой данных.
Кроме того, иногда вы обнаружите, что вам нужно работать в автономном режиме (по какой-то причине не подключен к базе данных Perforce), и при следующей загрузке проекта в следующий раз ваши привязки Perforce могут быть потеряны, и вы Привязать каждый проект в отдельности. Если вы работаете с решением, которое содержит много проектов, это может быть очень болезненно. То же самое относится и к тому моменту, когда вы впервые проверяете решение, перед интеграцией необходима привязка к Perforce.