git-svn: Add per-svn-remote ignore-paths config
The --ignore-paths option to fetch is very useful for working on a subset
of a SVN repository. For proper operation, every command that causes a
fetch (explicit or implied) must include a matching --ignore-paths option.
This patch adds a persistent svn-remote.$repo_id.ignore-paths config by
promoting Fetcher::is_path_ignored to a member function and initializing
$self->{ignore_regex} in Fetcher::new. Command line --ignore-paths is
still recognized and acts in addition to the config value.
Signed-off-by: Ben Jackson <ben@ben.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 85b2c8d..aad5e65 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -107,17 +107,25 @@
the same local timezone.
--ignore-paths=<regex>;;
- This allows one to specify Perl regular expression that will
+ This allows one to specify a Perl regular expression that will
cause skipping of all matching paths from checkout from SVN.
- Examples:
+ The '--ignore-paths' option should match for every 'fetch'
+ (including automatic fetches due to 'clone', 'dcommit',
+ 'rebase', etc) on a given repository.
- --ignore-paths="^doc" - skip "doc*" directory for every fetch.
+config key: svn-remote.<name>.ignore-paths
- --ignore-paths="^[^/]+/(?:branches|tags)" - skip "branches"
- and "tags" of first level directories.
+ If the ignore-paths config key is set and the command
+ line option is also given, both regular expressions
+ will be used.
- Regular expression is not persistent, you should specify
- it every time when fetching.
+Examples:
+
+ --ignore-paths="^doc" - skip "doc*" directory for every
+ fetch.
+
+ --ignore-paths="^[^/]+/(?:branches|tags)" - skip
+ "branches" and "tags" of first level directories.
'clone'::
Runs 'init' and 'fetch'. It will automatically create a