TFVC и последствия конвертации веток в папки
Настроить:
У меня есть клиент с репозиторием контроля версий TFVC. Корень - это папка, а не ветка. По всей иерархии разбросаны ветви, иногда 2, а иногда и 3 уровня. Чтобы использовать git-tfs для переноса хранилища, мне нужно, чтобы корень был веткой. Однако, когда я пытаюсь преобразовать корневую папку в ветку, я получаю эту ошибку:
You cannot create a branch at $/myProject because a branch already exists at $/myProject/Releases/7.3/Metadata.
If $/myProject/Releases/7.3/Metadata is not a branch convert it back to a folder and retry the operation.
Вопрос:
Имеет ли какое-либо влияние на то, что я "разветвляю" некоторые из этих веток, превращаю их в обычные папки, чтобы я мог сделать корень веткой и затем использовать git-tfs для его миграции? Могу ли я потерять часть истории? Буду ли я рисковать испортить хранилище контроля версий или потерять какие-либо данные? Я стараюсь быть очень осторожным с исходным кодом клиента и не рисковать потерей каких-либо данных.
Спасибо!
Обновить:
Мое оправдание для размышления: мне нужно преобразовать корень в ветку: * Когда был создан простой тестовый репозиторий, чтобы попробовать миграцию, и запустили эту команду
git tfs list-remote-branches https://mysite.visualstudio.com/
Я получил это сообщение
"Ветви TFS не найдены!"
И в этом вопросе github было сказано, что я должен перейти на ветку, тогда я увижу это, и это сработало. Поэтому я предположил, что клон не будет работать, так как он не появился в списке. Кроме того, с таким же структурированным репозиторием, когда я запускал git tfs list-remote-branch, я получил:
Ветви TFS, которые могут быть клонированы:
$ / myproject1 / Releases / 7.1 / Метаданные [*]
$ / myproject1 / Releases / 7.2 / Метаданные [*]
$ / myproject1 / Releases / 7.3 / Метаданные [*]
$ / myproject1 / Trunk / Main [*]
Рекомендуется клонировать корневые ветви (отмеченные [*])!
PS: если ваша ветка не указана здесь, возможно, вам следует преобразовать содержащую ее папку в ветку в TFS: -> Открыть 'Source Control Explorer' и для каждой папки, соответствующей ветке, щелкните правой кнопкой мыши по папке и выберите 'Ветвление и Слияние ' > ' Преобразовать в ветку '.
Исходя из этого, я подумал, что должен преобразовать его в ветку. Следующая команда, которую я выполнил, была
git-tfs clone https://mysite.visualstudio.com/ $/myproject1
Я думал, что это дало мне ошибку, когда корень был папкой, но это просто дало мне предупреждение, когда я перезапустил его только сейчас. Структура папок была примерно такой: папка / папка / папка филиала / папка / папка / ветка / папка и т. Д.
предупреждение: вы собираетесь клонировать весь репозиторий или слишком высоко на пути к репозиторию! => Если вы хотите управлять ветками с помощью git-tfs, вместо этого клонируйте одну из этих веток: - $/myproject1/Releases/7.1/ Метаданные - $/myproject1/Releases/7.2/ Метаданные
Похоже, что ответы верны. Вы можете клонировать без рута без проблем. Спасибо!
1 ответ
Не конвертируйте свою ветку в папку.
Что следующая команда говорит вам клонировать?
git tfs list-remote-branches http://tfs:8080/tfs
Документ на эту тему: https://github.com/git-tfs/git-tfs/blob/master/doc/usecases/manage_tfs_branches.md#find-the-tfs-branch-to-clone-optional
Редактировать: git-tfs может клонировать все папки в коллекции TFVC, но если вы хотите клонировать историю с ветвями, каждая папка должна быть преобразована как ветвь.