Browse Source

Checkout: Add the ability to checkout all paths.

Change-Id: Ie1e59c566b63d0dfac231e44e7ebd7f3f08f3e9f
Signed-off-by: Ned Twigg <ned.twigg@diffplug.com>
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
stable-4.6
Ned Twigg 9 years ago committed by David Pursehouse
parent
commit
e49025386e
  1. 25
      org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/CheckoutTest.java
  2. 9
      org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Checkout.java

25
org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/CheckoutTest.java

@ -613,7 +613,30 @@ public class CheckoutTest extends CLIRepositoryTestCase {
} }
@Test @Test
public void testCheckouSingleFile() throws Exception { public void testCheckoutAllPaths() throws Exception {
try (Git git = new Git(db)) {
writeTrashFile("a", "Hello world a");
git.add().addFilepattern(".").call();
git.commit().setMessage("commit file a").call();
git.branchCreate().setName("branch_1").call();
git.checkout().setName("branch_1").call();
File b = writeTrashFile("b", "Hello world b");
git.add().addFilepattern("b").call();
git.commit().setMessage("commit file b").call();
File a = writeTrashFile("a", "New Hello world a");
git.add().addFilepattern(".").call();
git.commit().setMessage("modified a").call();
assertArrayEquals(new String[] { "" },
execute("git checkout HEAD~2 -- ."));
assertEquals("Hello world a", read(a));
assertArrayEquals(new String[] { "* branch_1", " master", "" },
execute("git branch"));
assertEquals("Hello world b", read(b));
}
}
@Test
public void testCheckoutSingleFile() throws Exception {
try (Git git = new Git(db)) { try (Git git = new Git(db)) {
File a = writeTrashFile("a", "file a"); File a = writeTrashFile("a", "file a");
git.add().addFilepattern(".").call(); git.add().addFilepattern(".").call();

9
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Checkout.java

@ -92,8 +92,13 @@ class Checkout extends TextBuiltin {
CheckoutCommand command = git.checkout(); CheckoutCommand command = git.checkout();
if (paths.size() > 0) { if (paths.size() > 0) {
command.setStartPoint(name); command.setStartPoint(name);
for (String path : paths) if (paths.size() == 1 && paths.get(0).equals(".")) { //$NON-NLS-1$
command.addPath(path); command.setAllPaths(true);
} else {
for (String path : paths) {
command.addPath(path);
}
}
} else { } else {
command.setCreateBranch(createBranch); command.setCreateBranch(createBranch);
command.setName(name); command.setName(name);

Loading…
Cancel
Save