为什么我还原的文件在 Code Collaborator 中仍显示为已编辑?

Why is my reverted file still showing as edited in Code Collaborator?

我在 Code Collaborator (CC) 中有一个正在审查的文件,我们将其称为 "SomeFile.h." 在第一次修订中,我向其中添加了几行新代码。在第二个修订版中,所有更改都移到了另一个文件,Somefile.h 被还原,因此 SomeFile.h 应该不会显示最新修订版中的任何更改。

CC 评论摘要页面显示 SomeFile.h:

我希望从下面 table 中看到 CC's Review Summary Screen manual 中的 "File was reverted" 符号,它似乎不包括实际显示的符号:

此外,如果我单击该文件并查看差异,我的旧更改仍会显示,给人的印象是该文件未还原。我尝试提交包含和不包含未更改的 SomeFile.h 的更改列表,但没有效果。

为什么与当前签入的版本相比没有任何变化的文件仍然显示第一个修订版本的变化并且没有 "Reverted" 符号?

我的版本控制系统是Perforce,它的服务器版本是P4D/LINUX26X86_64/2016.2/1468155。 Code Collaborator 版本为 9.2.9200。

我对 Code Collaborator 不是很熟悉,但我猜想当你 "reverted" Perforce 中的变化时(注意 Perforce 中的 "revert" 一词指的是一个完全不同的操作,所以在这里以这种方式使用这个词有点令人困惑)这在 Perforce 中反映为正常编辑,因此它不会在 CC 中显示为特殊的 "revert" 操作。我进一步猜测,当您看到 diff 中的旧更改时,它们位于文件的 previous 版本中,因此您的更改实际上已从当前版本中删除版本。

Perforce 确实有一个本地 "undo" 操作,它存储在元数据中,与编辑不同——但是,据我所知,这是一项新功能(添加到 2016.2 服务器中)除命令行外,任何客户端都不支持。 CC 本身可能不会将本机 Perforce 撤消显示为还原,除非它最近已更新。 (如果您是命令行用户,它会非常灵活——文件历史将准确显示撤消了哪些修订,并且您可以配置 "integrate" 命令以考虑撤消操作,以便您可以重新- 执行撤消整合而不是将撤消视为添加新更改的简单编辑)。

CodeCollaborator 的文档(特别是您在屏幕截图中显示的符号)已过时。

您在此处显示的屏幕截图:

是恢复文件的。从左下角向上扫到左上角的蓝色小箭头是CodeCollaborator中的"reverted"符号。

此文件仍出现在您的评论中的原因是有人对其发表了评论。具体来说,某人在该文件的整体部分中有 "Accepted"(由带有白色勾号的绿色圆圈表示)。

任何有评论的文件在评论中仍然可见,即使在被还原之后也是如此。这大概是为了防止部分评论讨论因讨论发生的文件被还原而丢失。 (例如,如果审阅者提出建议重命名文件的问题,这种情况很常见。)

根据您的用户设置,完全 没有 评论的还原文件可以完全隐藏。所以这可能是您习惯于看到的其他行为。

至于为什么它仍然显示包含您的更改的差异,这似乎是 CodeCollaborator 的设计决定。该文件已被还原,如主要评论页面所示,因此其内容在最终更改的上下文中不再真正有意义。

我同意这可能会造成混淆,因为很容易错过蓝色箭头并认为更改仍然存在。这确实意味着对该文件的任何评论(通常是在文件处于 "changed" 状态时所做的)将保留在最初存在的更改的上下文中。 CodeCollaborator 显示 "This file has been reverted" 或类似的东西而不是 diff 并不是不合理的,但这并不是它设计的行为方式。