安全删除TFS分支项目

时间:2010-02-26 11:26:28

标签: version-control tfs branch

我目前正在为一组非常大的解决方案重组我们的TFS源代码控制,到目前为止我已经成功完成了这项工作。

我现在遇到一个问题,我需要删除为旧结构分支的旧版“Release Branch”TFS项目,并且不再需要,因为我现在在新结构中托管了一个发布分支。 / p>

这是一个示例,说明源控件现在在移动所有内容后的样子:

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

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

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

  1. tf delete /lock:checkout /recursive TestMain删除分支。
  2. TfsDeleteProject删除项目
  3. tf delete似乎仅在我需要删除与主干在同一项目中的分支时才相关,TfsDeleteProject似乎不会删除分支关联来自源项目的(我希望我错了,见下文)。

    有人可以告诉我上述内容是否有效,以及我应该以何种顺序执行,以成功删除TFS $/Release Branch Project同时删除分支关联(右键单击$/Source Project - >属性 - >分支)?

5 个答案:

答案 0 :(得分:40)

让我说出这样的事实:

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

答案 1 :(得分:16)

在TFS中,您通常无法永久删除团队项目中的任何内容(TfsDeleteProject会删除一个完整的团队项目,但不清楚源控件内容是否会被实际删除,因为团队项目只是顶级项目源控制树的级别。)

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

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

编辑(我终于记得这个命令在哪里):

从命令行还有另一个选项:tf destroy

  

从Team Foundation版本控制中销毁或永久删除版本控制的文件。

我希望这会删除分支记录以创建现在已销毁的文件......但您可能需要检查。

答案 2 :(得分:8)

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

答案 3 :(得分:4)

VS2013我无法在@Radhika回答中找到它

我确实在Team Explorer > Source Control Explorer > 右键 on project > Branching and Merging > Convert to folder

下找到了它

enter image description here

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

修改通过@DdW评论复制:转换后需要执行Get Latest Version,然后才能启用删除选项

答案 4 :(得分:0)

使用回滚删除分支

  1. 右键单击选择的分支。
  2. 选择回滚到特定变更集。
  3. 输入1

enter image description here 集。 选择 1。

  1. 分支将被标记为删除。

enter image description here

  1. 签入更改,它将从源代码管理中删除。