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

Version control 为什么我的还原文件仍显示为在Code Collaborator中编辑的文件?,version-control,perforce,code-collaborator,Version Control,Perforce,Code Collaborator,我在CodeCollaborator(CC)中有一个文件正在审查中,我们称之为“SomeFile.h”。在第一次修订中,我添加了几行新代码。在第二个版本中,所有更改都被移动到另一个文件中,并且Somefile.h被还原,因此Somefile.h在最新版本中不应显示任何更改 CC review summary页面显示SomeFile.h的以下内容: 我希望看到下表中的“文件已还原”符号,但它似乎不包括实际显示的符号: 此外,如果我单击该文件并查看差异,我的旧更改仍会显示,给人的印象是该文件没有

我在CodeCollaborator(CC)中有一个文件正在审查中,我们称之为“SomeFile.h”。在第一次修订中,我添加了几行新代码。在第二个版本中,所有更改都被移动到另一个文件中,并且Somefile.h被还原,因此Somefile.h在最新版本中不应显示任何更改

CC review summary页面显示SomeFile.h的以下内容:

我希望看到下表中的“文件已还原”符号,但它似乎不包括实际显示的符号:

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

为什么与当前签入版本没有更改的文件仍然显示第一次修订的更改,并且没有“还原”符号


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

我对Code Collaborator不是很熟悉,但我想当您“还原”Perforce中的更改时(请注意,Perforce中的“还原”一词指的是一个完全不同的操作,因此以这种方式使用该词有点混乱),这在Perforce中反映为一种正常编辑,所以它不会作为一个特殊的“恢复”操作出现在CC中。我进一步猜测,当您在diff中看到旧的更改时,它们在文件的早期版本中,因此您的更改实际上在当前版本中被删除


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

我对Code Collaborator不是很熟悉,但我想当您“还原”Perforce中的更改时(请注意,Perforce中的“还原”一词指的是一个完全不同的操作,因此以这种方式使用该词有点让人困惑),这在Perforce中反映为一种正常编辑,所以它不会作为一个特殊的“恢复”操作出现在CC中。我进一步猜测,当您在diff中看到旧的更改时,它们在文件的早期版本中,因此您的更改实际上在当前版本中被删除


Perforce确实有一个本机的“撤消”操作,它存储在元数据中,与编辑不同——但是,这是一个新功能(添加在2016.2服务器中),据我所知,除了命令行之外,任何客户端都不支持它。CC本身可能不会将本机Perforce undo显示为还原,除非它最近已更新。(如果您是命令行用户,它非常灵活——文件历史记录将准确显示已撤消的修订,并且您可以配置“集成”命令以考虑撤消操作,这样您就可以重新执行撤消集成,而不是将撤消视为添加新更改的简单编辑).CodeCollaborator的文档(特别是您在屏幕截图中显示的符号)已过期

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

是一个还原的文件。从左下到左上的蓝色小箭头是CodeCollaborator中的“还原”符号

此文件仍然存在于您的评论中的原因是有人对其发表了评论。具体地说,有人已经在该文件的整个部分“接受”(由带白色勾号的绿色圆圈表示)

任何包含注释的文件即使在恢复后也会在审阅中保持可见。这大概是为了防止讨论发生时的文件被还原而丢失部分审阅讨论。(例如,如果审阅者提出建议重命名文件的问题,这种情况很常见。)

根据用户设置,完全没有注释的还原文件可以完全隐藏。所以这可能是你习惯于看到的另一种行为

至于为什么它仍然显示包含您的更改的差异,这似乎是CodeColleborator部分的设计决策。该文件已被还原,如主审阅页面上所示,因此其内容在最终更改的上下文中不再具有实际意义


我同意这可能会令人困惑,因为很容易忽略蓝色箭头并认为更改仍然存在。这确实意味着,对该文件的任何注释(通常是在文件处于“已更改”状态时作出的)将保留在原始更改的上下文中。CodeCollaborator显示“此文件已还原”或类似内容而不是差异并不是不合理的,但这不是它的设计行为。

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

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

是一个还原的文件。从左下到左上的蓝色小箭头是CodeCollaborator中的“还原”符号

此文件仍然存在于您的评论中的原因是有人对其发表了评论。具体来说,有人已经“接受”了