【问题标题】:Perforce: Prevent keywords from being expanded when syncing files out of the depot?Perforce:在将文件同步出库时防止关键字被扩展?
【发布时间】:2014-01-11 20:07:24
【问题描述】:

我有一种情况,我想在 Perforce 中区分两个分支。通常我会使用diff2 进行服务器端差异,但在这种情况下,分支上的文件非常大,以至于diff2 调用最终会在我的服务器上填满/tmp,试图区分它们和差异失败。

我无法关闭我的服务器来纠正这个问题,所以我正在查看将内容检查到磁盘并在命令行上使用diff 来检查和比较内容。

问题是:大多数文件中都有正在扩展的 RCS 关键字。

我知道可以通过打开文件进行编辑并从进程中的文件中删除-k 属性来从文件中删除关键字扩展,但这似乎有点暴力。我希望我可以告诉p4 sync 命令不要在结帐时扩展关键字。我似乎找不到办法做到这一点?有可能吗?

作为一种可能的替代解决方案,有谁知道您是否可以告诉p4 diff2 在调用时将哪个目录用作临时空间?如果我可以告诉它使用充足的 NAS 空间而不是 Perforce 服务器上的/tmp,我也许可以让它工作。

如果这会以任何方式改变答案,我正在使用 2010.x 版本的 Perforce。

【问题讨论】:

    标签: version-control perforce


    【解决方案1】:

    我不知道如何在同步时禁用关键字扩展。这是我会尝试的:

    1) 在两组文件之间创建一个分支规范 2) 运行“p4 文件 //path/to/files/... | cut -d '#' -f 1 > tmp”

    上述文件的路径应该是您创建的分支规范的右侧

    3) p4 -x tmp diff2 -b

    这告诉 p4 遍历 'tmp' 中的文本行并将它们视为命令的参数。我认为您服务器上的 /tmp 会以这种方式在每个文件之间被清除,从而防止它被填满。

    不幸的是,我没有足够大的文件来测试它是否有效,所以这完全是理论上的。

    要将 p4d 仅使用 TEMP 或 TMP 的临时目录更改为不同的路径并重新启动 p4d。如果您使用的是 Windows,请确保调用“p4 set -S perforce TMP=”为 Perforce 服务设置变量;如果没有 -S perforce,您只需为当前用户设置它。

    【讨论】:

    • 是的,您确认了我对关键字扩展的看法。不幸的是 diff2 为一堆文件炸毁了。存储库中有一些纯文本的大量文件。像 500+ GB 的文件。它是在那些 diff2 每次都窒息的人身上。我更新了这个问题——也许我可以引导diff2 围绕/tmp
    猜你喜欢
    • 1970-01-01
    • 2013-03-06
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多