TFS分支术语中的“目标”是什么?

7

我有SVN和Mercurial/Git的经验背景,但是TFS中关于分支的术语让我感到有些困惑。我尝试通过在源代码控制资源管理器中选择团队项目的分支...上下文菜单选项来创建TFS团队项目的特性分支。它看起来像这样:

TFS branch popup

在这里,“Target”是什么意思?它类似于SVN分支的方式,您在其中指定服务器上的路径吗?分支是否有特定路径,还是基于惯例?我倾向于选择像$/branches/MyProjectName/FeatureXYZ这样的内容。
我已经进行了一些研究,试图自己找出“Target”的含义。我点击了右上角的?,找到了this relevant msdn page,但是我能找到的唯一相关解释是这样的:
在“目标分支名称”框中,指定新分支的路径。
这并没有太多帮助。我已经假设它会是一个路径。
此外,在分享我的研究成果方面,我也使用了我的Google-Fu,但没有找到简洁的解释。最后,在撰写这篇文章时,我还查看了建议的重复内容以及类似的问题,但未找到答案。

哦,我还尝试输入 $/MyProjectName/FeatureXYZ 并单击确定,但这会出现一个带有以下错误的警报:

目标项 $/MyProjectName/FeatureXYZ 不能在源项 $/MyProjectName 下。

底线是:TFS分支术语中的“目标”是什么,我应该如何选择?


这是哪个版本的VS和/或TFS?那个对话框看起来很古老。 - MrHinsh - Martin Hinshelwood
@MrHinsh Visual Studio 2013 Ultimate 和 TFSVC 2013。 :-) - Jeroen
2个回答

5
啊,你试图分支一个团队项目而不是包含你的代码的文件夹。
你应该把你的代码放在一个文件夹中,比如说“TRUNK”,在“$/TeamProject/”文件夹下。然后,你可以将“$/TeamProject/TRUNK”分支到“$/TeamProject/Features/FeatureA”。
如果你把所有的代码都倒入了你的团队项目的根目录中,那么你需要先将它移动到一个文件夹中,然后再分支那个文件夹。
警告:你可以创建一个新的团队项目,它是这个项目的一个分支,给你“$/FeatureA”。然而,这种方法是一个可怕的想法,会导致痛苦和苦难。

非常感谢您的建议。我进行了更深入的挖掘后发现它是十分正确的。最终,我采取了与此相关建议一致的做法。我真的需要改掉那种将代码库作为整体来进行分支管理的习惯思维。 - Jeroen

2
您的猜测是正确的,“Target”表示服务器上的路径。但是根目录需要保持一致:在您的团队项目集中,请尝试使用:$/MyProjectName/FeatureXYZ。但是您的源代码首先需要成为一个合格的“分支”。因此,要么将团队项目转换为分支[右键单击],要么在该根级别添加一个文件夹并将其转换为分支。然后,您可以安全地从该分支进行分支。如果您想整理子文件夹上的所有分支,请尝试:$/MyProjectName/Branches/FeatureXYZ [假设您有一个分支$/MyProjectName/Main...],即msdn上的示例

我尝试了您的建议,但弹出一个警告弹窗,显示错误信息“目标项 $/MyProjectName/FeatureXYZ 不能在源项 $/MyProjectName 下”(没有更多详细信息)。 - Jeroen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接