Perforce 是否支持Windows、NTFS 上的文件流?
2 回答
很抱歉复活这样一个旧线程,但我找到了一种解决方法,可以让 Perforce 客户端 (P4/P4V) 创建 ADS 数据。
Perforce 用户指南的第 2 章有一个标题为“将文件映射到工作区中的不同位置”的部分。本节介绍如何将 depot 重新映射到工作区,反之亦然。
假设您想在 Perforce 中存储一些资产元数据和您的文件。您创建了一个生成名为asset.meta的ADS 的工具,这样您的文件名的格式为file.ext:asset.meta。
如果您修改 Perforce 工作区以包含以下内容:
//depot/....asset.meta //CLIENT/...:asset.meta
这将采用 ADS assets.meta 流并在 Perforce 中为它们创建文件。
带有asset.meta ADS 的foo.txt 作为2 个文件存储在depot 中:foo.txt 和foo.txt.asset.meta。当您将它们同步下来时,它们最终会正确连接。
现在有 2 个 caviat 需要注意。
1.) P4V 将看不到 ADS。您必须通过 P4、P4API 或其他一些显式机制手动添加它们。
2.) 如果基础文件(我们示例中的 foo.txt)未标记为可写,您将无法同步 ADS。
你将不得不以任何你想要的方式处理#1。#2是更棘手的IMO。您可以 +w 主文件,以便它们在客户端上始终是可写的(如果您的工作流程可以容纳),或者您可以编写一个自定义同步例程,根据需要处理使文件成为只读或读写的。
如果我从 Perforce 那里听到除上述之外的任何好主意,我可能会对此做出回应,但考虑到在搜索“Perforce Alternate Data Stream”时此页面在 Google 中的显示程度有多高,我认为这可能会对某人有所帮助。
我刚收到 Perforce 的回复:
Perforce 对 NTFS 备用数据流没有任何特殊支持。
这意味着当您将文件提交到 perforce 时,您将丢失任何额外的数据流。