aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathias Kinzler2010-12-21 04:06:19 (EST)
committerMathias Kinzler2010-12-21 04:06:19 (EST)
commite272ca0f1429440af3fde06387b8815a7f9d4547 (patch)
tree32ca7167214624be5ff274a4949bb282188f4d6e
parent8f419dc5e650047565cca34afc7524bcee3d32eb (diff)
downloadjgit-e272ca0f1429440af3fde06387b8815a7f9d4547.zip
jgit-e272ca0f1429440af3fde06387b8815a7f9d4547.tar.gz
jgit-e272ca0f1429440af3fde06387b8815a7f9d4547.tar.bz2
CheckoutResult: return paths instead of Filesrefs/changes/61/2161/1
As discussed in http://egit.eclipse.org/r/#change,2127 we should use paths relative the working directory instead of Files to notify the caller about conflicts and nondeleted files. Change-Id: I034c7bd846f0df78d97bc246f38d411f29713dde Signed-off-by: Mathias Kinzler <mathias.kinzler@sap.com>
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java7
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java19
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java15
3 files changed, 15 insertions, 26 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java
index 2abd9d8..1166464 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java
@@ -128,9 +128,8 @@ public class CheckoutCommandTest extends RepositoryTestCase {
}
}
- public void testCheckoutWithConflict() throws IOException {
+ public void testCheckoutWithConflict() {
CheckoutCommand co = git.checkout();
- File trashFile = writeTrashFile("Test.txt", "Another change");
try {
writeTrashFile("Test.txt", "Another change");
assertEquals(Status.NOT_TRIED, co.getResult().getStatus());
@@ -138,7 +137,7 @@ public class CheckoutCommandTest extends RepositoryTestCase {
fail("Should have failed");
} catch (Exception e) {
assertEquals(Status.CONFLICTS, co.getResult().getStatus());
- assertTrue(co.getResult().getConflictList().contains(trashFile));
+ assertTrue(co.getResult().getConflictList().contains("Test.txt"));
}
}
@@ -171,7 +170,7 @@ public class CheckoutCommandTest extends RepositoryTestCase {
co.setName("test").call();
assertTrue(testFile.exists());
assertEquals(Status.NONDELETED, co.getResult().getStatus());
- assertTrue(co.getResult().getUndeletedList().contains(testFile));
+ assertTrue(co.getResult().getUndeletedList().contains("Test.txt"));
} finally {
fis.close();
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java
index cb261a0..dcd8fc3 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java
@@ -42,11 +42,8 @@
*/
package org.eclipse.jgit.api;
-import java.io.File;
import java.io.IOException;
import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
import org.eclipse.jgit.JGitText;
import org.eclipse.jgit.api.CheckoutResult.Status;
@@ -141,11 +138,8 @@ public class CheckoutCommand extends GitCommand<Ref> {
try {
dco.checkout();
} catch (CheckoutConflictException e) {
- List<File> fileList = new ArrayList<File>();
- for (String filePath : dco.getConflicts()) {
- fileList.add(new File(repo.getWorkTree(), filePath));
- }
- status = new CheckoutResult(Status.CONFLICTS, fileList);
+ status = new CheckoutResult(Status.CONFLICTS, dco
+ .getConflicts());
throw e;
}
Ref ref = repo.getRef(name);
@@ -183,12 +177,9 @@ public class CheckoutCommand extends GitCommand<Ref> {
throw new JGitInternalException(MessageFormat.format(JGitText
.get().checkoutUnexpectedResult, updateResult.name()));
- if (!repo.isBare() && !dco.getToBeDeleted().isEmpty()) {
- List<File> fileList = new ArrayList<File>();
- for (String filePath : dco.getToBeDeleted()) {
- fileList.add(new File(repo.getWorkTree(), filePath));
- }
- status = new CheckoutResult(Status.NONDELETED, fileList);
+ if (!dco.getToBeDeleted().isEmpty()) {
+ status = new CheckoutResult(Status.NONDELETED, dco
+ .getToBeDeleted());
}
else
status = CheckoutResult.OK_RESULT;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java
index bddfe2b..19b6422 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java
@@ -42,7 +42,6 @@
*/
package org.eclipse.jgit.api;
-import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -97,20 +96,20 @@ public class CheckoutResult {
private final Status myStatus;
- private final List<File> conflictList;
+ private final List<String> conflictList;
- private final List<File> undeletedList;
+ private final List<String> undeletedList;
- CheckoutResult(Status status, List<File> fileList) {
+ CheckoutResult(Status status, List<String> fileList) {
myStatus = status;
if (status == Status.CONFLICTS)
this.conflictList = fileList;
else
- this.conflictList = new ArrayList<File>(0);
+ this.conflictList = new ArrayList<String>(0);
if (status == Status.NONDELETED)
this.undeletedList = fileList;
else
- this.undeletedList = new ArrayList<File>(0);
+ this.undeletedList = new ArrayList<String>(0);
}
@@ -125,7 +124,7 @@ public class CheckoutResult {
* @return the list of files that created a checkout conflict, or an empty
* list if {@link #getStatus()} is not {@link Status#CONFLICTS};
*/
- public List<File> getConflictList() {
+ public List<String> getConflictList() {
return conflictList;
}
@@ -134,7 +133,7 @@ public class CheckoutResult {
* an empty list if {@link #getStatus()} is not
* {@link Status#NONDELETED};
*/
- public List<File> getUndeletedList() {
+ public List<String> getUndeletedList() {
return undeletedList;
}