forceSyncCmdList.add(workDir);
forceSyncCmdList.add("-x-");
forceSyncCmdList.add("sync");
forceSyncCmdList.add("-f");
PerforceCall forceSync = new PerforceCall(env, forceSyncCmdList.toArray(new String[forceSyncCmdList.size()]), forceSyncInput, out, workDir, listener, false);
//build diff command
findDiffFilesCmdList.add(p4exe);
if(p4ticket != null && !p4ticket.trim().isEmpty()){
findDiffFilesCmdList.add("-P");
findDiffFilesCmdList.add(p4ticket);
}
findDiffFilesCmdList.add("-d");
findDiffFilesCmdList.add(workDir);
findDiffFilesCmdList.add("diff");
findDiffFilesCmdList.add(option);
PerforceCall findDiffFiles = new PerforceCall(env, findDiffFilesCmdList.toArray(new String[findDiffFilesCmdList.size()]), new ClosedInputStream(), diffOutput, workDir, listener, true);
try {
forceSync.start();
//find changed files
findDiffFiles.start();
findDiffFiles.join();
forceSync.join();
} catch (InterruptedException e) {
forceSync.interrupt();
findDiffFiles.interrupt();
} finally {
IOUtils.closeQuietly(forceSyncInput);
IOUtils.closeQuietly(diffOutput);
}
}