TFVC 和将分支转换为文件夹的后果

TFVC and consequences of converting branches to folders

设置:

我有一个带有 TFVC 源代码控制存储库的客户端。根目录是一个文件夹,而不是 b运行ch。分散在整个层次结构中的是 b运行ches,有时 2 层,有时 3 层深。为了使用 git-tfs 迁移存储库,我需要根目录为 b运行ch。但是,当我尝试将根文件夹转换为 b运行ch 时,出现此错误:

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.

问题:

对我有什么影响吗"de-branching"那些b运行ches中的一些,把它们变成普通文件夹,这样我就可以把根设为a b运行ch然后使用git-tfs要迁移吗?我可能会丢失一些历史记录吗?我会冒着破坏源代码控制存储库或丢失任何数据的风险吗?我正在尝试非常小心地处理客户端的源代码,不要冒丢失任何数据的风险。

谢谢!

更新:

我认为我需要将根转换为 b运行ch 的理由: * 当创建一个简单的测试存储库来尝试迁移时,运行 这个命令

git tfs list-remote-branches https://mysite.visualstudio.com/

我收到这条消息

"No TFS branches were found!"

this github 问题上,它说我应该切换到 b运行ch,然后我会看到它并且有效。所以我假设克隆不会工作,因为它没有出现在列表中。此外,对于类似结构的测试回购,当我 运行 git tfs list-remote-b运行ches 时,我得到:

TFS branches that could be cloned:

$/myproject1/Releases/7.1/Metadata [*]

$/myproject1/Releases/7.2/Metadata [*]

$/myproject1/Releases/7.3/Metadata [*]

$/myproject1/Trunk/Main [*]

Cloning root branches (marked by [*]) is recommended!

PS:if your branch is not listed here, perhaps you should convert its containing folder into a branch in TFS: -> Open 'Source Control Explorer' and for each folder corresponding to a branch, right click on the folder and select 'Branching and Merging' > 'Convert to branch'.

基于此,我认为我必须将其转换为 b运行ch。 我 运行 的下一个命令是

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

我以为当根目录是一个文件夹时这给了我一个错误,但当我刚刚重新运行它时它只是给了我一个警告。文件夹结构类似于 folder/folder/branch 文件夹/folder/folder/branch/文件夹 等等

warning: you are going to clone the whole repository or too high in the repository path ! => If you want to manage branches with git-tfs, clone one of this branch instead : - $/myproject1/Releases/7.1/Metadata - $/myproject1/Releases/7.2/Metadata

所以看起来回复是正确的。您可以毫无问题地克隆根目录。谢谢!

不要将您的分支转换为文件夹。

以下命令告诉您要克隆什么?

    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 集合中的每个文件夹,但如果您想克隆带有分支的历史记录,则应将每个文件夹转换为一个分支。