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-branches, я получил:

Ветки TFS, которые можно клонировать:

$/myproject1/Релизы/7.1/Метаданные [*]

$/myproject1/Релизы/7.2/Метаданные [*]

$/myproject1/Релизы/7.3/Метаданные [*]

$/myproject1/магистраль/основной [*]

Клонирование корневых ветвей (отмеченных [*]) рекомендуется!

PS: если ваша ветка не указана здесь, возможно, вам следует преобразовать содержащую ее папку в ветку в TFS: -> Откройте «Проводник управления исходным кодом» и для каждой папки, соответствующей ветке, щелкните правой кнопкой мыши папку и выберите «Ветвление и Слияние» > «Преобразовать в ветвь».

Исходя из этого, я подумал, что мне нужно преобразовать его в ветку. Следующая команда, которую я выполнил, была

git-tfs clone https://mysite.visualstudio.com/ $/myproject1

Я думал, что это дало мне ошибку, когда корень был папкой, но это просто дало мне предупреждение, когда я только что перезапустил его. Структура папок была примерно такой: папка/папка/ветвь, папка/папка/папка/ветвь/папка и т. д.

предупреждение: вы собираетесь клонировать весь репозиторий или слишком высокий путь к репозиторию! => Если вы хотите управлять ветками с помощью git-tfs, вместо этого клонируйте одну из этих веток: - $/myproject1/Releases/7.1/Metadata - $/myproject1/Releases/7.2/Metadata

Так что похоже ответы правильные. Вы можете клонировать с корнем без проблем. Спасибо!


person Dan Csharpster    schedule 17.06.2018    source источник
comment
Почему вы хотите перенести корневую папку в ветку? Даже если корневая папка не является веткой, вы также можете перенести историю с помощью git tfs clone <URL> $/myProject. И какую команду вы использовали, чтобы преобразовать корневую папку в ветку, пока получили ошибку?   -  person Marina Liu    schedule 18.06.2018
comment
Спасибо за вопросы. Я обновлю свой вопрос с этими деталями   -  person Dan Csharpster    schedule 18.06.2018
comment
Я обновил свой вопрос с этой информацией, но в основном из-за вывода list-remote-branchs, комментариев некоторых пользователей, которые я нашел в Интернете, и некоторых выходных комментариев из инструмента git-tfs.   -  person Dan Csharpster    schedule 18.06.2018
comment
Я обновил свой ответ, чтобы дать вам другую информацию...   -  person Philippe    schedule 18.06.2018
comment
@DanCsharpster git-tfs clone https://mysite.visualstudio.com/ $/myproject1 перенесет все версии репозитория TFVC в ветку git по умолчанию master. Он покажет только предупреждение, а не ошибку (как вы обнаружили). А если вам нужно мигрировать определенную ветку TFVC, то укажите ветку в git tfs clone command.   -  person Marina Liu    schedule 19.06.2018


Ответы (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-необязательно

Изменить: git-tfs может клонировать все папки в коллекции TFVC, но если вы хотите клонировать историю с ветвями, каждая папка должна быть преобразована как ветвь.

person Philippe    schedule 18.06.2018
comment
Я обновил свой вопрос с помощью этого вывода, так как он слишком длинный для комментария, но в основном он перечисляет несколько меньших ветвей, а затем говорит мне, что я должен преобразовать корень в ветвь. - person Dan Csharpster; 18.06.2018
comment
Ах, попался! Это была недостающая часть, в которой я не был уверен. Моему клиенту определенно нужна их история. Так что мне нужно будет преобразовать их вложенные ветки в папки и преобразовать корневую ветвь в папку, верно? Есть ли в этом недостаток? Есть ли риск листать папки и ветки? Я не хочу ставить под угрозу их репозиторий. - person Dan Csharpster; 18.06.2018
comment
Насколько я знаю, нет, нет плохого побочного эффекта конвертировать папку в ветку. Если я хорошо помню, вы можете преобразовать его позже, и он будет работать, но я не уверен. Я надеюсь на это для вас. - person Philippe; 19.06.2018