Какова цель «проверки» файла в TFV C (Visual Studio)? - PullRequest
0 голосов
/ 16 июня 2020

Я новичок в управлении версиями с помощью TFV C в Visual Studio 2019, и я не могу понять, что делает опция «Извлечь». Я не мог найти для него истинного определения и реального варианта использования. В частности, я работаю в команде. Когда я компилирую определенный проект, мне нужно скопировать два файла dll, созданные в предыдущем процессе сборки, в две папки, относящиеся к разным проектам, заменив их старые версии файлов dll. Теперь, после создания проекта, они сказали мне, что я должен проверить старые dll файлы, выбрав их и нажав Извлечь из Source Control Explorer , и мне просто нужно скопировать новые dll файлы, заменяя старые простым «копированием и вставкой» внутри моей локальной рабочей области. Зачем мне проверять эти файлы? Почему я не могу просто открыть свою локальную рабочую область и напрямую заменить старые dll файлы на «скопировать и вставить»?

1 Ответ

0 голосов
/ 16 июня 2020

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

TFV C - это централизованный контроль версий. Это означает, что существует «единственный источник истины», который находится на стороне сервера .

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

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

    Возвращаясь к вашему примеру. Было обычной практикой (но не очень хорошей ) было проверять библиотеки DLL в TFV C, чтобы разработчики получали эти библиотеки DLL из централизованного репозитория. Вы, вероятно, будете проверять библиотеки DLL, потому что собираетесь скомпилировать код, и у вас будет «последняя версия». Это может быть неправдой в зависимости от того, как работает ваша команда. В настоящее время я бы рекомендовал использовать другой подход (например, хранить их в каком-либо диспетчере пакетов), если вам нужно поделиться общими dll среди вашей команды.

...