9

我一直在遵循“使用 Visual Studio Team Foundation Server 进行团队开发”中关于构建项目使用分支将代码从一个团队项目共享到另一个团队项目中的建议。所以我们的源代码树看起来像这样:

server\instance
  Shared
    share
  Project1
    Main
      Product1
      share   (branched into Project1 from Shared)
    Stories
      1607
      1832

或者至少应该。

如您所见,除了在一些共享代码中进行分支外,我们还为每个用户故事使用分支。

问题是,当我尝试从共享项目(源分支名称:$/Shared/share;目标分支名称:$/Project1/Main/share)在共享文件夹中分支时,出现错误:

TF203028:您无法在 $/Project1/Main/share 处创建分支,因为在 $/Project1/Main 处已存在分支。

据记载,您不能在 TFS 中嵌套分支,因此该错误不足为奇。因此,我似乎陷入了困境,而《团队发展》这本书是错误的。(这本书暗示这应该有效。)

但外表可能具有欺骗性,我比这本书的作者更容易出错。谁能帮我理解如何解决这个问题?

(一个明显的解决方案是让故事分支的根成为共享的兄弟,而不是父级。但这对我们没有任何用处,因为这意味着我们将无法对共享进行更改故事分支中的代码,这会破坏每个故事的分支对象。这也意味着项目中更改路径的工作量相当大。)

4

1 回答 1

5

我找到了解决方案。

TFS 针对 Project1\Main 显示了一个分支图标,而不是文件夹图标。我去File>Source Control>Branching and Merging>Convert to Folder并将它转换回一个文件夹。然后我能够将共享分支到 Project1。

奇怪的是,Main 仍然是创建故事分支的一个点,并且这些分支仍然存在。

真正的解决方案是我必须将共享代码分支到项目普通文件夹的地方,而不是分支图标。我去File>Source Control>Branching and Merging>Convert to Folder并将它转换回一个文件夹。然后我能够在 Main 之外创建分支。

Main 的分支和故事分支保留了它们的分支图标。share 现在看起来像一个普通的文件夹。

于 2012-04-04T16:11:40.020 回答