ack now runs on a standard Perl 5.8.8 install with no module updates.
The minimum Perl requirement for ack is now explicitly 5.8.8. Anything
before 5.8.8 will not work, and we've added checks. Thanks, Michael
McClimon.
[FIXES]
ack was colorizing captured groups even if --nocolor was given.
Thanks, Dale Sedivic.
[ENHANCEMENTS]
The --shell file type now recognizes the fish shell.
We now ignore minified CSS or Javascript, in the form of either *.css.min
or *.min.css, or *.js.min or *.min.js.
Added support for the Dart language.
ack 2.02 was much slower than ack 1.96, up to 8x slower in some cases.
These slowdowns have been mostly eliminated, and in some cases ack 2.04
is now faster than 1.96.
The firstlinematch file type detection option now only searches the
first 250 characters of the first line of the file. Otherwise, ack
would read entire text files that were only one line long, such as
minified JavaScript, and that would be slow. Thanks, Michael
McClimon.
[DOCUMENTATION]
Many clarifications and cleanups. Thanks, Michael McClimon.
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
2.00 Wed Apr 17 22:49:41 CDT 2013
====================================
The first version of ack 2.0.
# Incompatibilities with ack 1.x
ack 2 makes some big changes in its behaviors that could trip up
users who are used to the idiosyncracies of ack 1.x. These changes
could affect your searching happiness, so please read them.
* ack's default behavior is now to search all files that it identifies
as being text. ack 1.x would only search files that were of a file
type that it recognized.
* Removed the `-a` and `-u` options since the default is to search
all text files.
* Removed the `--binary` option. ack 2.0 will not find and search
through binary files.
* Removed the `--skipped` option.
* Removed the `--invert-file-match` option. `-v` now works with
`-g`. To list files that do not match `/foo/`
ack -g foo -v
* `-g` now obeys all regex options: `-i`, `-w`, `-Q`, `-v`
* Removed the `-G` switch, because it was too confusing to have two
regexes specified on the command line. Now you use the `-x` switch
to pipe filenames from one `ack` invocation into another.
To search files with filename matching "sales" for the string "foo":
ack -g sales | ack -x foo
# New features in ack 2.0
ack 2.0 will:
* By default searches all text files, as identified by Perl's `-T` operator
* We will no longer have a `-a` switch.
* improved flexibility in defining filetype selectors
* name equality ($filename eq 'Makefile')
* glob-style matching (`*.pl` identifies a Perl file)
* regex-style matching (`/\.pl$/i` identifies a Perl file)
* shebang-line matching (shebang line matching `/usr/bin/perl/`
identifies a Perl file)
* support for multiple ackrc files
* global ackrc (/etc/ackrc)
* https://github.com/petdance/ack/issues/#issue/79
* user-specific ackrc (~/.ackrc)
* per-project ackrc files (~/myproject/.ackrc)
* you can use --dump to figure which options are set where
* all inclusion/exclusion rules will be in the ackrc files
* ack 2.0 has a set of definitions for filetypes, directories to
include or exclude, etc, *but* these are only included so you don't
need to ship an ackrc file to a new machine. You may tell ack to
disregard these defaults if you like.
* In addition to the classic `--thpppt` option to draw Bill the
Cat, `ack --bar` will draw (of course) Admiral Ackbar.
[ENHANCEMENTS]
* Now ignores minified Javascript files. Anything matching -min.js
or .min.js is ignored.
* Added Groovy support (--groovy).
* Added .pm6 as a --perl extension.
* Lua can now get detected from the shebang line. Thanks, Matthew Wild.
* Added support for version numbers in executables in shebang
detection. Now if your Perl program's shebang refers to
/usr/local/bin/perl-5.14.1, ack will find it.
1.94 Mon Nov 15 22:38:48 CST 2010
[ENHANCEMENTS]
Added support for Go and Delphi.
Ignores Monotone's _MTN directories.
Added .xsl to the list of --xml files.
1.93_02 Wed Oct 6 21:39:58 CDT 2010
[FIXES]
--man and --version now return with an exit code of 0. They
used to exit with a 1. Thanks to Bo Borgerson.
[ENHANCEMENTS]
The --ignore-dir option now can ignore entire paths relative
to your current directory. Thanks to Nick Hooey. For example:
ack --ignore-dir=t/subsystem/test-data
Added --invert-file-match switch to negate the sense of the
-g/-G switches. Thanks, Lars Dieckow.
1.93_01 Sun Sep 5 16:00:29 CDT 2010
[FILE TYPE UPDATES]
Added --verilog, --vhdl and --clojure.
Files that match *.mk and *.mak as well as GNUmakefile are now included in
the ack filetype 'make' (issue 88).
Added RSpec's .spec type to the --ruby list.
[ENHANCEMENTS]
Updated the README to Markdown format. Thanks to Mark Szymanski
for the idea.
Added docs for -r, -R, --recurse options.
Added new switch --color-lineno and environment variable ACK_COLOR_LINENO,
which allow setting the line number color. (Marq Schneider)
Added option --show-types to output the types that ack considers
a file to have. (Torsten Blix)
'ack --count --no-filename regex' doesn't output a list of numbers but a
sum of all occurences. This is NOT what grep does but is the more sensible
behavior.
[FIXES]
Fixed ack misbehavior when using --match or not specifying a regex:
ack --match Sue
cat foo | ack --perl
Fixed issue 74: analog to grep, 'ack --count regex file' now
only outputs the number of found matches, if only one file is
given.
Fixed issue 76: Giving both --line and a regex (with --match)
now leads to an error. The same is true for -f or -g in conjunction
with --match. (Torsten Blix)
Fixed issue 80: Piping into ack --count now works as expected.
ack always returned 0 when piped into, no matter how many matches
where found. (Torsten Blix)
Fixed issue 81: .ackrc now ignores leading/trailing whitespace.
(Torsten Blix)
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
1.92 Fri Dec 11 11:47:56 CST 2009
ack is now hosted at github: http://github.com/petdance/ack
[FIXES]
The --pager flag would not work. Now it does. Thanks Packy
Anderson.
File matching for Emacs work files that match #*# was wrong.
It was checking the entire path, not just the basename. This
is fixed. (http://github.com/petdance/ack/issues/closed/#issue/101)
Fixed URLs that pointed to old Google Code.
[ENHANCEMENTS]
Added Scala support. Thanks to Dan Sully.
Added .phtml as an extension for PHP.
Using -f or -g now return a proper error code. If files are
found, ack returns 0. If none are found, ack returns 1. This
is a change in the specification, but the code didn't match the
specfication anyway.
No man pages are created for any of the .pm files any more.
Collection.
Ack is designed as a replacement for 99% of the uses of grep. Ack
is intelligent about the files it searches and the directories trees
it should not descend into.