From 43de42a38ffaf685b29e9af7433f59ab7fba7265 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Thu, 5 Aug 2010 04:55:55 +0000 Subject: [PATCH] =?UTF-8?q?add=20Git,=20Mercurial=20and=20Bazaar=20files/d?= =?UTF-8?q?irs=20to=20defaultexcludes.=20=20Submitted=20by=20Ville=20Skytt?= =?UTF-8?q?=C3=A4.=20=20PR=2049624?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@982469 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 4 ++ docs/manual/dirtasks.html | 19 ++++++++- .../apache/tools/ant/DirectoryScanner.java | 20 +++++++++ .../ant/taskdefs/DefaultExcludesTest.java | 42 +++++++++++++++++++ 4 files changed, 84 insertions(+), 1 deletion(-) diff --git a/WHATSNEW b/WHATSNEW index 8f1b8f184..754e1f502 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -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: ----------- diff --git a/docs/manual/dirtasks.html b/docs/manual/dirtasks.html index 28a4daf03..9d4e145e2 100644 --- a/docs/manual/dirtasks.html +++ b/docs/manual/dirtasks.html @@ -265,7 +265,7 @@ as an implicit fileset.

Default Excludes

There are a set of definitions that are excluded by default from all -directory-based tasks. They are:

+directory-based tasks. As of Ant 1.8.1 they are:

      **/*~
      **/#*#
@@ -282,6 +282,23 @@ directory-based tasks. They are:

**/.svn/** **/.DS_Store
+

Ant 1.8.2 adds the folllowing default excludes:

+
+     **/.git
+     **/.git/**
+     **/.gitattributes
+     **/.gitignore
+     **/.gitmodules
+     **/.hg
+     **/.hg/**
+     **/.hgignore
+     **/.hgsub
+     **/.hgsubstate
+     **/.hgtags
+     **/.bzr
+     **/.bzr/**
+     **/.bzrignore
+

If you do not want these default excludes applied, you may disable them with the defaultexcludes="no" attribute.

diff --git a/src/main/org/apache/tools/ant/DirectoryScanner.java b/src/main/org/apache/tools/ant/DirectoryScanner.java index 7531954d4..94973bbb6 100644 --- a/src/main/org/apache/tools/ant/DirectoryScanner.java +++ b/src/main/org/apache/tools/ant/DirectoryScanner.java @@ -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" }; diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/DefaultExcludesTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/DefaultExcludesTest.java index 040eaa805..86efc6855 100644 --- a/src/tests/junit/org/apache/tools/ant/taskdefs/DefaultExcludesTest.java +++ b/src/tests/junit/org/apache/tools/ant/taskdefs/DefaultExcludesTest.java @@ -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());