git-p4如何获取更改列表

时间:2017-01-25 01:26:23

标签: git perforce git-p4

git p4 submit --shelve在本地git repo中获取您提交的更改,并将它们放入更改列表X并进行搁置。

假设我对搁置的更改进行了一些代码审查,因此我本地git仓库中的文件与更改列表X中的文件不同。如何将更改列表X中的更新更新到我的本地git仓库中?

2 个答案:

答案 0 :(得分:1)

我做了一个modified version of git-p4.py来支持这个。您创建的文件具有每个搁置的更改列表的更改编号。然后你就跑git p4 sync --changesfile <filename>

唯一的问题是,这会将更改导入您的p4/master分支,因此git-p4会认为这些更改已提交。如果你使用它,你必须将一些本地git分支硬重置到新导入的提交,然后将p4/master ref硬重置回导入之前的状态。它还将[git-p4: depot-paths = ...]信息添加到提交消息的底部,因此它不适合直接运行git p4 submit。您可以编写某种git commit过滤器来批量删除它们。

尽管如此,我认为这比手动处理p4 unshelvep4 diff -dau > foo.patchpatch -Npx -i更好。

答案 1 :(得分:0)

您可以生成差异,然后将其应用到您的git树。 (生成差异的最简单,最可靠的方法可能是将变更集取消搁置到干净的Perforce客户端,然后执行p4 diff -du ...。请注意,这对添加或删除的文件不起作用。)< / p>

将来,您应该避免这样做。首先使用git-p4的关键是主要使用git,但要与Perforce同步更改。因此,您的git环境应该是您的“主”环境,并且您的Perforce客户端应该仅用作Perforce服务器的临时区域。