如果更改集仅包含删除,则TF.EXE历史记录关闭

时间:2015-02-11 11:15:17

标签: visual-studio-2013 tfs2013

我想在工作区中获取当前的变更集ID。这个问题在" Get current changeset id on workspace for TFS"中解决了。

tf history . /r /noprompt /stopafter:1 /version:W

这几乎适用于所有情况。但是,如果当前变更集仅包含从TFS中删除,则会失败。这不一定是changesetId - 1,但取决于我查询的文件/文件夹的历史记录。 如果当前变更集只删除了几个文件,则变更集prio为我查询的文件/文件夹历史记录中的当前变更集。

当我使用http://blogs.msdn.com/b/buckh/archive/2009/01/26/how-to-determine-the-latest-changeset-in-your-workspace.aspx

中提到的TFS API调用时,会发生同样的事情

这是TFS中的错误吗?有没有人有解决方案?

提前致谢。

1 个答案:

答案 0 :(得分:0)

这里的关键是你指定的版本是W,意思是工作空间。历史记录查询正在查找工作区中的更改。问题是,你永远不能拥有"删除所有文件的变更集 - 它们不会在您的工作区中。获得工作的方式是它计算你需要的东西并将它与你拥有的东西(所有在SQL中)进行比较,并将差异列表发送给客户端。因此,服务器上没有任何内容记录您的客户端已经处理过这些删除的事实。为了解决这个问题,我们必须运行get逻辑来检查这个极端情况。所以,你是对的,在这种情况下它是错的。我会问团队,但除非有更好的解决方法,我没有想到,我不会预料到会改变它。