Mercurial では、MQ でパッチを適用中の場合、hg push や hg pull を実行しようとするとエラーになる。しかし Git では、StGit でパッチを適用中でも、git push や git pull ができてしまう。特に、git push を実行してしまうと、StGit の管理情報が一緒に push されてしまい、非常に問題である。
git hooks を使って、パッチ適用中の git push/pull を禁止できないかと調べてみたところ、Git 1.8.2 辺りから pre-push というフックがあることが分かった。とりあえず、簡単なフックを書いてみた。
これを、.git/hooks/pre-push という名前で置いておけばよい。git pull に関しては、適当なフックが見当たらず、断念。
Vim で matchit.vim を使うと (, ) などが % で移動できなくなる問題は、自分も以前から気になっていた。しかも、移動できないだけでなく % を押したときになかなか応答が変えてこないことがあるのも気になっていた。b:match_words を設定すればよいということが分かり、試してみることにした。
どのような filetype でも、素の % で使えるはずの (,), {,}, [,] は有効にしておきたかったので、.vimrc に次のような設定を書くことにした。
function! s:set_match_words() " Enable these pairs for all file types if exists('b:match_words') if b:match_words !~ '(:)' let b:match_words .= ',(:)' endif if b:match_words !~ '{:}' let b:match_words .= ',{:}' endif if b:match_words !~ '\[:\]' let b:match_words .= ',[:]' endif else let b:match_words = '(:),{:},[:]' endif " Full width characters let b:match_words .= ',(:),「:」' endfunction augroup matchit-setting autocmd! autocmd BufEnter * call s:set_match_words() augroup END
% を押したときになかなか応答が返ってこない問題も直ったような気がする。
Coverity という静的解析ツールでは大手の会社が、オープンソース向けに Coverity Scan というサービスを無料で提供している。Coverity Scan と GitHub、Travis CI が連携できるということを最近知り、試してみることにした。
基本的には、以下のどちらかの説明に従って設定を行えばよい。(一方が Coverity Scan による説明で、もう一方が Travis CI による説明だが、内容はほとんど同じ。)
大まかには、以下の通り。
鬼雲の設定は、このようになった。静的解析に不要な設定がいくつかあったため、それらはコメントアウトしてある。
参考情報をいくつか。