2014-01-22 32 views
3

我有一些使用Perforce进行版本控制的软件。有很多checkin,因此有很多changelist。使用Perforce对多个更改列表进行区分

有一个功能,在很长一段时间内用很多签入来实现,我想在其他地方移植。 I 可以手动搜索历史记录,但如果有一种简单的方法来区分基线的当前状态与所选变更列表的组合效果,那将是非常好的。

换句话说,DIFF最新,最大的反对的结果分支:变更表A +变更表B +的变更表ç...

如何在Perforce中做到这一点?

+0

你要比较一个文件的不同版本或不同版本的几个文件?您可以始终使用“p4 diff ... @ YYYY/MM/DD”来比较当前版本的子树与旧版本中的同一子树。但结果很难理解(如果它很复杂)。 – pitseeker

+0

如果你使用p4v,你看了Time-Lapse视图吗?在同一分支内,它可以让你随着时间的推移查看代码。它可以让您比较当前或过去更改列表的累积更改。 – gaige

+0

@pitseeker有很多开发人员长时间登录到同一个分支。我只想要一个开发人员的一些变更名单。我可以很容易地找到所有相关的更改列表,手动比较每个列表只是一个痛苦。它是一大堆文件的不同版本。我想把所有我关心的改变列表,总结起来,并将它们与当前最新的 - 最伟大的改变列表进行比较。 – kmort

回答

1

我会这样做的方式是使用p4编辑,同步和解析的组合来构建我想要在我的工作区中进行的一组更改。其基本过程是:

  1. 同步改变A(假设它开始的顺序)
  2. 为编辑
  3. 同步改变B-1(这将安排解决)
  4. 运行Open一切P4决心和忽略的变化(-ay)
  5. 同步变化B(这将调度解析)
  6. 解决变化乙处理任何冲突
  7. Sync来改变C-1
  8. 决心和忽略更改
  9. 同步变动c
  10. 解决,并在修改合并
  11. DIFF对头部
+0

谢谢马特。这将做我所问。我希望有更多的自动化功能,但我认为你已经展示了Perforce目前能做的最好的事情。 – kmort

+0

我有同样的问题。我正在跨越多个变更列表进行代码审查,这是一个耗时的噩梦。只要我能理解,@matt的答案看起来很棒。大声笑失去我的那一刻是从改变名单A,B和C但同步到B-1和C-1的跳跃。我不明白B-1和C-1是什么。 – Keith

+0

字面上小于A,B和C的变化列表数。所以,如果你想看到变化123(A),456(B)和789(C)的组合效果,那么你将同步到123,打开所有的编辑,然后同步到455,解析 - 一直忽略所有这些更改,然后同步到456以仅从该更改中获取内容。 – Matt