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
`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