2011-10-12 85 views
5

我试图使用p4同步来使用通配符将特定的目录同步到给定的更改列表号码,但我也想要排除该目录下(在子目录下)的文件列表,我尝试使用 - (以前和使用带有通配符的路径),但文件永远不会被排除后,这个命令我想:p4同步,如何在使用通配符时排除文件?

p4 sync //Repo/Foo/... -//Repo/Foo/Bar/Foobar.txt 

文件排除似乎当您要同步的文件/目录不匹配的文件才起作用你正试图排除。

回答

3

简而言之,您不能排除同步中的文件。这只能在客户端规范内完成。 (好吧,可以通过保护表完成,但这是我认为的另一个问题)。

但是,如果你要同步该文件夹中的特定文件夹,只有文件,使用*

p4 sync //Repo/Foo/* 

将让你只能在富文件夹中的文件。

+0

我找到了解决方案,查看我的编辑评论。 –

+0

忽略我的最后一条消息,我很快就会谈到:/ –

6

在你的客户,你必须多行:

//Repo/Foo/... //my_client/Repo/Foo/... 
-//Repo/Foo/subdirectory/... //my_client/Repo/Foo/subdirectory/... 

这将让你得到的富目录和所有子目录除了“子目录”的一切。

1

如果您使用标签,则可以执行此操作。创建你喜欢的编辑器标签(P4V或命令行P4标签,并添加两行:如果你想要最新的或改变列表号

//Repo/Foo/... 
-//Repo/Foo/Bar/Foobar.txt 

在修订外地把@head给标签的名称。 - 比如“sync_butnot_foobar”

在命令行,你现在可同步:

p4 sync @sync_butnot_foobar 

这拥有一个巨大的好处的修改你的客户规格和同步头部模型如果您在客户端中排除的文件。规格,下次您同步该文件将被修改0这可能不是你想要的。

+0

哈哈,请记住,如果您使用默认选项,这将会像新客户端规范一样工作......这意味着您将同步到版本0,以查找不在标签中的所有文件 – Saebin

相关问题