ServerHelperApi::CloneFromRemote(int,const StrPtr*,ClientUser*,Error*)
Populates a personal server based on a remote specification.
|
Virtual? |
No |
|
|
Class |
||
|
Arguments |
|
specifies the number of revisions to fetch of each file |
|
|
optional debug flag; set to 0 to leave it unset |
|
|
|
a pointer to |
|
|
|
a pointer to an |
|
|
Returns |
|
indicates success of command |
Notes
This method stores the remote generated by either PrepareToCloneFilepath()
or PrepareToCloneRemote()
as origin and then runs p4 fetch to populate
the local server. This method should be run against the instance of
ServerHelperApi class configured as the personal server.
A return value of 1 indicates a successful clone. If the method returns
0, check the Error object to see what occurred.
See also
ServerHelperApi::PrepareToCloneFilepath()ServerHelperApi::PrepareToCloneRemote()
Example
// Basic "p4 clone" flow:
ClientUser ui;
Error e;
ServerHelperApi personalServer( &e );
if( e.Test() )
return 0;
personalServer.SetDvcsDir( "/path/to/root", &e );
personalServer.SetProg( "MyApp" ); // optional
personalServer.SetVersion( "version" ); // optional
if( personalServer.Exists() )
return 0;
ServerHelperApi sharedServer( &e );
sharedServer.SetPort( "1666" );
sharedServer.SetProg( "MyApp" ); // optional
sharedServer.SetVersion( "version" ); // optional
// Fetch the remote spec
if( !personalServer.PrepareToCloneRemote( &sharedServer, remote, &ui ) )
return 0;
// Create the personal server
// This returns the exit code from p4d, so 0 is success
if( personalServer.InitLocalServer( &ui ) )
return 0;
// Fetch from the remote
if( !personalServer.CloneFromRemote( 0, 0, &ui ) )
return 0;