diff --git a/bin/git-ctags b/bin/git-ctags --- a/bin/git-ctags +++ b/bin/git-ctags @@ -1,24 +1,6 @@ #!/usr/bin/env ruby - -# Meant for use as a git hook: -# CTAGS_HOOK=1 ~/.git_helpers/ctags &>/dev/null > .git/hooks/post-checkout + + git checkout some/branch + CTAGS_SKIP=1 git checkout some/branch + +=head1 DESCRIPTION + +Create a .tags file (target) using git's list of tracked files. If +C<.git/ctags.conf> exists in the repo it is passed to the ctags invocation. + +When run w/o env, immediately run ctags and replace tags file. + +When run with C, it's assumed to be a BG process and we want to +wait for git to be done applying changes no matter how the hook is triggered. +Wait five seconds, then bail if we can't get a lock on the tags file or if it's +been updated within the last minute. Only then, run ctags and replace the tags +file. + +=cut