git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@982469 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -42,6 +42,10 @@ Changes that could break older environments: | |||
| of Ant 1.8.1. | |||
| Bugzilla Report 49373. | |||
| * The files and directories used by Git, Mercurial and Bazaar to | |||
| store their information are now excluded by the defaultexcludes. | |||
| Bugzilla Report 49624. | |||
| Fixed bugs: | |||
| ----------- | |||
| @@ -265,7 +265,7 @@ as an implicit fileset.</p> | |||
| <h3><a name="defaultexcludes">Default Excludes</a></h3> | |||
| <p>There are a set of definitions that are excluded by default from all | |||
| directory-based tasks. They are:</p> | |||
| directory-based tasks. As of Ant 1.8.1 they are:</p> | |||
| <pre> | |||
| **/*~ | |||
| **/#*# | |||
| @@ -282,6 +282,23 @@ directory-based tasks. They are:</p> | |||
| **/.svn/** | |||
| **/.DS_Store | |||
| </pre> | |||
| <p>Ant 1.8.2 adds the folllowing default excludes:</p> | |||
| <pre> | |||
| **/.git | |||
| **/.git/** | |||
| **/.gitattributes | |||
| **/.gitignore | |||
| **/.gitmodules | |||
| **/.hg | |||
| **/.hg/** | |||
| **/.hgignore | |||
| **/.hgsub | |||
| **/.hgsubstate | |||
| **/.hgtags | |||
| **/.bzr | |||
| **/.bzr/** | |||
| **/.bzrignore | |||
| </pre> | |||
| <p>If you do not want these default excludes applied, you may disable | |||
| them with the <code>defaultexcludes="no"</code> | |||
| attribute.</p> | |||
| @@ -170,6 +170,26 @@ public class DirectoryScanner | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.svn", | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.svn/" + SelectorUtils.DEEP_TREE_MATCH, | |||
| // Git | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.git", | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.git/" + SelectorUtils.DEEP_TREE_MATCH, | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.gitattributes", | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.gitignore", | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.gitmodules", | |||
| // Mercurial | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.hg", | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.hg/" + SelectorUtils.DEEP_TREE_MATCH, | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.hgignore", | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.hgsub", | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.hgsubstate", | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.hgtags", | |||
| // Bazaar | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.bzr", | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.bzr/" + SelectorUtils.DEEP_TREE_MATCH, | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.bzrignore", | |||
| // Mac | |||
| SelectorUtils.DEEP_TREE_MATCH + "/.DS_Store" | |||
| }; | |||
| @@ -53,6 +53,20 @@ public class DefaultExcludesTest extends BuildFileTest { | |||
| "**/vssver.scc", | |||
| "**/.svn", | |||
| "**/.svn/**", | |||
| "**/.git", | |||
| "**/.git/**", | |||
| "**/.gitattributes", | |||
| "**/.gitignore", | |||
| "**/.gitmodules", | |||
| "**/.hg", | |||
| "**/.hg/**", | |||
| "**/.hgignore", | |||
| "**/.hgsub", | |||
| "**/.hgsubstate", | |||
| "**/.hgtags", | |||
| "**/.bzr", | |||
| "**/.bzr/**", | |||
| "**/.bzrignore", | |||
| "**/.DS_Store"}; | |||
| project.executeTarget("test1"); | |||
| assertEquals("current default excludes", expected, DirectoryScanner.getDefaultExcludes()); | |||
| @@ -74,6 +88,20 @@ public class DefaultExcludesTest extends BuildFileTest { | |||
| "**/vssver.scc", | |||
| "**/.svn", | |||
| "**/.svn/**", | |||
| "**/.git", | |||
| "**/.git/**", | |||
| "**/.gitattributes", | |||
| "**/.gitignore", | |||
| "**/.gitmodules", | |||
| "**/.hg", | |||
| "**/.hg/**", | |||
| "**/.hgignore", | |||
| "**/.hgsub", | |||
| "**/.hgsubstate", | |||
| "**/.hgtags", | |||
| "**/.bzr", | |||
| "**/.bzr/**", | |||
| "**/.bzrignore", | |||
| "**/.DS_Store", | |||
| "foo"}; | |||
| project.executeTarget("test2"); | |||
| @@ -96,6 +124,20 @@ public class DefaultExcludesTest extends BuildFileTest { | |||
| "**/vssver.scc", | |||
| "**/.svn", | |||
| "**/.svn/**", | |||
| "**/.git", | |||
| "**/.git/**", | |||
| "**/.gitattributes", | |||
| "**/.gitignore", | |||
| "**/.gitmodules", | |||
| "**/.hg", | |||
| "**/.hg/**", | |||
| "**/.hgignore", | |||
| "**/.hgsub", | |||
| "**/.hgsubstate", | |||
| "**/.hgtags", | |||
| "**/.bzr", | |||
| "**/.bzr/**", | |||
| "**/.bzrignore", | |||
| "**/.DS_Store"}; | |||
| project.executeTarget("test3"); | |||
| assertEquals("current default excludes", expected, DirectoryScanner.getDefaultExcludes()); | |||