Can you "ignore" a file in Perforce?我有时会使用 Perforce 的 P4V IDE 中的"协调脱机工作..."功能来同步我在与 P4 库断开连接时一直在处理的所有文件。它会启动另一个执行 \\'Folder Diff\\' 的窗口。 我有一些文件我不想签入到源代码管理中(比如在 bin 文件夹中找到的文件,例如 DLL、代码生成的输出等)。有没有办法过滤掉这些文件/文件夹,使其不显示为 "new " 可能会被添加。它们往往会弄乱我真正感兴趣的文件列表。P4 是否具有与 Subversion\\'s\\'ignore file\\' 功能等效的功能? 从 2012.1 版本开始,Perforce 支持 假设您有一个名为"CLIENT"的客户端,一个名为"foo"的目录(位于您的项目根目录),并且您希望忽略该目录树中的所有 .dll 文件,您可以将以下行添加到您的工作区查看以完成此操作:
第一行将它们从目录"foo"中删除,第二行将它们从所有子目录中删除。现在,当您"协调脱机工作..."时,所有 .dll 文件将被移动到文件夹差异显示底部的"排除文件"文件夹中。它们不会妨碍您,但如果您确实需要,仍然可以查看和操作它们。 您也可以采用另一种方式,将您的"排除文件"文件夹减少到一个,但您将无法操作其中包含的任何文件,因为路径将损坏(但如果您只是想让它们远离你,没关系)。
是的,但是。 Perforce 版本 2012.1 添加了一个名为 p4ignore 的功能,其灵感来自 Git。然而,Perforce 开发人员在没有正当理由的情况下对行为进行了更改,这恰好使该功能的用处大大降低。 虽然 Git 从所有 此外,Perforce 的忽略功能也不是现成的。您可以为自己轻松设置它,但除非他们明确选择加入,否则其他人不会受益。没有提交的贡献者可能会意外提交不受欢迎的文件(例如,由构建脚本创建的 Git 的忽略功能非常棒,因为它开箱即用。如果将 有趣的是,Perforce 文档显示 '.p4ignore' 作为示例忽略规则,这是倒退的!如果规则有用,则应将它们作为存储库的一部分进行共享。 Perforce 仍然可以很好地利用该功能。为文件名选择一个约定,比如 如果你认识 Perforce 的任何人,请发邮件给他们。 这在 Perforce 2013.1 中有效,新的 P4IGNORE 机制是在 2012.1 版本中首次添加的,在此处的 Perforce 博客中进行了描述:
正如目前所描述的,您将环境变量"P4IGNORE"设置为包含要忽略的文件列表的文件名。 所以你可以看看你喜欢它。 如果您想要一个适用于所有工作空间而无需复制的解决方案,您(或您的系统管理员)可以通过在 p4 保护表中使用如下行来拒绝提交这些文件类型:
我记得以前做过这个,但我没有必要的权限在这里测试这个。查看 Perforce 的系统管理员指南并尝试一下 从 2011.1 版开始,Perforce Streams 让忽略文件变得更加容易。根据文档,您可以忽略目录中的某些扩展名或某些路径。 来自
这基本上是@raven 的回答所指定的,但使用流更容易完成,因为它使用该流自动传播到每个工作空间。它也适用于从您指定忽略类型的流继承的任何流。 您可以通过 正如@svec 所指出的,为每个工作区指定忽略文件的功能即将推出,实际上是在 P4 2012.1 beta 中。 Will 关于使用 Raven 建议修改客户端规范是 Perforce 下的正确方法。正确组织您的代码/数据/可执行文件和生成的输出文件将使从检查中排除文件的过程更加容易。 作为一种更严格的方法,您始终可以编写一个提交触发器,如果??更改列表包含特定文件或具有特定扩展名的文件等,它将拒绝提交更改列表。 历史答案 - 不再正确。在最初写这篇文章的时候,这是真的; 您不能写入和签入??服务器将用来制定忽略规则的文件; perforce 中的一般 glob 或正则表达式文件模式忽略。 其他答案具有全局的全局服务器配置(而不是每个文件夹)。 简而言之,我发现 Perforce 在这方面确实很弱。虽然我很欣赏那些使用 Eclipse 插件的人可以使用 更新:请参阅 2012 年年中添加的新 P4IGNORE 功能的已接受答案。 我发现使用像这样的 BASH 脚本最容易协调离线工作:
我改编自这篇 Perforce 知识库文章。 我也在寻找类似 .p4ignore 的解决方案(而不是与特定 IDE 绑定的解决方案)。到目前为止,我发现的最接近的是 p4delta。听起来它会完全按照原始海报的要求进行,尽管通过另一层间接。 http://p4delta.sourceforge.net 不幸的是,虽然这似乎确实产生了正确的文件列表,但我无法让"p4delta --execute"工作("无法修改冻结的字符串")并且该项目一年内没有更新.也许其他人的运气会更好。 如果您使用的是 Eclipse Perforce 插件,那么插件文档列出了几种忽略文件的方法。 |