В настоящее время наш проект TFS (TFVC, не git) содержит папку, в которой находится весь наш продукт. Эта папка содержит три ветви (Dev, Main и Release), каждая из которых, в свою очередь, содержит множество различных подпроектов. Мы пытаемся реструктурировать так, чтобы отдельные компоненты содержались в их собственной разветвленной структуре.
Вопрос. Можно ли переместить папку, содержащуюся в ветке (не в самой ветке), вместе с соответствующей папкой в других ветках в новый проект TFS, сохраняя при этом связь и статус любые неслитые наборы изменений?
Вот схема желаемого конечного результата:
Мы хотим переместить каждую из папок «Проекта 1» (слева) в их собственную структуру ветвления (справа), но нам нужно, чтобы все неслитые наборы изменений «появились». То есть, если мы попытаемся выполнить слияние Dev с Main в новой структуре, нам будет представлен список (соответствующих) наборов изменений, которые не были объединены в старой структуре.
Это возможно? Если да, то какая серия команд tf
/tfvc нам понадобится для этого? Я углубился в google, но не смог — либо потому, что я не знаю, как описать это удобным для поиска способом, либо это просто невозможно.
Что я пробовал:
Прямое перемещение/переименование каждой из папок в новый проект (предварительное создание каждой целевой ветки Dev/Main/Release)
- The unmerged changesets were lost.
- Все, что я получаю, это один набор изменений «переместить/переименовать», который появляется в неслитном списке для новых ветвей. Слияние этого приводит к тому, что все в целевой ветке перезаписывается (т. е. файлы ветки релиза теперь такие же, как и в dev).
- На стороне + ожидающие полки «автоматически следуют», когда не полки
Разветвите каждую папку в новую структуру (на этот раз без предварительного создания целевых папок ветки)
- This created three branches that weren't related to each other.
- Я смог решить эту проблему, выполнив безосновательное слияние между ними (
tf merge /baseless /recursive
) и взяв файлы целевых веток в случае конфликта; с последующим перевоспитанием ветвей. (Как описано здесь) - В отличие от вышеописанного, сами файлы оказались правильными (ничего не перезаписывалось).
- Необъединенные наборы изменений были потеряны.
- Полки перемещаются в исходное место.
Если это имеет значение, мы готовы потерять всю историю, если это единственный способ решить эту проблему. Предпочтительно, чтобы мы сохранили его, даже если это означало хранить где-то «устаревшую» копию оригинала. Я не так беспокоюсь о наборах полок, «следующих» за своим источником ... у нас есть только два, которые будут затронуты, и мы можем справиться с ними вручную, если это необходимо. Мы используем локальную TFS 2018.
Изменить: в ответ на ответ, который был опубликован, а затем удален:
Я не собираюсь перемещать ветки, а извлекать папки глубоко внутри них в их собственную соответствующую структуру ветвей без потери ожидающих изменений. Я показываю только два уровня выше, но на самом деле они намного глубже. Я могу tf rename
всю ветку в песочнице и получить ожидаемые результаты... но переименование веток - это не то, что я пытаюсь сделать, а перемещение папок дает неожиданные результаты.
tf
команд TFVC, что мы и ищем. - person pinkfloydx33   schedule 14.12.2018