Jump to content


Member Since 20 Feb 2019
Offline Last Active Apr 03 2019 09:29 AM

Topics I've Started

Move and integrations

22 February 2019 - 08:11 AM


we had issues with move and integrations.
Let's say the original tree was like this:


This was integrated from //DEPOT/project/... to //DEPOT/nextproject/...

Now on the new branch the directory is moved from //DEPOT/nextproject/configuration to //DEPOT/nextproject/custom/configuration.

Making changes on old  //DEPOT/project/configuration
and re-integrating //DEPOT/project/... to //DEPOT/nextproject/... does not merge the changes from the old location to the new moved location. For this situation we need to do specific integrations like from //DEPOT/project/configuration/... to //DEPOT/nextproject/custom/configuration/...

But the integrator usually doesn't know about all the moves and like Perforce to care about the mapping to new locations.
Otherwise every p4 move would mean to modify a Branch Specification accordingly which needs far more maintenance.

P4 integration of deletions

20 February 2019 - 02:49 PM


I have an issue with deletions and integrations. To me it looks like if Perforce does not integrate deletions further. So the first integration always has the 'delete', further integrations have not, because the origin and the target both have no file like that anymore. But moreover it seems that Perforce forgets about the previous existence of that file.


You have a common base TRUNK. You integrate into PROJECT_A and PROJECT_B. You delete the file on PROJECT_A and integrate back to TRUNK Then you integrate TRUNK to PROJECT_C. This integration doesn't have the file anymore and no delete about that. If you integrate old PROJECT_A, that has been created before the deletion, to PROJECT_C, it recreates all the new files.

Actually the p4 integrate -Di is exactly for that:


The -Di flag modifies the way deleted revisions are treated.  If the
source file has been deleted and re-added, revisions that precede
the deletion will be considered to be part of the same source file.
By default, re-added files are considered to be unrelated to the
files of the same name that preceded them.
But P4 still sees no relation. The P4V even says "Try to integrate changes when source deleted and re-added", which is a bit unclear. For every integration P4 must find the common base and see the deletion on one path that is the youngest change on that file, and keep it deleted. Otherwise no integration over several lines is possible to track deletions.

Is this the right place for that issue?