SYNOPSIS
use File::Find::Rule ();
use File::Find::Rule::VCS ();
# Find all files smaller than 10k, ignoring version control files
my @files = File::Find::Rule->ignore_vcs
->file
->size('<10Ki')
->in( $dir );
DESCRIPTION
Many tools need to be equally useful both on ordinary files, and on code that has been checked out from revision control systems.File::Find::Rule::VCS provides quick and convenient methods to exclude the version control directories of several major Version Control Systems (currently CVS, subversion, and Bazaar).
File::Find::Rule::VCS implements methods to ignore the following:
- CVS
- Subversion
- Bazaar
In addition, the following version control systems do not create directories in the checkout and do not require the use of any ignore methods
- SVK
- Git
METHODS
ignore_vcs
# Ignore all common version control systems $find->ignore_vcs; # Ignore a specific named version control systems $find->ignore_vcs($name); # Ignore nothing (silent pass-through) $find->ignore_vcs('');
The "ignore_vcs" method excludes the files for a named Version Control System from your File::Find::Rule search.
If passed, the name of the version control system is case in-sensitive. Names currently supported are 'cvs', 'svn', 'subversion', 'bzr', and 'bazaar'.
As a convenience for high-level APIs, if the VCS name is the defined null string '' then the call will be treated as a nullop.
If no params at all are passed, this method will ignore all supported version control systems. If ignoring every version control system, please note that any legitimate directories called ``CVS'' or files starting with .# will be ignored, which is not always desirable.
In widely-distributed code, you instead should try to detect the specific version control system used and call ignore_vcs with the specific name.
Passing "undef", or an unsupported name, will throw an exception.
ignore_cvs
The "ignore_cvs" method excluding all CVS directories from your File::Find::Rule search.It will also exclude all the files left around by CVS after an automated merge that start with '.#' (dot-hash).
ignore_rcs
The "ignore_rcs" method excluding all RCS directories from your File::Find::Rule search.It will also exclude all the files used by RCS to store the revisions (end with ',v').
ignore_svn
The "ignore_svn" method excluding all Subversion (".svn") directories from your File::Find::Rule search.ignore_bzr
The "ignore_bzr" method excluding all Bazaar (".bzr") directories from your File::Find::Rule search.ignore_git
The "ignore_git" method excluding all Git (".git") directories from your File::Find::Rule search.ignore_hg
The "ignore_hg" method excluding all Mercurial/Hg (".hg") directories from your File::Find::Rule search.TO DO
- Add support for other version control systems.- Add other useful VCS-related methods
SUPPORT
Bugs should always be submitted via the CPAN bug tracker<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=File-Find-Rule-VCS>
For other issues, contact the maintainer
AUTHOR
Adam Kennedy <[email protected]>COPYRIGHT
Copyright 2005 - 2010 Adam Kennedy.This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.