NAME¶
Dist::Zilla::Plugin::Git::GatherDir - gather all tracked files in a Git working
directory
VERSION¶
version 2.025
DESCRIPTION¶
This is a trivial variant of the GatherDir plugin. It looks in the directory
named in the "root" attribute and adds all the Git tracked files it
finds there (as determined by "git ls-files"). If the root begins
with a tilde, the tilde is replaced with the current user's home directory
according to File::HomeDir.
Most users just need:
[Git::GatherDir]
...and this will pick up all tracked files from the current directory into the
dist. You can use it multiple times, as you can any other plugin, by providing
a plugin name. For example, if you want to include external specification
files into a subdir of your dist, you might write:
[Git::GatherDir]
; this plugin needs no config and gathers most of your files
[Git::GatherDir / SpecFiles]
; this plugin gets all tracked files in the root dir and adds them under ./spec
root = ~/projects/my-project/spec
prefix = spec
ATTRIBUTES¶
root¶
This is the directory in which to look for files. If not given, it defaults to
the dist root -- generally, the place where your
dist.ini or other
configuration file is located.
prefix¶
This parameter can be set to gather all the files found under a common
directory. See the description above for an example.
include_dotfiles¶
By default, files will not be included if they begin with a dot. This goes both
for files and for directories relative to the "root".
In almost all cases, the default value (false) is correct.
include_untracked¶
By default, files not tracked by Git will not be gathered. If this is set to a
true value, then untracked files not covered by a Git ignore pattern (i.e.
those reported by "git ls-files -o --exclude-standard") are also
gathered (and you'll probably want to use Git::Check to ensure all files are
checked in before a release).
"include_untracked" requires at least Git 1.5.4, but you should
probably not use it if your Git is older than 1.6.5.2. Versions before that
would not list files matched by your
.gitignore, even if they were
already being tracked by Git (which means they will not be gathered, even
though they should be). Whether that is a problem depends on the contents of
your exclude files (including the global one, if any).
follow_symlinks¶
Git::GatherDir does not honor GatherDir's follow_symlinks option. While the
attribute exists (because Git::GatherDir is a subclass), setting it has no
effect.
Directories that are symlinks will not be gathered. Instead, you'll get a
message saying "WARNING: %s is symlink to directory, skipping it".
To suppress the warning, add that directory to "exclude_filename" or
"exclude_match". To gather the files in the symlinked directory, use
a second instance of GatherDir or Git::GatherDir with appropriate
"root" and "prefix" options.
Files which are symlinks are always gathered.
exclude_filename¶
To exclude certain files from being gathered, use the
"exclude_filename" option. This may be used multiple times to
specify multiple files to exclude.
exclude_match¶
This is just like "exclude_filename" but provides a regular expression
pattern. Files matching the pattern are not gathered. This may be used
multiple times to specify multiple patterns to exclude.
AUTHOR¶
Jerome Quelin
COPYRIGHT AND LICENSE¶
This software is copyright (c) 2009 by Jerome Quelin.
This is free software; you can redistribute it and/or modify it under the same
terms as the Perl 5 programming language system itself.