The files in this tree are an INITIAL start at at "Perforce" plug-in to the Java build tool named "ant". There's a bootstrap issue to be dealt with, so follow carefully: 1. You need to get the JDK and ANT built and installed. Be sure to set ANT_HOME and JDK_HOME in your environment and try a few tests first. 2. Extract this set of files, preserving directory structure. (If you don't extract it into ANT_HOME, be prepared to modify line 21 of 'build.xml' so that it points to ${ANT_HOME}/lib/ant.jar. Otherwise, "p4sync.java" won't compile.) 3. Type "ant" and watch it build one .class file (p4sync.class). It will put this into dist/lib/p4sync.jar. 4. Test it out, by running including that 'dist/lib/p4sync.jar' into your path and then building using ant -f build.users-p4sync.xml If it doesn't find the org.apache.tools.ant.taskdefs.optional.perforce.p4sync method then your CLASSPATH isn't set right or you didn't compile it after all - check the output from step #3 again. Things to do: 1. Document this. 2. Make it parse the Perforce output from the 'p4 sync' operations and report errors appropriately. What it does: If you include the task: into your build.xml file, it'll run a "p4 sync" on that directory (it assumes it's part of a workspace that's mapped in) to the specified revision. And... 1. "dir" is mandatory, the rest are optional; 2. If you specify time, you have to specify date. 2a. If you specify date but not time, midnight is implied. 3. You cannot specify more than one of (date, label, revision). 4. Any "sync" error is considered a fatal error, and a BuildException is returned. For the label/date parms, it'll prepend "@" as needed; for the revision, it'll prepend "#" as needed. Examples: