Прямая и обратная интеграция из одного решения в другое в TFS

Я только что перенес свой код из Perforce в TFS. Все выглядит хорошо, но есть проблема, которая заключается в прямой и обратной интеграции одного решения в другое. Это шоу-стоппер для меня.

Существует два разных решения и два проекта являются общими в обоих решениях, но имеют разные копии по отдельности. Таким образом, прямая интеграция будет объединять все приложение от sol1 до sol2 для разрешения конфликтов в общих проектах. После того, как это будет решено, объедините код с решением 1 (обратная интеграция). Следует понимать, что необходимо объединить только общие проекты, а все остальное можно исключить.

Можно ли выполнить аналогичную настройку в TFS?

2 ответа

Решение

Я получил точное решение, которое является более или менее первым вариантом Джесси, который вы предоставили. По сути, нам нужно создать общие проекты для одного из решений, а затем добавить их в другое решение. Позднее мы можем объединить их из решения 1 и 2, проверить объединенные файлы в решении 2, а затем объединить из решения 2 в 1 и проверить объединенные файлы в решении 1.

Да, этот сценарий возможен в TFVC, но не очень распространен. У вас есть несколько вариантов:

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

  2. Создайте взаимосвязь папок, но не превращайте папки в корни ветвей. Это позволяет объединять одну папку с другой в любое время, но не показывает эти папки как ветви как таковые.

  3. Создайте корень ветви на каждом уровне проекта и объедините каждый проект отдельно. Это имеет несколько недостатков (поскольку в этом случае вы не можете разветвлять все решение, поскольку корни ветвления не могут быть вложенными).

Или вы можете подойти к проблеме по-другому:

  1. Создайте отдельное решение, содержащее общий код, и используйте управление пакетами ( публикация пакетов NuGet), чтобы разделить зависимости между обоими решениями (по сути, создавая 3 решения).

  2. Используйте сопоставления рабочей области, чтобы хранить общий код в одном месте в системе управления версиями и отображать код в разные места на диске. Вы можете использовать директивы компилятора или конфигурацию или различные абстракции (интерфейсы, абстрактные классы) в коде для компиляции исходных кодов в разные версии.

Другие вопросы по тегам