Ari*_*ian 15
您必须回滚变更集,否则无法删除变更集.(回滚命令)
在您的情况下,一个简单的Rollback命令将是这样的:
TF rollback /changeset:C543
Run Code Online (Sandbox Code Playgroud)
您无法删除TFS中的变更集.即使你可以以某种方式,(我认为你可以对TFS数据库运行sql查询来做到这一点)这不是一个好习惯.如果人们开始删除变更集/历史记录,则版本控制的全部目的将被取消.我认为很少有其他源代码控制允许这样做,但我不建议这样做.这是一个不好的做法.
此外,如果你使用TFS Workitems/Test Cases等其他功能,变更集会链接到它,所以如果它们被删除,链接将变为孤儿(我认为).
正如Arin所说,你可以做的最接近的事情是使用Rollback命令但是当你这样做时,你必须在回滚后签入代码,所以基本上你会看到历史中的旧changset和新的changset(回滚).
免责声明-您永远不要,永远不要这样做。甚至不用考虑!
背景-我正在尝试进行部分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不支持它。不要在现场生产环境中使用它!请改用回滚!但是,如果您迫不及待地想要删除变更集,可以尝试一下。但是不要告诉我你没有被警告。