2010-08-12 64 views
0

是否有任何簡單的方法從p4 sync中排除特定更改列表?從p4同步中排除更改列表

我想要同步我的代碼,但我不想來從變更列表#1337

象變化:p4 sync //depot/source/... - //depot/source/...#1337

+0

澄清:#1337是介於兩者之間還是最後一次更改? – jhwist 2010-08-12 13:14:43

+0

當然使用樹枝來避免這種痛苦? – smci 2013-01-24 01:23:04

回答

0

通過同步到一個範圍並使用兩個命令「跳過」更改列表是可能的。

p4 sync //depot/source/... - //depot/source/[email protected],@1337 
p4 sync //depot/source/... - //depot/source/[email protected],#head 

注意:您可能必須在要跳過的一側指定更改列表 - 不確定該範圍是否包含在內。

HTH,

丹尼斯

+1

這種方法的問題在於,如果由更改列表1337修改的文件也被後續更改列表修改,則該文件最終將隨CL 1337中的更改而結束。 – Heath 2010-08-13 22:06:26

+0

@海瑟:我同意。這並不理想。 我不明白爲什麼OP要排除特定的更改列表 - 處理此問題的最佳方法是同步到#head並退出更改列表,然後手動處理將來解決或提交更改。 但是,如果由於某種原因無法提交,則創建一個分支並在那裏執行更改列表的備份。 – Dennis 2010-08-14 03:14:01

2

來完成這個工作只是同步於頭,然後使用P4V(「返回了提交的變更」功能的最佳途徑「提交」窗格中,右鍵單擊不想要的更改列表,請選擇「退出提交的更改列表」)。

這將在您的工作區中創建一個新的掛起更改列表,並刪除不需要的更改。

+0

警告:由不需要的更改列表修改的文件現在位於不需要的更改列表之前的修訂版中,並且對這些文件的任何後續更改也將消失。但是,您可以執行交互式解決方案,並手動提交您需要的任何新更改。 – Heath 2010-08-13 22:20:12

+0

這也失敗了,如果你在編輯模式下有這些改變的文件之一:( – 2018-03-09 19:46:15

0

好的,這應該取決於你想做什麼。男人我真的很想念的git :(

如果你只是想同步,並暫時忽略一個變更,你可以做第一個回覆說什麼,回到了變化列表只要記得不要檢查,除非你想這種變化列表清除分支忽略的更改列表但是,如果需要更改被忽略的更改列表中存在的文件,這種方法將不起作用

如果您需要使用忽略的更改列表中的相同文件但有一點需要注意的是,被忽略的變更列表將被從遠程分支中取出,直到你確定它們在你的代碼中(還有一個選項,但需要別人去做) 如果你想要忽略更改列表,而不是完全擺脫它,但只是能夠處理你的代碼與它一邊,下面的工作。

如前所述退出更改列表。 提交退出的更改列表以清除遠程分支中的更改。 (別擔心)

現在再做一次退出,但這次退出前一次退出並擱置它創建的chagelist。這退出了退出將是一個掛起的更改列表,基本上是你想忽略的一個副本。一旦擱置,即使在相同的文件中也可以繼續工作。不利的一面是,現在被忽略的變更列表只存在於您的工作空間中,並由您決定在某個時刻提交或決定如何處理。

您可以將被忽略的更改列表保留擱置,直到您知道您要使用它。如果在處理完代碼後,您想重新整合該chagelist並將其與您的代碼合併,則可以簡單地將其解除並解決衝突。

所以(其他選項) 你可以做上面的幫助從其他開發人員使用Perforce的帳戶(也許是一個誰是你想要忽略的變更表)在這種情況下,你可以讓他們回來了變更表並提交,那麼你可以同步,然後他們可以退出。在這種情況下,遠程分支在處理代碼時不需要保持奇怪的狀態。最大的缺點是,你每次想同步都需要這樣做。

一個更好的選擇將在像這樣的問題出現之前進行分支,但這不像在git中那樣容易或輕便。

希望這些選項中的一個可以幫助或激發一個人的結局和完美的解決方案。

相關問題