# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: /home/ondra/netbeans/cdev # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: libs.git/test/unit/src/org/netbeans/libs/git/jgit/commands/StatusTest.java --- libs.git/test/unit/src/org/netbeans/libs/git/jgit/commands/StatusTest.java +++ libs.git/test/unit/src/org/netbeans/libs/git/jgit/commands/StatusTest.java @@ -650,6 +650,42 @@ assertStatus(statuses, nested, f2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false); } + public void testStatusIgnores_207700 () throws Exception { + // +--- build + // | | + // | +--- phpcs.xml + // +--- nbproject + // | + // +--- src + // | | + // | +--- foo.php + + File buildFolder = new File(workDir, "build"); + buildFolder.mkdirs(); + File buildFile = new File(buildFolder, "phpcs.xml"); + write(buildFile, ""); + File nbproject = new File(workDir, "nbproject"); + nbproject.mkdirs(); + File srcFolder = new File(workDir, "src"); + srcFolder.mkdirs(); + File f = new File(srcFolder, "foo.php"); + write(f, ""); + + GitClient client = getClient(workDir); + File ignore = new File(workDir, ".gitignore"); + File[] roots = new File[] { buildFile, f, ignore }; + client.add(roots, NULL_PROGRESS_MONITOR); + write(ignore, "/build/*\n/nbproject/\n"); + client.add(roots, NULL_PROGRESS_MONITOR); + client.commit(roots, "commit", null, null, NULL_PROGRESS_MONITOR); + client.release(); + + Map status = getClient(workDir).getStatus(new File[0], NULL_PROGRESS_MONITOR); + assertTrue(status.get(f).isTracked()); + assertTrue(status.get(ignore).isTracked()); + assertTrue(status.get(buildFile).isTracked()); + } + private void assertStatus(Map statuses, File repository, File file, boolean tracked, Status headVsIndex, Status indexVsWorking, Status headVsWorking, boolean conflict, TestStatusListener monitor) { assertStatus(statuses, repository, file, tracked, headVsIndex, indexVsWorking, headVsWorking, conflict); assertStatus(monitor.notifiedStatuses, repository, file, tracked, headVsIndex, indexVsWorking, headVsWorking, conflict);