如何在Perforce中保存和恢复已签出文件列表?

时间:2015-07-29 14:43:19

标签: perforce

在perforce中,我有一种“基本工作集”的文件,我在工作时会一直检查(因此可写)。但是,每次我提交更改时,此列表都会中断 - 某些内容已提交,其他内容已恢复 - 然后我不得不浪费时间跟踪并再次检出所有这些文件。

那么,有没有办法保存当前检出的文件列表,然后再检查出那些相同的文件?

  • 我主要使用P4V,但我有P4Win和命令行Perforce可用。不过,我非常喜欢GUI解决方案。
  • 我只想保存和恢复签出文件的状态,而不是那些文件的内容,所以搁置不是答案
  • 我知道'不提交未更改'和'提交后退出'选项。他们还不够。例如,我经常会有以编程方式生成的文件,当唯一不同的是“生成的文件”时间戳时,它会注册为“已更改”。我需要防止这样的虚假修订被提交,我还没有找到任何实用的方法来搜索和管理这些不涉及'revert if changed'命令的文件。

3 个答案:

答案 0 :(得分:1)

你说搁置不是答案,但我认为这是最简单的解决方案(即涉及最少脚本和/或最少手动步骤的解决方案)针对特定问题你在问:

  1. 搁置待处理的更改(让我们将此更改称为1000)。
  2. 将您打开的文件移至新的待处理更改(让我们将此更改称为1001)。
  3. 提交更改1001。
  4. 取消改变1000。
  5. 同步并解决。
  6. 现在你打开了相同的确切文件(unshelve打开了它们),但是在头版本(同步和解析就是这样)。

    现在,看看你要求什么可能会让你的生活变得更轻松:而不是恢复你不想提交的文件(并且有一些方案可以让他们稍后回来,可能通过搁置作为如上所述,我要做的就是将它们移到另一个变更列表中。所以而不是:

    1. 识别"未更改"文件。
    2. 还原未更改的文件。
    3. 使用"重新打开"提交剩余文件选项。
    4. 重新打开以前还原的文件(不知何故)。
    5. 我做:

      1. 识别"未更改"文件。
      2. 将未更改的文件移至另一个更改列表N。
      3. 使用"重新打开"提交剩余文件选项。
      4. 将所有文件从更改列表N移回默认更改列表。
      5. 除了步骤1之外的所有这些都是简单的一次性命令,您可以从任何客户端执行此操作。就个人而言,我使用脚本自动执行步骤1 + 2(我假设它可以通过编程方式确定其中一个文件中的唯一差异是时间戳)并将其放入P4Win / P4V作为"自定义工具"。

答案 1 :(得分:1)

你可以这样做:

p4 -ztag opened | grep depotFile | cut -d ' ' -f 3 > files.txt

保存已在客户端中打开的文件列表。 (如果您没有Unix utilities for Windows,则可以通过任何方式构建此列表,例如运行p4 opened > files.txt并在编辑器中手动编辑files.txt。)

获得文件列表后,您可以通过以下方式打开所有文件:

p4 -x files.txt edit

这不符合您对基于GUI的解决方案的偏好,但您可以创建.cmd脚本来执行这些操作,然后双击它们(或在它们的快捷方式上)。

答案 2 :(得分:0)

最简单的解决方案是通过工作空间规范排除这些生成的文件,例如" - // depot / files / ignorablefile.sh"

它们仍然可以驻留在您的本地工作区中,但应用程序不会尝试更新它们或将它们添加到源代码管理中。