11

也许只是因为我不熟悉 TFS(我主要使用 SVN),但我不明白如何在 Codeplex 托管项目上创建分支。

我正在使用VS2012。在 Source Control Explorer 中,我在上下文菜单中选择Branching and Merging > Branch...,但随后我不知道在Target字段中输入什么:

在此处输入图像描述

如果我尝试$/wpfanimatedgif/branches/1.3,我会收到以下错误:

目标项目 $/wpfanimatedgif/branches/1.3 不能位于源项目 $/wpfanimatedgif 下。

如果我尝试$/branches/1.3,我会收到此错误:

TFS10198:源代码控制必须分支到现有的团队项目。分支不是团队项目。

我还尝试从 Team Explorer 创建一个新的团队项目,但我没有所需的权限。

那么如何创建一个分支呢?还是不可能在 Codeplex 项目上做到这一点?

顺便说一句,我想创建一个分支的原因是因为我正在开发一个实验性功能,并且我不想发布到“主干”(或 TFS 中的任何名称)。也许 TFS 有不同的方式来处理这种情况?我知道搁置更改,但如果我理解正确,搁置的代码将不会在 Codeplex 上可用,是吗?

4

1 回答 1

20

首先,它可能有助于理解什么是“团队项目”——它是源代码控制树顶层源代码控制中的一个逻辑条目,通常用于一组开发人员,并且各种权限和设置是设置在这个级别。在一个团队项目中,您可以拥有多个开发项目,例如 Visual Studio 解决方案或 Java 项目。在这种情况下,您的团队项目是$/WpfAnimatedGif.

至于分支和合并,它们发生团队项目级别以下,通常作为您trunkmain分支的对等方。TFS 分支和合并指南中介绍了各种分支和合并策略,但名为“WpfAnimatedGif”的 Visual Studio 解决方案的简化示例可能具有如下所示的分支策略:

$/WpfAnimatedGif/main/WpfAnimatedGif
$/WpfAnimatedGif/branches/1.3/WpfAnimatedGif
$/WpfAnimatedGif/branches/test_features/WpfAnimatedGif

至于“最佳实践”,他们将在该文件夹下创建一个trunk或文件夹并将您的 VS 项目移动到该文件夹​​下。但是,您可以为每个分支创建一个新文件夹并独立地对每个项目进行分支。main$/WpfAnimatedGif

例如:

$/WpfAnimatedGif/WpfAnimatedGif分支到$/WpfAnimatedGif/branches/1.3/WpfAnimatedGif

$/WpfAnimatedGif/WpfAnimatedGif分支到$/WpfAnimatedGif/branches/1.3/WpfAnimatedGif.Demo

但是,由于这些分支是独立的,因此您还必须独立地合并这两个文件夹,而不是从branches文件夹中原子地合并。

于 2012-12-10T00:39:06.530 回答