FileDocCategorySizeDatePackage
P4Sync.javaAPI DocApache Ant 1.703889Wed Dec 13 06:16:20 GMT 2006org.apache.tools.ant.taskdefs.optional.perforce

P4Sync

public class P4Sync extends P4Base
Synchronize client space to a Perforce depot view. The API allows additional functionality of the "p4 sync" command (such as "p4 sync -f //...#have" or other exotic invocations).

Example Usage:
FunctionCommand
Sync to head using P4USER, P4PORT and P4CLIENT settings specified <P4Sync
P4view="//projects/foo/main/source/..."
P4User="fbloggs"
P4Port="km01:1666"
P4Client="fbloggsclient" />
Sync to head using P4USER, P4PORT and P4CLIENT settings defined in environment <P4Sync P4view="//projects/foo/main/source/..." />
Force a re-sync to head, refreshing all files <P4Sync force="yes" P4view="//projects/foo/main/source/..." />
Sync to a label<P4Sync label="myPerforceLabel" />
todo
Add decent label error handling for non-exsitant labels
ant.task
category="scm"

Fields Summary
String
label
private String
syncCmd
Constructors Summary
Methods Summary
public voidexecute()
do the work

throws
BuildException if an error occurs during the execution of the Perforce command and failOnError is set to true



        if (P4View != null) {
            syncCmd = P4View;
        }


        if (label != null && !label.equals("")) {
            syncCmd = syncCmd + "@" + label;
        }


        log("Execing sync " + P4CmdOpts + " " + syncCmd, Project.MSG_VERBOSE);

        execP4Command("-s sync " + P4CmdOpts + " " + syncCmd, new SimpleP4OutputHandler(this));
    
public voidsetForce(java.lang.String force)
force a refresh of files, if this attribute is set; false by default.

param
force sync all files, whether they are supposed to be already uptodate or not.
throws
BuildException if a label is set and force is null

        if (force == null && !label.equals("")) {
            throw new BuildException("P4Sync: If you want to force, set force to non-null string!");
        }
        P4CmdOpts = "-f";
    
public voidsetLabel(java.lang.String label)
Label to sync client to; optional.

param
label name of a label against which one want to sync
throws
BuildException if label is null or empty string

    // CheckStyle:VisibilityModifier ON

                                    
          
        if (label == null || label.equals("")) {
            throw new BuildException("P4Sync: Labels cannot be Null or Empty");
        }

        this.label = label;