我们的源代码管理中有一个文件夹结构,其中有些东西是分支的,有些则不是。
分支的东西遵循Production
,Main
,Development
分支的(标准?)模式以及大型项目的偶然分支。
有时作为那些大型项目的一部分,网络分支通常不会分支的一些东西。例如,我们可能会将$/source/Libraries/LibraryA
分支到$/source/branches/Project1/LibraryA
,以便对其进行一些重大的Project1
相关更改。
然后,当Project1
即将发布时,我们会将Project1
和Main
分支以及Project1/LibraryA
反向整合到Libraries
文件夹中。
嗯,这就是我们在TFS2008中做到的。最近我们搬到了TFS2010,它似乎记录了什么是分支,什么不是。因此,当我们尝试将LibraryA
分支为Project1
的子文件夹时,我们会收到Project1
已经是分支的错误消息。
有解决方法吗?我们是否使用TFS2010是错误的,如果是,那么正确的方法是什么?
答案 0 :(得分:3)
正如我在“Team Foundation Server and branching characteristics, compared to others”中详述的那样,TFS的分支模型在TFS2008和TFS2010之间有了很大的发展。 TFS Branching Guide和Branching Guidance可以提供帮助。
有关分支机构管理的更多详细信息,请参阅this thread:
在TFS 2010中,用户必须将“管理分支”权限设置为“允许”,以便给定路径执行以下操作:
W在TFS 2010中,用户必须将“合并”权限设置为“允许”才能执行以下操作:
管理分支和合并权限是TFS 2010的新功能。
TFS 2010中的分支是服务器端操作 据推测,如果你有一个开发团队并且你授予他们签入和签出权限而无需合并或管理分支权限 - 这些开发人员将能够创建工作空间,将他们需要处理的任何分支映射到他们的本地文件夹硬盘。
在VS 2010中,分支现在是一流的对象,因此有一个分支图标,可以轻松区分分支与文件夹(带有文件夹图标)。
另请参阅this thread,其中的情景更接近您的情况。
对于共享库,我通常更喜欢使用文件引用而不是项目引用 我会有一个单独的TeamProject来开发这些库的源代码 您可以将程序集部署到共享文件夹,并从使用它们的各个项目中引用这些程序集 这种方法允许您拥有多个版本的程序集。每个项目都会创建对所需特定版本的文件引用。
答案 1 :(得分:0)
我有类似的问题。我试图在MAIN中创建另一个分支(在单独的文件夹中)并弹出此错误。
为我解决这个问题的原因是在根目录中创建了一个新分支,然后将其移至Dev。