Переглянути джерело

CleanCommand: add the ability to do a dry run

Change-Id: I7b81a7e34a771951e2e7b789b080b2bfb8656e5c
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
tags/v1.1.0.201109011030-rc2
Abhishek Bhatnagar 13 роки тому
джерело
коміт
b04be93344

+ 19
- 0
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"));
}

}

+ 15
- 1
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;
}
}

Завантаження…
Відмінити
Зберегти