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

    java.lang.Object
      org.apache.tools.ant.ProjectComponent
          org.apache.tools.ant.Task
              org.apache.tools.ant.taskdefs.optional.perforce.P4Base
                  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:

Function | Command
--- | ---
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