Ray*_*ega 99 version-control perforce ignore
我有时使用的功能"对账脱机工作......"在Perforce中的P4V IDE中发现同步起来,我已经从P4车厂工作,同时断开任何文件.它启动另一个窗口,执行'Folder Diff'.
我有文件,我从来不想检查源代码控制(如在bin文件夹中找到的DLL,代码生成输出等)有没有办法过滤这些文件/文件夹出现可能是"新"添加.它们往往会混淆我真正感兴趣的文件列表.P4是否具有Subversion的"忽略文件"功能?
rav*_*ven 58
从2012.1版开始,Perforce支持P4IGNORE环境变量.我更新了这个关于忽略目录的问题的答案,并解释了它的工作原理.然后我注意到了这个答案,我猜这个答案现在多余了.
假设您有一个名为"CLIENT"的客户端,一个名为"foo"的目录(位于您的项目根目录下),并且您希望忽略该目录树中的所有.dll文件,您可以将以下行添加到工作区视图中以完成这个:
-//depot/foo/*.dll //CLIENT/foo/*.dll -//depot/foo/.../*.dll //CLIENT/foo/.../*.dll
第一行将它们从目录"foo"中删除,第二行将它们从所有子目录中删除.现在,当您"协调脱机工作..."时,所有.dll文件将被移动到文件夹差异显示底部的"Excluded Files"文件夹中.它们会让您失望,但如果您真的需要,仍然可以查看和操作它们.
你也可以用另一种方式来做,这会将你的"Excluded Files"文件夹减少到一个,但是你将无法操纵它包含的任何文件,因为路径会被破坏(但如果你只是想要它们你的方式,没关系).
-//depot/foo.../*.dll //CLIENT/foo.../*.dll
Col*_*nic 45
对,但是.
Perforce版本2012.1增加了一个名为p4ignore的功能,灵感来自Git.然而,Perforce开发人员在没有正当理由的情况下对行为进行了更改,这恰好使该功能变得不那么有用.
虽然Git从所有.gitignore文件中获取规则,但在环境变量中指定文件名之前,Perforce不知道在哪里查看P4IGNORE.这种自由是一种诅咒.您不能破解为其忽略文件使用不同名称的两个存储库.
此外,Perforce的忽略功能无法解决问题.您可以轻松地为自己设置它,但除非明确选择加入,否则其他人不会受益.没有意外提交不受欢迎文件的贡献者(例如,bin由构建脚本创建的文件夹).
Git的忽略功能很棒,因为它可以解决问题.如果.gitignore文件被添加到存储库(每个人都这样做),他们将为每个人设计框.没有人会不小心发布他们的私钥.
有趣的是,Perforce文档将 ".p4ignore"显示为示例忽略规则,这是向后的!如果规则有用,则应将它们作为存储库的一部分进行共享.
Perforce仍然可以在该功能上取得成功.例如,选择文件名的约定p4ignore.txt,以便该功能可用于此框.删除P4IGNORE环境变量,这会适得其反.编辑文档,鼓励开发人员共享有用的规则.让用户在其主文件夹中的文件中编写个人规则,就像Git那样.
如果您认识Perforce的任何人,请发送电子邮件给他们.
sve*_*vec 22
这适用于Perforce 2013.1,新的P4IGNORE机制最初是在2012年版本中添加的,在Perforce博客中描述:
如当前所述,您将环境变量"P4IGNORE"设置为包含要忽略的文件列表的文件名.
所以你可以看一下,看看你喜欢它.
小智 7
如果您想要一个适用于所有工作空间而无需复制的解决方案,您(或您的系统管理员)可以通过使用p4保护表中的以下行来拒绝提交这些文件类型:
write user * * -//.../*.suo
write user * * -//.../*.obj
write user * * -//.../*.ccscc
Run Code Online (Sandbox Code Playgroud)
我记得以前这样做,但我没有必要的权限来测试这里.查看Perforce的系统管理员指南并试一试
从版本2011.1开始,Perforce Streams使忽略文件变得更加容易.根据文档,您可以忽略目录中的某些扩展或某些路径.
从 p4 help stream
Ignored: Optional; a list of file or directory names to be ignored in
client views. For example:
/tmp # ignores files named 'tmp'
/tmp/... # ignores dirs named 'tmp'
.tmp # ignores file names ending in '.tmp'
Lines in the Ignored field may appear in any order. Ignored
names are inherited by child stream client views.
Run Code Online (Sandbox Code Playgroud)
这基本上是@ raven的答案所指定的,但是使用流更容易,因为它使用该流自动传播到每个工作空间.它还适用于从您指定忽略类型的流继承的任何流.
您可以p4 stream //stream_depot/stream_name在p4v的流视图中通过或右键单击流来编辑流.
正如@svec所说,每个工作区指定忽略文件的能力即将推出,实际上是在P4 2012.1测试版中.
| 归档时间: |
|
| 查看次数: |
50602 次 |
| 最近记录: |