TFS2010 分支到另一个分支的子文件夹 [英] TFS2010 Branching into a subfolder of another branch

查看:23
本文介绍了TFS2010 分支到另一个分支的子文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们的源代码管理中有一个文件夹结构,其中有些内容是分支的,有些则不是.
分支的东西遵循(标准?)ProductionMainDevelopment 分支以及大型项目的偶尔分支的模式.

We have a folder structure in our source control where some things are branched, and some aren't.
The branched stuff follows a (standard?) pattern of Production, Main, Development branches plus the occasional branch for a large project.

有时作为那些大型项目的一部分,网络分支通常不会分支的一些东西.例如,我们可能将 $/source/Libraries/LibraryA 分支到 $/source/branches/Project1/LibraryA 以制作一些主要的 Project1 相关改变它.
然后,当 Project1 即将发布时,我们从 Project1 反向集成到 Main 分支,并从 Project1/LibraryA> 进入 Libraries 文件夹.

Sometimes as part of those large projects web branch some of the stuff that is normally not branched. For instance we might branch $/source/Libraries/LibraryA into $/source/branches/Project1/LibraryA to make some major Project1-related changes to it.
Then when Project1 is nearing release, we reverse integrate both from Project1 into the Main branch, and from Project1/LibraryA into the Libraries folder.

嗯,这就是我们在 TFS2008 中所做的.最近我们转移到 TFS2010,它似乎跟踪什么是分支,什么不是.因此,当我们尝试将 LibraryA 分支为 Project1 的子文件夹时,我们会收到错误消息,指出 Project1 已经是一个分支.

Well, that's how we did it in TFS2008. Recently we moved to TFS2010 which seems to keep track of what things are branches and what aren't. So when we try to branch LibraryA as a subfolder of Project1, we get and error message that Project1 is already a branch.

有没有办法解决这个问题?我们使用 TFS2010 是否错误,如果是,正确的方法是什么?

Is there a way around this? Are we using TFS2010 wrong, and if so, what would be the right way?

推荐答案

正如我在Team Foundation Server 和分支特性,与其他公司相比",TFS 的分支模型在 TFS2008 和 TFS2010 之间发生了很大的变化.
TFS 分支指南分支指南 可以提供帮助.

As I detailed in "Team Foundation Server and branching characteristics, compared to others", the branching model of TFS has evolved quite a bit between TFS2008 and TFS2010.
The TFS Branching Guide and Branching Guidance can help.

有关分支管理的更多详细信息,请参阅此主题:

See this thread for more details on branch management:

在 TFS 2010 中,用户必须将管理分支权限设置为允许给定路径才能执行以下操作:

In TFS 2010, a user must have Manage Branch permission set to Allow for a given path to do the following:

  • 将文件夹转换为分支(并将分支转换回文件夹)
  • 更新分支的元数据(即所有者、描述)
  • 从原始分支创建额外的子分支
  • 使用合并关系更改分支之间的关系(即重新创建分支)
  • W 在 TFS 2010 中,用户必须将给定路径的合并权限设置为允许才能执行以下操作:

    W In TFS 2010, a user must have Merge permission set to Allow for a given path can do the following:

    • 暂挂指定路径下的分支、文件夹、文件的合并操作

    管理分支和合并权限是 TFS 2010 的新功能.

    Manage Branch and Merge permissions are new for TFS 2010.

    TFS 2010 中的分支是服务器端操作.
    据推测,如果您有一个开发人员团队,并且在没有合并或管理分支权限的情况下授予他们签入和签出权限 - 这些开发人员将能够创建工作区,将他们需要处理的任何分支映射到他们的本地文件夹硬盘.

    Branching in TFS 2010 is a server-side operation.
    Presumably, if you have a team of developers and you grant them check-in and check-out permissions without merge or manage branch permissions - these developers would be able to create workspaces that map whatever branches they need to work on to local folders on their hard drive.

    在 VS 2010 中,分支现在是一流的对象,因此有一个分支图标,可以轻松区分分支和文件夹(带有文件夹图标).

    In VS 2010, Branches are now a first-class object and as such have a branch icon that easily distinguishes a branch from a folder (with a folder icon).

    另请参阅此主题,其中的场景更接近您的情况.

    See also this thread with a scenario closer to your situation.

    对于共享库,我通常更喜欢使用文件引用而不是项目引用.
    我将有一个单独的 TeamProject 来开发这些库的源代码.
    您可以将程序集部署到共享文件夹,并从使用它们的各种项目中引用这些程序集.
    这种方法将允许您拥有多个版本的程序集.每个项目都会创建对它们所需特定版本的文件引用.

    For shared libraries, I generally prefer using file references rather than project references.
    I would have a separate TeamProject for developing the source code for these libraries.
    You could deploy the assemblies to a shared folder and reference these assemblies from the various projects that use them.
    This approach would permit you to have multiple versions of the assemblies. Each project would create file references to the particular version they require.

    这篇关于TFS2010 分支到另一个分支的子文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆