diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java index 00e39ebe3..ab011807c 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java @@ -338,6 +338,26 @@ public class AddCommandTest extends RepositoryTestCase { assertEquals(0, dc.getEntry("sub/a.txt").getStage()); } + public void testAddWholeRepo() throws Exception { + new File(db.getWorkDir(), "sub").mkdir(); + File file = new File(db.getWorkDir(), "sub/a.txt"); + file.createNewFile(); + PrintWriter writer = new PrintWriter(file); + writer.print("content"); + writer.close(); + + File file2 = new File(db.getWorkDir(), "sub/b.txt"); + file2.createNewFile(); + writer = new PrintWriter(file2); + writer.print("content b"); + writer.close(); + + Git git = new Git(db); + DirCache dc = git.add().addFilepattern(".").call(); + assertEquals("sub/a.txt", dc.getEntry("sub/a.txt").getPathString()); + assertEquals("sub/b.txt", dc.getEntry("sub/b.txt").getPathString()); + } + private DirCacheEntry addEntryToBuilder(String path, File file, ObjectWriter ow, DirCacheBuilder builder, int stage) throws IOException { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/AddCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/AddCommand.java index 50db1ffc1..8dbbb4063 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/AddCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/AddCommand.java @@ -109,6 +109,9 @@ public class AddCommand extends GitCommand { throw new NoFilepatternException(JGitText.get().atLeastOnePatternIsRequired); checkCallable(); DirCache dc = null; + boolean addAll = false; + if (filepatterns.contains(".")) + addAll = true; try { dc = DirCache.lock(repo); @@ -122,7 +125,8 @@ public class AddCommand extends GitCommand { FileTreeIterator fileTreeIterator = new FileTreeIterator(repo); tw.addTree(fileTreeIterator); tw.setRecursive(true); - tw.setFilter(PathFilterGroup.createFromStrings(filepatterns)); + if (!addAll) + tw.setFilter(PathFilterGroup.createFromStrings(filepatterns)); String lastAddedFile = null;