Я не очень понимаю рабочий процесс вашей команды. Позвольте мне предложить вам пару идей, чтобы выяснить, является ли ваш текущий рабочий процесс наиболее подходящим или нет.
TFV C - это централизованный контроль версий. Это означает, что существует «единственный источник истины», который находится на стороне сервера .
Чтобы это было правдой, любой разработчик, которому нужно работать с каким-то файлом под контролем системы управления версиями, должен принять решение о том, как работать с общими файлами. Если немного упростить, то у вас есть рабочий процесс - не лучший и не единственный - который может помочь вам понять, что означает «проверить» файл.
- Получить последнюю версию кода (поскольку ваш контроль версий централизован, существует такая вещь, как «последняя версия»), что может привести к слиянию.
- Работайте с вашей версией кода в среде разработки.
- Зарегистрируйте код на сервере. Что, опять же, может привести к дополнительным действиям по слиянию, не говоря уже о сломанных сборках. В последней версии кода вы можете обнаружить, что кто-то внес изменения в фрагмент кода, над которым вы работаете. Это означает, что вам нужно объединить эти изменения. В то же время и по той же причине всякий раз, когда вы «регистрируете» код на сервере, вы можете обнаружить некоторые различия между версией сервера и вашей версией, что может снова привести к новым действиям по слиянию. В таком сценарии централизованный контроль версий позволяет вам « извлечь » файл. Это означает, что вы «являетесь владельцем» этого файла, и никто другой не может объединить свои изменения в центральном репозитории, пока вы не отметите свои изменения. Это может быть хорошо в некоторых случаях ios, но если вы привыкли к распределенным системам контроля версий (например, Git), это может показаться вам немного странным.
Возвращаясь к вашему примеру. Было обычной практикой (но не очень хорошей ) было проверять библиотеки DLL в TFV C, чтобы разработчики получали эти библиотеки DLL из централизованного репозитория. Вы, вероятно, будете проверять библиотеки DLL, потому что собираетесь скомпилировать код, и у вас будет «последняя версия». Это может быть неправдой в зависимости от того, как работает ваша команда. В настоящее время я бы рекомендовал использовать другой подход (например, хранить их в каком-либо диспетчере пакетов), если вам нужно поделиться общими dll среди вашей команды.