2008-12-17 47 views
14

如何獲取本地更改列表並將其發送給Perforce中的其他人?更具體地說,我想將未提交的更改從本地掛起的更改列表發送到另一個用戶的掛起更改列表。如何獲取我的本地更改列表並將其發送給Perforce中的其他人?

+1

你必須更具體。這聽起來像是你想要將未提交的更改從本地掛起的更改列表發送到另一個用戶的掛起更改列表?這是對的嗎? – ninesided 2008-12-17 00:17:03

+0

是的,@nidedided – 2018-01-06 00:02:29

回答

14
set P4DIFF=C:\cygwin\bin\diff.exe 
p4 diff -du -c 12345 > patch-to-head.diff 

# On Other machine 
patch -p1 < patch-to-head.diff 

我可能是錯上的環境變量在那裏,你可能需要做的diff文件一定的修正,但總的想法是,你產生統一DIFF一個GNU,你可以發送給人們,可以使用GNU補丁來應用它。

+2

至少在服務器2008.2和2010.1中,「p4 diff」沒有-c標誌。我仍然沒有找到一種方法在特定待處理更改列表中的文件上運行「p4 diff」。 – 2010-11-11 22:49:44

2

不確定你想要做什麼,但你可能也想考慮P4_Shelve。它允許您在虛擬貨架上放置一大堆待處理的更改,然後再將其抓回。根據您想要通過將更改列表發送給其他人來實現的目的,這可以提供部分答案。

從P4Shelve站點鏈接的鏈接是P4Tar,這也可能有用 - 它可以完成客戶端的所有打包,因此您只需留下一個可發送給其他人的文件即可。

-1

Perforce 2016,osx。 DIFF未決的變更表:

mac:src user$ cl=123456 && p4 diff -du $(p4 files @=$cl | sed s/#.*//) > $cl.diff 

輸出:123456.diff

應用補丁:

mac:src user$ patch -p0 < 123456.diff 
1

擱置待處理的變更列表YOURCHANGE:

p4 shelve [-c YOURCHANGE] 

然後其他用戶不:

p4 unshelve -s YOURCHANGE [-c THEIRCHANGE] 

無論在哪種情況下,都可以省略「-c」參數以替代使用默認更改列表。在p4 shelve的情況下,這意味着將創建一個新的更改列表,並且默認更改列表中的文件將被擱置;在p4 unshelve的情況下,它意味着您的更改列表中擱置的文件將取消保存到其他用戶的默認更改列表中。

相關問題