В настоящее время наш проект TFS (TFVC, not git) содержит папку, в которой находится весь наш продукт.Эта папка содержит три ветви (Dev, Main и Release), каждая из которых, в свою очередь, содержит много различных подпроектов.Мы пытаемся реструктурировать таким образом, чтобы отдельные компоненты содержались в их собственной структуре ветвления.
Вопрос. Можно ли переместить папку, содержащуюся в ветви (не в самой ветви), вместе с соответствующей папкойв других ветвях в новый проект TFS при сохранении взаимосвязи и статуса любых необработанных наборов изменений?
Вот диаграмма нашего желаемого конечного результата:
Мы хотим переместить каждый из «Проект 1» папки (левая сторона) в свою собственную ветвящуюся структуру (правая сторона), но нам нужны любые не объединенные наборы изменений, чтобы "прийти вместе".То есть, если мы попытаемся объединиться из Dev в Main в новой структуре, нам будет представлен список (соответствующих) наборов изменений, которые не были объединены в старой структуре.
Возможно ли это?Если это так, , какую серию tf
/ tfvc команд нам нужно выполнить?Я углубился в Google, но потерпел неудачу - либо потому, что я не знаю, как описать это дружественным для поиска способом, либо это просто невозможно.
То, что я пробовал:
Прямое перемещение / переименование каждой из папок в новый проект ( предварительное создание каждой из целевых ветвей Dev / Main / Release)
- Неизмененные наборы изменений были утеряны.
- Все, что я получаю, - это один набор изменений "переместить / переименовать", который появляется в не объединенном списке для новых ветвей.Слияние , что вызывает перезапись всего в целевой ветви (т.е. файлы ветки релиза теперь такие же, как у dev).
- На стороне + отложенные наборы полок "auto-follow", когда не хранится
Разветвление каждой папки в новую структуру (на этот раз без предварительного создания папок целевых ветвей)
- Это создало три ветви, которые не были связаны друг с другом.
- Мне удалось решить эту проблему путем безосновательного слияния между ними (
tf merge /baseless /recursive
) и получения целевых файлов ветвей в случае конфликта;с последующим переучиванием ветвей.(Как объяснено здесь ) - В отличие от вышеизложенного, сами файлы оказались правильными (ничего не было перезаписано).
- Неизолированные наборы изменений были утеряны.
- Стеллажи не могут быть доставлены в исходное местоположение
Если это имеет значение,мы готовы потерять всю историю, если это единственный способ решить эту проблему.Желательно, чтобы мы хранили его, даже если бы это означало хранение «устаревшей» копии оригинала.Я не очень обеспокоен тем, что наборы полок также следуют за их источником ... у нас есть только два, которые могут быть затронуты, и мы можем обрабатывать их вручную, если это необходимо.Мы используем предварительную версию TFS 2018.
Изменить: в ответ на ответ, который был опубликован, а затем удален:
Я не собираюсь перемещать ветви, но извлекать папки глубоко внутри них в свою собственную структуру ветвей без потери ожидающих изменений.Я показываю только два уровня выше, но на самом деле они намного глубже.Я могу tf rename
всю ветку в песочнице и получить ожидаемые результаты ... но я не пытаюсь переименовать ветки, а перемещение папок дает неожиданные результаты.