ハングアップの日々

2014年 8月分

2014/08/26

memo

2014/08/25

StGit でパッチ適用中に git push を禁止する

 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

 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

 % を押したときになかなか応答が返ってこない問題も直ったような気がする。

memo

2014/08/24

memo

2014/08/19

memo

2014/08/16

memo

2014/08/15

Coverity Scan

 Coverity という静的解析ツールでは大手の会社が、オープンソース向けに Coverity Scan というサービスを無料で提供している。Coverity Scan と GitHub、Travis CI が連携できるということを最近知り、試してみることにした。
 基本的には、以下のどちらかの説明に従って設定を行えばよい。(一方が Coverity Scan による説明で、もう一方が Travis CI による説明だが、内容はほとんど同じ。)

 大まかには、以下の通り。

  1. GitHub アカウントで Coverity Scan にサインイン。
  2. GitHub のプロジェクトを Coverity Scan に追加する。
  3. Submit Build ボタンを押すとページが変わり、Configure Travis CI タブが現れるので、それをクリック。
  4. Travis CI のサンプル設定が表示されるので、それを必要に応じて修正した上で、.travis.yml に貼り付け。
  5. プロジェクトに Scan を掛けるための専用ブランチ (coverity_scan が推奨) を用意して、.travis.yml を push。

 鬼雲の設定は、このようになった。静的解析に不要な設定がいくつかあったため、それらはコメントアウトしてある。

 参考情報をいくつか。

memo

2014/08/14

memo

2014/08/13

memo

2014/08/12

memo

2014/08/09

memo

2014/08/07

memo

2014/08/06

memo

2014/08/05

memo

2014/08/04

memo

2014/08/03

memo

2014/08/01

memo


Copyright (C) 2014 K.Takata