P4 Integrate, Take Three

991 views

Published on

Perforce's 2011.1 release features our second full rewrite of the "p4 integrate" algorithm, driven by the need for further improved performance, semantics, and new functionality. This session will provide an overview of the major changes to "p4 integrate" and "p4 resolve" that users and client developers are likely to be interested in.

  • Be the first to comment

  • Be the first to like this

P4 Integrate, Take Three

  1. 1. Integrate and Resolvein 2011.1Sam StaffordDeveloper
  2. 2. P4 INTEGRATE, TAKE THREE
  3. 3. BASE SCORING AS IT WAS #2 + #3 = 5 #1 + #3 = 4 Selected base
  4. 4. BASE SCORING AS IT WILL BE 1 4 Selected base 1 1 +1 +1 2 +1 4 1 +1
  5. 5. AVOIDING RE-INTEGRATION
  6. 6. INTEGRATING INTO MOVED FILES
  7. 7. INTEGRATING BETWEEN MOVED FILES ? c:clientBCF - resolving move to //depot/B/D/E Filename resolve: at: //depot/B/D/E ay: //depot/B/C/F am: //depot/B/D/F Accept(a) Skip(s) Help(?) am: a //depot/B/D/F - moved from //depot/B/C/F
  8. 8. OTHER NEW TYPES OF RESOLVE Branch resolve: at: branch ay: ignore Accept(at/ay) Skip(s) Help(?) s: Delete resolve: at: delete ay: ignore Accept(at/ay) Skip(s) Help(?) s: Filetype resolve: at: (text+x) ay: (text+k) am: (text+kx) Accept(a) Skip(s) Help(?) am:
  9. 9. NEW C++ CLIENT API FUNCTIONALITY To perform a non-content resolve interactively: •  Build with 2011.1+ client libraries •  Leave api protocol at 70+ •  Use the new ClientResolveA class to implement this method: ClientUser::Resolve( ClientResolveA *r, int preview, Error *e ); The server will avoid scheduling resolves that the client does not know how to support, and under that circumstance it will error gracefully if asked to perform an already-scheduled resolve.
  10. 10. Q&A

×