2013-11-15 2 views
1

У меня есть следующая конфигурация TFSTFS Лучший способ справиться с филиалами и проект ссылается

Root\ 
    Proj1\ 
    App1\ 
     ... 
    App2\ 
     ... 
    Proj2\ 
    Lib1\ 
     ... 
    Lib2\ 
     ... 

App1 и App2 оба имеют ссылки на проекты в Lib1 и Lib2. App1 не ссылается на App2, а Lib1 не ссылается на Lib2.

Теперь я хочу вносить изменения в Lib1 ... но я хочу разветвить его, потому что изменения радикальны. Эти изменения не должны требовать изменений ни в app1, ни в app2.

Я создал ветку Lib1Branch1 в TFS ... но App1 и App2 оба по-прежнему ссылаются на Lib1, а не на lib1branch1 ... Я не хочу вручную переписывать ветку в каждом приложении (на самом деле у меня гораздо больше чем только два).

Когда я использовал SVN, если я разветвил проект и переключился на этот проект, локальные папки сохранили свои исходные имена и изменилось только содержимое ... таким образом, построив одну ветвь lib против здания с другой требуется только, чтобы я переключал ветви и делал все-таки ... как мне получить подобное поведение с помощью TFS?

ответ

3

Думаю, у вас есть недоразумение.

Проект представляет собой самостоятельную деталь, которая является частью более крупной вещи, называемой решением. Например, одна библиотека классов - это один проект. Он может ссылаться на другие проекты.

Существует несколько способов разветвления. Незначительные ветви могут просто потребовать разветвления конкретного проекта внутри решения (например, Lib1), в то время как для серьезных изменений потребуется разветвление всего решения.

Похоже, что вам нужно немного изменить структуру TFS, а затем разделить всю вещь. Например, структура папок должна, вероятно, будет похож на следующее:

Root 
    \1.0 
    \Web Apps 
     \App1 
     \App2 
    \Libraries 
     \Lib1 
     \Lib2 

Затем, когда вы ветви, вы берете на себя всю ветку 1.0. Таким образом, все ссылки сохраняются между двумя ветвями.

+0

Root - это сборник TFS, под root - два проекта TFS, в первом проекте - набор SLN для Visual Studio для различных приложений, каждое из этих приложений ссылается на различные .proj-файлы из второго TFS Porject (проект libs) Второй проект TFS имеет набор библиотек Visual Studio SLN. Я хочу разветвить конкретный файл проекта в рамках конкретного решения в проекте Libraries LFS ... – Paragon

+0

@Paragon: Вы можете перечитать мой ответ. Я понимаю, как он структурирован, просто потому, что особый способ его структурирования не способствует разветвлению, как вы привыкли к нему. Это означает, что элементы TFS необходимо перестроить или вам придется жить с перенастройкой App1, потому что вы разветвляете Lib1. Это не проблема TFS; скорее это просто проблема с тем, кто настроил ваш сервер TFS. – NotMe

+0

Я настроил сервер TFS :) Но, ваше высказывание, что для внесения изменений, которые не влияют на API Lib1, я должен разветвить все ниже 1.0? Я мог понять, что если бы я занимал постоянную ветвь, но я ожидал бы, что она будет более избирательно, чем это. Мне все же удалось найти работу. Если вы делаете ветку в Lib1 до Lib1_Branch1, то переназначайте Lib1_Branch1 в тот же локальный каталог, который был занят Lib1, вы можете работать с Lib1_Branch1 вместе с Lib2. Затем, после проверки изменений, верните отображение в нормальное состояние для слияния. – Paragon

Смежные вопросы