我知道//depot/foo/...
会映射//depot/foo/
下的所有文件和文件夹。那么//depot/foo/*
是什么意思?我被告知不要使用它,想要了解为什么。
我知道//depot/foo/...
会映射//depot/foo/
下的所有文件和文件夹。那么//depot/foo/*
是什么意思?我被告知不要使用它,想要了解为什么。
...
表示递归匹配,*
则不会。如果想要匹配给定位置下的所有文件以及这个位置以下的所有文件,就使用...
;如果只想匹配给定文件夹中的文件,就使用*
。
以你的示例为例
//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文件夹中的文件,而不会添加任何子文件。