如何删除TFS 2010中的特定ChangeSet?

Che*_*rry 11 c# tfs tfsbuild tfs2010 tfs2012

如何删除tfs2010中的特定变更集?

我有变更集版本号545,544,543,542.

现在,我希望仅在tfs中删除特定的变更集543?

Ari*_*ian 15

您必须回滚变更集,否则无法删除变更集.(回滚命令)

在您的情况下,一个简单的Rollback命令将是这样的:

TF rollback /changeset:C543
Run Code Online (Sandbox Code Playgroud)

  • C544和545的变化在哪里? (4认同)
  • 我希望你能在你的答案中解释它.这样,它会使有相同问题的其他人受益. (3认同)
  • @JohnSaunders 我感谢您的关注,但我试图尽可能简单地回答这个问题。没有问,C544和C545会发生什么!它被问到如何删除变更集 C543,我刚刚回答了这个问题,仅此而已。顺便说一句,正如我在评论中提到的,C544 和 C545 不会发生任何变化,而是由 TFS 在用户的工作区中创建一些新的否定更改,并且与其他未决更改一样,它们应该作为常规更改集由用户签入,因此在签入之后将创建新的变更集(如 C546),其他变更集不会发生任何事情。 (2认同)

Ada*_*hah 9

您无法删除TFS中的变更集.即使你可以以某种方式,(我认为你可以对TFS数据库运行sql查询来做到这一点)这不是一个好习惯.如果人们开始删除变更集/历史记录,则版本控制的全部目的将被取消.我认为很少有其他源代码控制允许这样做,但我不建议这样做.这是一个不好的做法.

此外,如果你使用TFS Workitems/Test Cases等其他功能,变更集会链接到它,所以如果它们被删除,链接将变为孤儿(我认为).

正如Arin所说,你可以做的最接近的事情是使用Rollback命令但是当你这样做时,你必须在回滚后签入代码,所以基本上你会看到历史中的旧changset和新的changset(回滚).

  • 我试图修复从一个TFS到另一个TFS的拙劣迁移,如果有可能清除"坏"变更集,我会很高兴!我不想保留历史,这是糟糕的数据.我的选择 - 从头开始​​重启(已浪费的天数),或放弃它们. (3认同)

Dav*_*yan 5

免责声明-您永远不要,永远不要这样做。甚至不用考虑!

背景-我正在尝试进行部分TFS迁移,并使用“ TFS集成”工具进行了最糟糕的工作。最近,它把一系列错误的变更集转储到了我的目标TFS中。我没有从头开始擦除所有内容,而是转而关注TFS数据库,并提出了以下建议(在TFS 2013上,TFS 2010与我想的差不多):

declare @ChangeSetId int = 5735

-- Delete the actual file content first
delete from tbl_Content where ResourceId in (select ResourceId from tbl_File where FileId in (select FileId from  tbl_Version where VersionFrom = @ChangeSetId))
-- Remove the file
delete from tbl_File where FileId in (select FileId from  tbl_Version where VersionFrom = @ChangeSetId)
-- Purge the version
delete from tbl_Version where VersionFrom = @ChangeSetId
-- Destroy the changeset
delete from tbl_ChangeSet where ChangeSetId = @ChangeSetId
Run Code Online (Sandbox Code Playgroud)

这样做是不明智的。Microsoft不支持它。不要在现场生产环境中使用它!请改用回滚!但是,如果您迫不及待地想要删除变更集,可以尝试一下。但是不要告诉我你没有被警告。