1 | /*
|
---|
2 | * Copyright 2001-2004 The Apache Software Foundation
|
---|
3 | *
|
---|
4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
---|
5 | * you may not use this file except in compliance with the License.
|
---|
6 | * You may obtain a copy of the License at
|
---|
7 | *
|
---|
8 | * http://www.apache.org/licenses/LICENSE-2.0
|
---|
9 | *
|
---|
10 | * Unless required by applicable law or agreed to in writing, software
|
---|
11 | * distributed under the License is distributed on an "AS IS" BASIS,
|
---|
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
---|
13 | * See the License for the specific language governing permissions and
|
---|
14 | * limitations under the License.
|
---|
15 | *
|
---|
16 | */
|
---|
17 | /*
|
---|
18 | * Portions of this software are based upon public domain software
|
---|
19 | * originally written at the National Center for Supercomputing Applications,
|
---|
20 | * University of Illinois, Urbana-Champaign.
|
---|
21 | */
|
---|
22 |
|
---|
23 | package org.apache.tools.ant.taskdefs.optional.perforce;
|
---|
24 |
|
---|
25 | import org.apache.tools.ant.BuildException;
|
---|
26 |
|
---|
27 | /**
|
---|
28 | * Revert Perforce open files or files in a changelist
|
---|
29 | *
|
---|
30 | *
|
---|
31 | * @ant.task category="scm"
|
---|
32 | */
|
---|
33 | public class P4Revert extends P4Base {
|
---|
34 |
|
---|
35 | private String revertChange = null;
|
---|
36 | private boolean onlyUnchanged = false;
|
---|
37 |
|
---|
38 | /**
|
---|
39 | * The changelist to revert; optional.
|
---|
40 | * @param revertChange : the change list to revert
|
---|
41 | * @throws BuildException if the change list is null or empty string
|
---|
42 | */
|
---|
43 | public void setChange(String revertChange) throws BuildException {
|
---|
44 | if (revertChange == null && !revertChange.equals("")) {
|
---|
45 | throw new BuildException("P4Revert: change cannot be null or empty");
|
---|
46 | }
|
---|
47 |
|
---|
48 | this.revertChange = revertChange;
|
---|
49 |
|
---|
50 | }
|
---|
51 |
|
---|
52 | /**
|
---|
53 | * flag to revert only unchanged files (p4 revert -a); optional, default false.
|
---|
54 | * @param onlyUnchanged if set to true revert only unchanged files
|
---|
55 | */
|
---|
56 | public void setRevertOnlyUnchanged(boolean onlyUnchanged) {
|
---|
57 | this.onlyUnchanged = onlyUnchanged;
|
---|
58 | }
|
---|
59 |
|
---|
60 | /**
|
---|
61 | * do the work
|
---|
62 | * @throws BuildException if an error occurs during the execution of the Perforce command
|
---|
63 | * and failonError is set to true
|
---|
64 | */
|
---|
65 | public void execute() throws BuildException {
|
---|
66 |
|
---|
67 | /* Here we can either revert any unchanged files in a changelist
|
---|
68 | * or
|
---|
69 | * any files regardless of whether they have been changed or not
|
---|
70 | *
|
---|
71 | *
|
---|
72 | * The whole process also accepts a p4 filespec
|
---|
73 | */
|
---|
74 | String p4cmd = "-s revert";
|
---|
75 | if (onlyUnchanged) {
|
---|
76 | p4cmd += " -a";
|
---|
77 | }
|
---|
78 |
|
---|
79 | if (revertChange != null) {
|
---|
80 | p4cmd += " -c " + revertChange;
|
---|
81 | }
|
---|
82 |
|
---|
83 | execP4Command(p4cmd + " " + P4View, new SimpleP4OutputHandler(this));
|
---|
84 | }
|
---|
85 | }
|
---|