15

如何获取我的本地变更列表并将其发送给 Perforce 中的其他人?更具体地说,我想将未提交的更改从本地挂起的更改列表发送到另一个用户的挂起更改列表。

4

5 回答 5

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

我可能在那里的 env var 上错了,您可能需要对 diff 文件进行一些修复,但一般的想法是您生成一个 GNU Unified Diff,您可以将其发送给可以使用 GNU 补丁的人来应用它.

于 2008-12-17T01:53:25.433 回答
11

P4 现在在 2009.2 中原生支持搁置操作。客户端和服务器都需要至少 2009.2 才能使用它。

http://blog.perforce.com/blog/?p=1872

于 2010-02-04T20:42:32.797 回答
3

搁置待处理的更改列表 YOUCHANGE:

p4 shelve [-c YOURCHANGE]

然后另一个用户执行以下操作:

p4 unshelve -s YOURCHANGE [-c THEIRCHANGE]

在任何一种情况下,都可以省略“-c”参数以使用默认更改列表。在这种p4 shelve情况下,这意味着将创建一个新的更改列表,并将默认更改列表中的文件搁置到其中;在这种p4 unshelve情况下,这意味着您的更改列表中搁置的文件将被取消搁置到其他用户的默认更改列表中。

于 2017-07-28T17:43:58.903 回答
2

不确定您到底要做什么,但您可能还想考虑P4_Shelve。它允许您将大量未决更改放在虚拟架子上,然后稍后再将它们取回。根据您通过向其他人发送更改列表来实现的确切目标,这可以提供部分答案。

从 P4Shelve 站点链接的 P4Tar可能也很有用 - 它在客户端完成所有打包工作,因此您只需留下一个可以发送给其他人的文件。

于 2009-10-15T13:05:28.373 回答
-1

Perforce 2016,osx。待处理变更列表的差异:

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

输出:123456.diff

应用补丁:

mac:src user$ patch -p0 < 123456.diff
于 2017-07-28T15:04:42.347 回答