Stops Guard triggering plugins whenever you change branches.
Add this line to your application's Gemfile:
gem 'guard-git'
And then execute:
$ bundle
Or install it yourself as:
$ gem install guard-git
There are two ways to use this gem:
This is the simplest way to get started and the default way to use this gem.
Add the following to the top of your Guardfile
:
require `guard/git`
Guard::Git.enable!
All of the calls to watch
will now only be triggered if the file changes on
disk and one of the follwing is true:
- The file has changed since
HEAD
- The file is untracked
- The file is gitignored
If you only want to use git-aware matchers for a subset of watch
calls or
you'd prefer not to monkeypatch Guard, you can use the
Guard::Git::ChangedFilesMatcher
instead.
For example, if you had the follwing Guardfile
:
guard :shell do
watch(/.*/) do
# do something
end
end
you can make that single watch
git-aware by changing the file to:
require `guard/git`
guard :shell do
watch(Guard::Git::ChangedFilesMatcher.new(/.*/)) do
# do something
end
end
After checking out the repo, run bin/setup
to install dependencies.
You can also run bin/console
for an interactive prompt that will allow you
to experiment.
To install this gem onto your local machine, run bundle exec rake install
.
To properly end-to-end test this gem it's necessary to have a process running
guard
to verify which file changes cause plugins to be triggered. guard
needs to run in a tty rather than a background process. Therefore, before
running any specs, run bin/setup_integration_test
in a terminal to create a
test guard process.
Once you have the test guard
process set up, run bundle exec rake spec
to run all the tests once, or bin/guard
to start a guard process that will
run relevant tests and linting on any file change.
You may need to restart bin/setup_integration_test
between some test runs
during development as the test guard
process only loads the gem at the start
rather than before each test (it require
s the files in
the Guardfile
).
To release a new version, update the version number in version.rb
, and then
run bundle exec rake release
, which will create a git tag for the version,
push git commits and tags, and push the .gem
file to
rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/dp28/guard-git.
The gem is available as open source under the terms of the MIT License.