Git Ruby Combo - hooks and preventing checkins
Here are two example from the article below Slaying dragons with git, bash, and ruby a on pre-commit hook for git.
First setup your hook that will run before you commit.
Second test out a test for ruby debugger code left, when it should be removed
http://rubypond.com/blog/slaying-dragons-git-bash-ruby
First setup your hook that will run before you commit.
chmod +x .git/hooks/pre-commit
Second test out a test for ruby debugger code left, when it should be removed
#!/usr/bin/env ruby
if `grep -rls "require 'ruby-debug'; debugger" *` != ""
puts "You twit, you've left a debugger in!"
exit(1)
end
Now whenever I try to commit code, it will first run a recursive grep
over the codebase to ensure I’ve not left my debug statement in (I can be sure it always looks like “require ‘ruby-debug’; debugger” as I have it bound to a shortcut).
Another example included
Stopping an incomplete merge
There’s been occasions where a particularly large rebase or merge creates a lot of conflicts in a file, and one of those has snuck through and rather than being fixed the inline diff has actually been committed. Time to add another check topre-commit
, usingegrep
to scan recursively for the 3 different line markers that git uses to indicate a merge conflict:
#!/usr/bin/env ruby
if `egrep -rls "^<<<<<<< |^>>>>>>> |^=======$" *`
puts "Dang, looks like you screwed the merge!"
exit(1)
end
http://rubypond.com/blog/slaying-dragons-git-bash-ruby
Comments