aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAbhishek Bhatnagar2011-05-27 16:30:27 (EDT)
committerChris Aniszczyk2011-05-31 10:15:07 (EDT)
commitb04be9334494640a693ef5e515af1be4a6983eb5 (patch)
treea504837aa0a4f7cdb199ed9d189ea1be75bef400
parenta00b951323b0d23482a25b2bb813a56fad7f935b (diff)
downloadjgit-b04be9334494640a693ef5e515af1be4a6983eb5.zip
jgit-b04be9334494640a693ef5e515af1be4a6983eb5.tar.gz
jgit-b04be9334494640a693ef5e515af1be4a6983eb5.tar.bz2
CleanCommand: add the ability to do a dry runrefs/changes/53/3553/4
Change-Id: I7b81a7e34a771951e2e7b789b080b2bfb8656e5c Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CleanCommandTest.java19
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/CleanCommand.java16
2 files changed, 34 insertions, 1 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CleanCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CleanCommandTest.java
index 760acbb..a660a52 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CleanCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CleanCommandTest.java
@@ -113,4 +113,23 @@ public class CleanCommandTest extends RepositoryTestCase {
assertTrue(!cleanedFiles.contains("File2.txt"));
}
+ @Test
+ public void testCleanWithDryRun() throws NoWorkTreeException, IOException {
+ // create status
+ StatusCommand command = git.status();
+ Status status = command.call();
+ Set<String> files = status.getUntracked();
+ assertTrue(files.size() > 0);
+
+ // run clean
+ Set<String> cleanedFiles = git.clean().setDryRun(true).call();
+
+ status = git.status().call();
+ files = status.getUntracked();
+
+ assertTrue(files.size() == 2);
+ assertTrue(cleanedFiles.contains("File2.txt"));
+ assertTrue(cleanedFiles.contains("File3.txt"));
+ }
+
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CleanCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CleanCommand.java
index d0d40c4..e31f119 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CleanCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CleanCommand.java
@@ -64,6 +64,8 @@ public class CleanCommand extends GitCommand<Set<String>> {
private Set<String> paths = Collections.emptySet();
+ private boolean dryRun;
+
/**
* @param repo
*/
@@ -86,7 +88,8 @@ public class CleanCommand extends GitCommand<Set<String>> {
Status status = command.call();
for (String file : status.getUntracked()) {
if (paths.isEmpty() || paths.contains(file)) {
- FileUtils.delete(new File(repo.getWorkTree(), file));
+ if (!dryRun)
+ FileUtils.delete(new File(repo.getWorkTree(), file));
files.add(file);
}
}
@@ -108,4 +111,15 @@ public class CleanCommand extends GitCommand<Set<String>> {
return this;
}
+ /**
+ * If dryRun is set, the paths in question will not actually be deleted.
+ *
+ * @param dryRun
+ * whether to do a dry run or not
+ * @return {@code this}
+ */
+ public CleanCommand setDryRun(boolean dryRun) {
+ this.dryRun = dryRun;
+ return this;
+ }
}