git p4 submit --shelve将您提交的更改放在本地git存储库中,并将它们放入更改列表X中并将其搁置。
假设我对搁置的更改做了一些代码审查,因此我本地git repo中的文件与changelist X中的文件不同。我如何将changelist X中的更新放入我的本地git repo中?
发布于 2017-07-13 02:59:21
我做了一个modified version of git-p4.py来支持这一点。您可以创建一个文件,其中包含每个搁置的更改列表的更改编号。然后只需运行git p4 sync --changesfile <filename>即可。
唯一的问题是,这会将更改导入到p4/master分支中,因此git-p4会认为这些更改已经提交。如果您使用它,您将不得不对新导入的提交进行一些本地git分支的硬重置,然后将p4/master引用硬重置回导入之前的状态。它还将[git-p4: depot-paths = ...]信息添加到提交消息的底部,因此它不适合直接运行git p4 submit。您可能会编写某种git提交过滤器来批量剥离这些内容。
尽管如此,我认为它比手动处理p4 unshelve、p4 diff -dau > foo.patch和patch -Npx -i要好得多。
发布于 2017-02-07 04:09:43
您可以生成一个diff,然后将其应用于您的git树。(生成差异的最简单、最可靠的方法可能是将变更集取消搁置到一个干净的Perforce客户端中,然后执行p4 diff -du ...。但请注意,这不适用于添加或删除的文件。)
在将来,您应该避免需要这样做。首先,使用git-p4的目的是主要使用git,但要将更改同步到Perforce或从Perforce同步更改。因此,您的git环境应该是您的“主”环境,您的Perforce客户端应该只用作Perforce服务器的一个中间区域。
https://stackoverflow.com/questions/41841917
复制相似问题