Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何删除TFS 2010中的特定变更集?_C#_Tfs_Tfsbuild - Fatal编程技术网

C# 如何删除TFS 2010中的特定变更集?

C# 如何删除TFS 2010中的特定变更集?,c#,tfs,tfsbuild,C#,Tfs,Tfsbuild,如何删除tfs2010中的特定变更集 我有545544543542的变更集版本号 现在,我只想删除tfs中的特定变更集543 您必须回滚更改集,不能删除更改集。() 在您的情况下,简单的回滚命令如下所示: TF rollback /changeset:C543 无法删除TFS中的变更集。即使您可以(我认为您可以对TFS数据库运行sql查询来实现这一点)这也不是一个好的实践。如果人们开始删除变更集/历史记录,那么版本控制的整个目的都将失败。我认为很少有其他源代码控制允许这样做,但我不建议这样做。

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

我有545544543542的变更集版本号


现在,我只想删除tfs中的特定变更集543

您必须回滚更改集,不能删除更改集。()

在您的情况下,简单的回滚命令如下所示:

TF rollback /changeset:C543

无法删除TFS中的变更集。即使您可以(我认为您可以对TFS数据库运行sql查询来实现这一点)这也不是一个好的实践。如果人们开始删除变更集/历史记录,那么版本控制的整个目的都将失败。我认为很少有其他源代码控制允许这样做,但我不建议这样做。这是个坏习惯

此外,如果您使用TFS的其他功能,如
工作项/测试用例等,变更集将链接到它,因此如果它们被删除,链接将成为孤立的(我认为)


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

免责声明-您永远不应该这样做。想都别想

背景-我正在尝试进行部分TFS迁移,并使用“TFS集成”工具度过了最不愉快的时光。最近它将一系列错误的变更集转储到我的目标TFS中。我没有把所有的东西都抹掉,而是从头开始,我仔细研究了TFS数据库,并得出了以下结论(在TFS 2013上,我想TFS 2010或多或少是相似的):


这样做是不明智的。Microsoft不支持它。不要在实时生产环境中使用它!改用回滚!但是,如果您不顾一切地想要删除变更集,您可以试试这个。但不要告诉我你没有收到警告。

C544和545中的更改会留下什么?换句话说,你不知道这些更改会发生什么。@JohnSaunders,我确切知道会发生什么,但需要更多的解释。简单地说,当您回滚变更集C543时,将创建一个新的变更集来否定它。如果变更彼此不相关,则变更集的效果将在新变更集中撤消,但如果变更彼此相关,撤消该变更集要复杂得多。请阅读以下内容:,如果您还有问题,请发布一个问题,我将深入解释这个过程。如果你能访问TFS,你可以自己测试。我希望你能在回答中解释一下。这样,对其他有同样问题的人也会有好处。@JohnSaunders我很感激你的关心,但我试图尽可能简单地回答这个问题。没有人会问,C544和C545会发生什么!有人问我如何删除变更集C543,我只是回答了这个问题,没有少,没有多。顺便说一句,正如我在评论中提到的,C544和C545不会发生任何变化,相反,TFS将在用户的工作区中创建一些新的否定性更改,与其他挂起的更改一样,它们应该由用户作为常规更改集签入,因此签入后将创建一个新的更改集(如C546)其他变更集不会发生任何变化。我正在尝试修复从一个TFS到另一个TFS的拙劣迁移,如果有可能清除“坏”变更集,我会很高兴!我不想保留历史,这是糟糕的数据。我的选项-从头开始(已经浪费了几天),或者放弃它们。
tf destroy
tf destroy
命令看起来像核选项。仅在必要时使用。
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