Perforce映射规则中,点和星号有什么区别?

4

我知道//depot/foo/...会映射//depot/foo/下的所有文件和文件夹。那么//depot/foo/*是什么意思?我被告知不要使用它,想要了解为什么。

1个回答

12

...表示递归匹配,*则不会。如果想要匹配给定位置下的所有文件以及这个位置以下的所有文件,就使用...;如果只想匹配给定文件夹中的文件,就使用*

以你的示例为例

  • //depot/foo/* 只会匹配 'foo' 文件夹中的文件(如果有的话)
  • //depot/foo/... 会匹配 foo 文件夹中的文件以及其下的任何文件。

对于简单的客户端规范,您应该使用 ... 以获取存储库中所有子目录中的所有文件。 当您想要匹配特定文件夹中的文件而没有包括它们的子文件夹时,可能会在客户端规范中使用字符 *。例如:

//depot/foo/...  //myclient/depot/foo/...
-//depot/foo/test/... //myclient/depot/foo/test/...
//depot/foo/test/* //myclient/depot/foo/test/*

以上步骤将按顺序添加位于//depot/foo位置的所有文件。然后,它将删除//depot/foo/test中的所有内容(包括test文件夹中的文件)。第三行将仅添加test文件夹中的文件,而不会添加任何子文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接