2010-02-26 72 views
25

我目前正在为一组非常大的解决方案重组我们的TFS源代码控件,到目前为止我已经成功完成了这个任务。安全删除一个TFS分支项目

我现在有一个问题,我需要删除旧的“Release Branch”TFS项目,这个项目是旧结构的分支,不再需要,因为我现在在新结构中托管了一个发布分支。

这是源头控制现在看起来如何移动的一切之后的示例:

$/Source Project 
    /Trunk 
     /[Projects] 
    /Release 
     /[Projects] 

$/Release Branch Project 
    /[Projects] 
    /[Other legacy stuff] 

到目前为止,我已经发现的信息说:

  1. tf delete /lock:checkout /recursive TestMain删除一个分支。
  2. TfsDeleteProject删除项目

tf delete似乎是唯一相关的,当我需要删除一个分支,是在同一个项目的后备箱内,并TfsDeleteProject似乎并不像它会删除分支协会从源项目(我希望我错了,见下文)。

有人能告诉我,如果将上面的工作,以及以什么顺序我应该执行他们,成功地删除TFS $/Release Branch Project同时删除分会(右单击$/Source Project - >属性 - >分支机构)?

回答

16

在TFS中,您通常不能永久删除团队项目中的任何内容(并且TfsDeleteProject会删除一个完整的团队项目,但不清楚源控制内容是否会被真正删除,因为团队项目只是最高级别的源代码管理树)。

删除文件或整套文件只是另一个跟踪的更改,回到历史记录中,仍然可以看到。

您可以使用权限使其无法访问。或者在“Obsolete”团队项目下重命名。

EDIT(我终于想起在那里这个命令是):

还有另一种选择,在命令行:tf destroy

破阵,或永久删除,版本控制文件从团队基础版本控制。

我希望这将删除分支记录来创建,现在销毁,文件...但你可能需要检查。

+0

因此,如果我删除发布分支团队项目,这将正确地从分支列表中取消关联,还是会在那里保留一个引用?基本上我想“不分枝”。 – Codesleuth 2010-02-26 11:49:44

+0

@Codesleuth:查看更新。 – Richard 2010-02-26 14:39:00

+0

感谢您的更新。似乎有风险:我认为我会在执行此操作之前执行TFS备份,lol – Codesleuth 2010-02-26 15:30:19

40

让我把事实是这样的:

  • 内TFS源代码控制系统的情况下,“删除”是一个纯粹的逻辑运算。您可以随时取消删除。您可以让多个删除的项目随着时间的推移占用相同的路径,甚至可以同时使用。分支关系被保留。
  • TFS“Destroy”是物理移除。为了保持数据库的完整性,这意味着所有实体关系也会被删除:更改集历史记录,暂挂更改记录,搁置版本,合并历史记录以及是 - 分支层次结构。此销毁功能在TFS 2008中引入。
  • 销毁是唯一允许更改合并历史记录表(从中确定分支关系)的操作。所有其他操作都严格追加。
  • TfsDeleteProject尽最大努力彻底删除项目的所有痕迹,主要目标是允许创建具有相同名称的全新项目。一些TFS子系统支持物理删除;某些(如WIT字段元数据)仅支持逻辑删除,即使在TFS 2008 &之后。在源代码控制的情况下,TfsDeleteProject在2005年调用“delete”,在2008+调用“destroy”。
8

选择您想取消分支的分支文件夹。然后 File > Source Control > Branching and Merging > Convert to Folder

+1

我没有这个选项。你使用的是什么版本的VS和TFS? – Codesleuth 2012-03-08 12:03:51

+2

这只是一个选项,如果您已将文件夹转换为分支并希望将其转换回文件夹。分支(不是转换)必须使用“tf destroy”命令从命令行销毁。 – 2012-03-31 23:11:13

3

VS2013我找不到它在@Radhika答案

我发现它在Team Explorer > Source Control Explorer > right mouse on project > Branching and Merging > Convert to folder

enter image description here

希望这可以节省您的时间。

+0

请注意,转换完成后需要执行'获取最新版本',然后才能启用'删除'选项。 – DdW 2017-04-04 12:55:40