2

我已经尝试在一个非常简单的示例项目中进行分支并且它有效。现在我想分支一个现实生活中的项目,但它根本行不通。

当我尝试对整个团队项目进行分支时,tfs 告诉 ask for a destination。如果我选择一个新目的地,它会告诉我,该目的地不存在。如果我创建一个新文件夹并指向它,它会告诉我该文件夹已经存在。

当我尝试将团队项目分支到团队项目中的子文件夹时,它告诉我这个程序无法完成,这很公平。

但是当我尝试将团队项目中的单个项目分支到另一个子文件夹时,它告诉我没有正确的映射('keine passende Zuordnung',德语我不知道确切的英文错误消息)。

对此的任何帮助都非常感谢。我没有看到,我在这里做的不同,然后我在我的测试项目中做了什么。

编辑:按照建议,我发布了我的项目结构的图像。上面的文件夹是我从团队项目转换为分支的实际项目。第二个是空的目标文件夹。 我的项目结构

4

1 回答 1

1

分支整个团队项目 ( $/ProjectName) 时,您需要使用新建项目向导创建一个新项目并指定它应该从当前项目分支。

分支团队项目的子文件夹时,应该可以,除非该子文件夹的父文件夹被标记为分支根,在这种情况下,没有可以分支到的位置。

任何将分支根目录作为子目录或将分支根目录作为父目录的文件夹都不能用于创建新分支:

在此处输入图像描述

在命令行上尝试tf branches .从要分支的文件夹(查看它是否是分支的一部分)和要分支到的文件夹中运行。如果目标文件夹已经在分支下,则无法分支到它。您可能需要使用Convert to FolderSource control explorer 中的选项来允许在那里创建分支。

看起来您已经创建了目标文件夹,并且目标文件夹已经是一个分支。您还没有描述它是如何产生的,如果它是源文件夹上的分支操作的结果,那么不要选择Branch选择Merge

如果两个文件夹之间没有关系,则不会将其预先填充到可能的合并目标列表中。如果您使用的是 Visual Studio 2013,您可以手动输入路径,TFS 将通过进行无根据的合并来创建关系。如果您使用的是旧版本的 Visual Studio,您可能需要从命令行创建此关系:

tf merge "$/TeamProject/Machinenzustandsanzeige" "$/teamproject/Machinenzustandsanzeige NC-Prä" /baseless /recursive /collection:{uri}

您还可以使用命令行销毁您创建的目标分支,然后重新尝试该分支,然后应该会成功。

tf destroy "$/teamproject/Machinenzustandsanzeige NC-Prä" /recursive /collection:{uri}

tf branch "$/teamproject/Machinenzustandsanzeige;T" "$/teamproject/Machinenzustandsanzeige NC-Prä" /recursive /collection:{uri}

tf checkin "$/teamproject/Machinenzustandsanzeige NC-Prä" /recursive /collection:{uri}

如果工作区尚未正确设置,您可以使用此处概述的步骤通过 UI 进行设置,也可以使用以下命令从命令行执行:

tf workfold /map "$/teamproject/Machinenzustandsanzeige NC-Prä" c:\path\where\you\want\it

其次是:

tf get "$/teamproject/Machinenzustandsanzeige NC-Prä" /recursive

以实现文件夹的添加。

变音变音引起问题的可能性很小。您是否尝试过没有特殊字符的路径?

您想要实现的是标准操作并且 TFVC 支持它,但不知何故您最终陷入了非默认情况。即使在这种情况下,您也可以修复它,但您可能需要求助于UI 中不可用的高级功能,例如/baselessor /forceor 。tf destroy

于 2014-12-22T11:04:10.200 回答