perforceperforce-integrate

"p4 interchanges" lists a changelist that has already been integrated


I'm running p4 interchanges -b my_branch, and I get a ton of results, the first one being a changelist that we integrated a long time ago.

So I try to integrate again, but p4 integrate -b my_branch //...@changelist,@changelist just returns "All revision(s) already integrated".

The only way to unblock this is to do a forced integration (-f in the integrate command) and then simply accept target (-at when resolving), and that works - p4 interchanges then no longer lists this changelist.

But how can Perforce get into this state to begin with? This happened after we've done a bunch of integrating across multiple branches, but I nothing that I'd think would cause a changelist to become "unintegrated" somehow.

This is on a 2014.1 server.


Solution

  • Thank you for specifying your server version.

    The 'p4 interchanges' command can give the "All revision(s) already integrated" message with misleading results when cherry-picking is involved.

    There is a command line example here:

    http://answers.perforce.com/articles/KB_Article/Cherry-Picking-Integrations
    

    You could also be affected by a bug that was patched in 2014.1 listed here in the server release notes:

    http://www.perforce.com/perforce/doc.current/user/relnotes.txt

    Bugs fixed in 2014.1 PATCH5

    #880506 (Bug #71725) **
        The istat.mimic.ichanges configurable controls the reporting
        of revisions between stream and parent.  If set, istat will
        not report cherry-picked revisions already present in the target.
        The default behavior will report any changes not credited, even 
        when the content may already be in the target.
    

    If you would like, you can pull the most recent build of the server P4D for your OS from our ftp site: http://ftp.perforce.com/perforce/r14.1/

    REFERENCE

    http://answers.perforce.com/articles/KB_Article/Integration-Changes-Reporting