如何在p4v中排除流映射中的目录

时间:2015-02-08 05:01:27

标签: version-control perforce

我正在使用perforce的可视化客户端,我想从工作区中排除目录。在流之前,我只需导航到我的工作区,找到树中的文件夹,然后将其排除(我已经在我发现的其他一些相关问题中找到了这个解决方案)。但是,现在我正在使用流,它不会让我这样做,我必须显然编辑流映射。

所以我在编辑流时尝试将此行添加到重映射的框中:

-//NumberPlus/current/Library/... //nplus-mainline/current/Library/

但是我得到一个错误:

Error in stream specification.
Error detected at line 24
Null directory (//) not allowed in '-//NumberPlus/current/Library/...'.

编辑:我在Windows 8.1中,需要澄清。

3 个答案:

答案 0 :(得分:3)

如果要排除的文件夹特定于您的计算机,则在本地设置P4IGNORE是将其排除在库中的最简单方法。

http://www.perforce.com/blog/120214/new-20121-p4ignore

您可以将P4IGNORE设置为某些名称,例如" p4ignore.txt",创建一个具有该名称的文件,然后添加" Libraries"它 - 随后" p4添加"命令将跳过P4IGNORE文件中找到的路径,因此这些文件永远不会被添加到库中。

如果这对于此流的所有工作空间都是通用的(例如,它是每个人都要生成的构建工件而没有人应该检入),那么你想要什么做的是添加"排除"到流的路径(这将从该流生成的分支视图和客户端视图中排除它)。 E.g:

Paths:
    share ...
    exclude Libraries/...

"排除图书馆/..."与您添加到客户端视图的排除行基本相同,除非您将其指定为相对路径,您不需要指定映射的两侧,以及" - &# 34;被排除"排除"类型。 "重新映射"类型是,如果您想保留这些文件,但在不同的软件仓库位置,这听起来不适用于此。

有关定义流视图的更多信息: http://www.perforce.com/perforce/doc.current/manuals/p4v/streams_views.html

答案 1 :(得分:1)

如果客户端工作区切换到特定流,则不能只编辑其映射。流的整个要点是您的工作空间映射直接从流定义生成。这是一个特色。

是否

并不完全清楚
  • 您不希望流中的目录
  • 将流目录放在流中是有效的,但您不希望将其同步到工作站,或
  • 您希望目录同步到您的工作站,但您希望目录具有不同的内容(例如,来自其他具有不同版本库的其他流。

但是,对于所有这些情况,我怀疑最好的前进方向是定义当前流的新子流。

您需要使用“share”,“exclude”,“isolate”和“import”映射类型定义路径映射。

例如,如果您根本不想要Library / ...目录,则可以从父级“排除”它。

然后该流只是没有该目录,当您同步到流时,它(当然)也不会在您的工作站上。

如果您想在Library / ...目录中拥有不同的代码副本,以便它成为与父母有意分歧的点,那么您将“与父母”隔离,以提交您自己的代码自定义版本,或从另一个流“导入”它以使用该流的Library / ...目录。

在任何一种情况下,目录都将成为流的一部分,并且将同步到您的工作站,但该目录的内容将与父流中使用的内容不同(确切的方式)它们的区别在于你的控制,因为你相应地定义了流。)

文档和一些示例如下:http://www.perforce.com/perforce/doc.current/manuals/p4v/streams_views.html 和这里: http://www.perforce.com/sites/default/files/pdf/Streams-ebook.pdf

答案 2 :(得分:0)

我相信我已经解决了这个问题。为了清楚起见,我希望版本控制完全忽略该文件夹。我正在使用Unity的p4connect,它一直希望在我的软件仓库中包含不必要的东西。

我所要做的就是在路径框中将此行添加到我的父流:

排除当前/图书馆/...