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

    Constructors
    Constructor and Description
    `P4Sync()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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