2011-10-12 99 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