README
1NAME
2 File::Find::Rule::VCS - Exclude files/directories for Version Control
3 Systems
4
5SYNOPSIS
6 use File::Find::Rule ();
7 use File::Find::Rule::VCS ();
8
9 # Find all files smaller than 10k, ignoring version control files
10 my @files = File::Find::Rule->ignore_vcs
11 ->file
12 ->size('<10Ki')
13 ->in( $dir );
14
15DESCRIPTION
16 Many tools need to be equally useful both on ordinary files, and on code
17 that has been checked out from revision control systems.
18
19 File::Find::Rule::VCS provides quick and convenient methods to exclude
20 the version control directories of several major Version Control Systems
21 (currently CVS, subversion, and Bazaar).
22
23 File::Find::Rule::VCS implements methods to ignore the following:
24
25 CVS
26 Subversion
27 Bazaar
28
29 In addition, the following version control systems do not create
30 directories in the checkout and do not require the use of any ignore
31 methods
32
33 SVK
34 Git
35
36METHODS
37 ignore_vcs
38 # Ignore all common version control systems
39 $find->ignore_vcs;
40
41 # Ignore a specific named version control systems
42 $find->ignore_vcs($name);
43
44 # Ignore nothing (silent pass-through)
45 $find->ignore_vcs('');
46
47 The "ignore_vcs" method excludes the files for a named Version Control
48 System from your File::Find::Rule search.
49
50 If passed, the name of the version control system is case in-sensitive.
51 Names currently supported are 'cvs', 'svn', 'subversion', 'bzr', and
52 'bazaar'.
53
54 As a convenience for high-level APIs, if the VCS name is the defined
55 null string '' then the call will be treated as a nullop.
56
57 If no params at all are passed, this method will ignore all supported
58 version control systems. If ignoring every version control system,
59 please note that any legitimate directories called "CVS" or files
60 starting with .# will be ignored, which is not always desirable.
61
62 In widely-distributed code, you instead should try to detect the
63 specific version control system used and call ignore_vcs with the
64 specific name.
65
66 Passing "undef", or an unsupported name, will throw an exception.
67
68 ignore_cvs
69 The "ignore_cvs" method excluding all CVS directories from your
70 File::Find::Rule search.
71
72 It will also exclude all the files left around by CVS after an automated
73 merge that start with '.#' (dot-hash).
74
75 ignore_rcs
76 The "ignore_rcs" method excluding all RCS directories from your
77 File::Find::Rule search.
78
79 It will also exclude all the files used by RCS to store the revisions
80 (end with ',v').
81
82 ignore_svn
83 The "ignore_svn" method excluding all Subversion (".svn") directories
84 from your File::Find::Rule search.
85
86 ignore_bzr
87 The "ignore_bzr" method excluding all Bazaar (".bzr") directories from
88 your File::Find::Rule search.
89
90 ignore_git
91 The "ignore_git" method excluding all Git (".git") directories from your
92 File::Find::Rule search.
93
94 ignore_hg
95 The "ignore_hg" method excluding all Mercurial/Hg (".hg") directories
96 from your File::Find::Rule search.
97
98TO DO
99 - Add support for other version control systems.
100
101 - Add other useful VCS-related methods
102
103SUPPORT
104 Bugs should always be submitted via the CPAN bug tracker
105
106 <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=File-Find-Rule-VCS>
107
108 For other issues, contact the maintainer
109
110AUTHOR
111 Adam Kennedy <adamk@cpan.org>
112
113SEE ALSO
114 <http://ali.as/>, File::Find::Rule
115
116COPYRIGHT
117 Copyright 2005 - 2010 Adam Kennedy.
118
119 This program is free software; you can redistribute it and/or modify it
120 under the same terms as Perl itself.
121
122 The full text of the license can be found in the LICENSE file included
123 with this module.
124
125