强制禁止添加到叠加层
perforce forbid adding to overlay
几个关于 p4 覆盖映射的问题。
如果有覆盖客户端视图:
//depot/dir1/... //ws/build/...
+//depot/dir2/... //ws/build/...
是否可以禁止添加文件到//depot/dir2
?
如何指定 p4 add
命令的目标是 //depot/dir1
还是 //depot/dir2
?
当覆盖导致多个软件仓库路径映射一个客户端路径时,p4 add
(在客户端语法中)的默认值是最后一个映射。如果指定软件仓库路径,则使用该路径:
C:\Perforce\test\depot>p4 where ...
//depot/dir1/... //classic/... c:\Perforce\test\depot\...
+//depot/dir2/... //classic/... c:\Perforce\test\depot\...
C:\Perforce\test\depot>p4 add -n foo
//depot/dir2/foo#1 - opened for add
C:\Perforce\test\depot>p4 add -n //depot/dir1/foo
//depot/dir1/foo#1 - opened for add
因此,只需翻转映射线的顺序就可以得到您想要的效果(例如,您可以通过在映射中最后指定它来使 dir1
成为默认值)。仍然可以将文件显式添加到 dir2
,但这不太可能是偶然发生的。
如果您想在客户端中指定 dir2
是一个只读路径并且您不能向其中添加文件,ChangeView
可用于此(因为您在 ChangeView 中映射的任何内容都会自动设为只读):
C:\Perforce\test\depot>p4 client -o | tail -n3
ChangeView:
//depot/dir2/...@now
C:\Perforce\test\depot>p4 add -n //depot/dir2/foo
//classic/foo - can't add file that is restricted by client's ChangeView mapping
C:\Perforce\test\depot>p4 add -n //depot/dir1/foo
//depot/dir1/foo#1 - opened for add
在这个例子中,我使用 @now
作为 ChangeView
的修订版,因为我实际上并不想限制版本;我只想将路径的副作用限制为只读操作。
另一种使路径只读的方法是通过 p4 protect
删除 write
权限;如果您想将此作为所有用户的全局策略,那将是更好的解决方案。
几个关于 p4 覆盖映射的问题。
如果有覆盖客户端视图:
//depot/dir1/... //ws/build/...
+//depot/dir2/... //ws/build/...
是否可以禁止添加文件到
//depot/dir2
?如何指定
p4 add
命令的目标是//depot/dir1
还是//depot/dir2
?
当覆盖导致多个软件仓库路径映射一个客户端路径时,p4 add
(在客户端语法中)的默认值是最后一个映射。如果指定软件仓库路径,则使用该路径:
C:\Perforce\test\depot>p4 where ...
//depot/dir1/... //classic/... c:\Perforce\test\depot\...
+//depot/dir2/... //classic/... c:\Perforce\test\depot\...
C:\Perforce\test\depot>p4 add -n foo
//depot/dir2/foo#1 - opened for add
C:\Perforce\test\depot>p4 add -n //depot/dir1/foo
//depot/dir1/foo#1 - opened for add
因此,只需翻转映射线的顺序就可以得到您想要的效果(例如,您可以通过在映射中最后指定它来使 dir1
成为默认值)。仍然可以将文件显式添加到 dir2
,但这不太可能是偶然发生的。
如果您想在客户端中指定 dir2
是一个只读路径并且您不能向其中添加文件,ChangeView
可用于此(因为您在 ChangeView 中映射的任何内容都会自动设为只读):
C:\Perforce\test\depot>p4 client -o | tail -n3
ChangeView:
//depot/dir2/...@now
C:\Perforce\test\depot>p4 add -n //depot/dir2/foo
//classic/foo - can't add file that is restricted by client's ChangeView mapping
C:\Perforce\test\depot>p4 add -n //depot/dir1/foo
//depot/dir1/foo#1 - opened for add
在这个例子中,我使用 @now
作为 ChangeView
的修订版,因为我实际上并不想限制版本;我只想将路径的副作用限制为只读操作。
另一种使路径只读的方法是通过 p4 protect
删除 write
权限;如果您想将此作为所有用户的全局策略,那将是更好的解决方案。