【问题标题】:Perforce: Remove empty folders from depot with command-line console (p4)?Perforce:使用命令行控制台(p4)从仓库中删除空文件夹?
【发布时间】:2012-06-14 00:04:22
【问题描述】:

我需要一种从命令行获取空目录路径并从软件仓库中删除(删除)它们的方法。

出于自动化目的,我一直在尝试使用p4 dirs directory-path 来获取路径,但是此命令输出“不存在此类文件或目录”。似乎它没有区分空目录和错误路径。有其他方法吗?

【问题讨论】:

  • Perforce 软件仓库中没有“空文件夹”、“空目录路径”、“空目录”或“错误路径”。您是说您不明白为什么从工作区中删除文件时目录不会消失吗?你需要澄清这个问题。

标签: command-line path directory perforce obliterate


【解决方案1】:

depot 中不存在空目录路径。服务器不存储目录,它只存储文件。如果库中存在目录,则它包含一个或多个文件。

实际上,当第一个文件存储在仓库中时,目录就存在了,如果它们包含的最后一个文件被删除,目录就会自动消失。

您可能会遇到这样一种情况,即您在软件仓库中有一个目录,但该目录中的所有文件当前都在头版本中被删除。如果您试图找到这些文件以消除它们(但为什么?),那么您可以尝试类似“p4 files //my/directory/name/...”来显示该目录中的所有文件。

【讨论】:

  • 只是为了补充 Bryan 的答案,您可以编写一个脚本来查找仅包含已删除文件的任何目录。 “p4 文件”命令返回创建相关修订的操作,可以是“删除”或“移动/删除”。如果您编写脚本以针对大型存储库运行,请确保它是递归的,因此您一次只处理一小块。使用其中一种 Perforce 脚本 API 会有所帮助,因为您可以更有效地处理连接。
  • 我想使用 p4 obliterate 来清除只包含已删除文件的目录。我想这样做是因为删除文件时只会删除元数据,并且它们继续位于服务器上。如果我删除它们,我会收回那个空间,当我在 P4V 中选择“显示已删除的文件”时,它们不会同时出现。您可以取消删除文件:answers.perforce.com/articles/KB_Article/…
猜你喜欢
  • 2014-11-19
  • 1970-01-01
  • 2012-01-22
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-02
相关资源
最近更新 更多