diff options
| author | Mathias Kinzler | 2010-12-21 09:06:19 +0000 |
|---|---|---|
| committer | Mathias Kinzler | 2010-12-21 09:06:19 +0000 |
| commit | e272ca0f1429440af3fde06387b8815a7f9d4547 (patch) | |
| tree | 32ca7167214624be5ff274a4949bb282188f4d6e | |
| parent | 8f419dc5e650047565cca34afc7524bcee3d32eb (diff) | |
| download | jgit-e272ca0f1429440af3fde06387b8815a7f9d4547.tar.gz jgit-e272ca0f1429440af3fde06387b8815a7f9d4547.tar.xz jgit-e272ca0f1429440af3fde06387b8815a7f9d4547.zip | |
CheckoutResult: return paths instead of Files
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>
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 2abd9d84e7..1166464d5e 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 cb261a0ace..dcd8fc3fc5 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 bddfe2be58..19b64229dd 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; } |
