org.apache.tools.ant.taskdefs.optional.perforce
Class P4Sync

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.tools.ant.taskdefs.optional.perforce.P4Base
              extended by org.apache.tools.ant.taskdefs.optional.perforce.P4Sync
All Implemented Interfaces:
java.lang.Cloneable

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" />

To do:
Add decent label error handling for non-exsitant labels

Field Summary
 
Fields inherited from class org.apache.tools.ant.taskdefs.optional.perforce.P4Base
failOnError, P4Client, P4CmdOpts, P4Opts, P4Port, P4User, P4View, shell, util
 
Fields inherited from class org.apache.tools.ant.Task
target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
 
Constructor Summary
P4Sync()
           
 
Method Summary
 void execute()
          do the work
 void setForce(java.lang.String force)
          force a refresh of files, if this attribute is set; false by default.
 void setLabel(java.lang.String label)
          Label to sync client to; optional.
 
Methods inherited from class org.apache.tools.ant.taskdefs.optional.perforce.P4Base
execP4Command, execP4Command, getErrorMessage, getInError, init, setClient, setCmdopts, setErrorMessage, setFailonerror, setGlobalopts, setInError, setPort, setUser, setView
 
Methods inherited from class org.apache.tools.ant.Task
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

P4Sync

public P4Sync()
Method Detail

setLabel

public void setLabel(java.lang.String label)
              throws BuildException
Label to sync client to; optional.

Parameters:
label - name of a label against which one want to sync
Throws:
BuildException - if label is null or empty string

setForce

public void setForce(java.lang.String force)
              throws BuildException
force a refresh of files, if this attribute is set; false by default.

Parameters:
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

execute

public void execute()
             throws BuildException
do the work

Overrides:
execute in class Task
Throws:
BuildException - if an error occurs during the execution of the Perforce command and failOnError is set to true