TF.EXE 如果变更集仅包含删除,则历史记录减一
TF.EXE history is off by one if the changeset only contains deletions
我想获取工作区中的当前变更集 ID。这个问题在“Get current changeset id on workspace for TFS”中解决了。
tf history . /r /noprompt /stopafter:1 /version:W
这几乎适用于所有情况。但是,如果当前变更集仅包含从 TFS 中删除的内容,则此操作将失败。这不一定是 changesetId - 1,而是取决于我查询的文件/文件夹的历史记录。
如果当前变更集只删除了几个文件,我查询的文件/文件夹的历史记录中的变更集优先于当前变更集。
中提到的 TFS API 调用时,也会发生同样的事情
这是 TFS 中的错误吗?有人有解决办法吗?
提前致谢。
这里关键是你指定的版本是W,意思是workspace。历史查询正在查找您在工作区中所做的更改。问题是你永远不能 "have" 一个所有文件都被删除的变更集——它们不会在你的工作区中。 get 的工作方式是计算您需要的内容并将其与您拥有的内容进行比较(全部在 SQL 中)并将差异列表发送给客户端。结果,服务器上没有任何记录您的客户端已经处理了这些删除的事实。为了解决这个问题,我们必须 运行 get 逻辑来检查这个极端情况。所以,你是对的,在这种情况下这是错误的。我会询问团队,但除非有我没有想到的更好的修复方法,否则我不希望更改它。
我想获取工作区中的当前变更集 ID。这个问题在“Get current changeset id on workspace for TFS”中解决了。
tf history . /r /noprompt /stopafter:1 /version:W
这几乎适用于所有情况。但是,如果当前变更集仅包含从 TFS 中删除的内容,则此操作将失败。这不一定是 changesetId - 1,而是取决于我查询的文件/文件夹的历史记录。 如果当前变更集只删除了几个文件,我查询的文件/文件夹的历史记录中的变更集优先于当前变更集。
中提到的 TFS API 调用时,也会发生同样的事情这是 TFS 中的错误吗?有人有解决办法吗?
提前致谢。
这里关键是你指定的版本是W,意思是workspace。历史查询正在查找您在工作区中所做的更改。问题是你永远不能 "have" 一个所有文件都被删除的变更集——它们不会在你的工作区中。 get 的工作方式是计算您需要的内容并将其与您拥有的内容进行比较(全部在 SQL 中)并将差异列表发送给客户端。结果,服务器上没有任何记录您的客户端已经处理了这些删除的事实。为了解决这个问题,我们必须 运行 get 逻辑来检查这个极端情况。所以,你是对的,在这种情况下这是错误的。我会询问团队,但除非有我没有想到的更好的修复方法,否则我不希望更改它。