0

文字単位でgit diff (2)

Gitをhomebrewで2.3.6にアップデートしたら、行内の文字単位のdiffが完璧に出るようになってた。
以前は一応見れたけど3割ぐらい文字化けしてた → 文字単位でgit diff


1行が長い文章を書いている時は、変更された文字単位で背景色がつくとどこが変わったかわかりやすい


設定


diff-highlightにパスを通す
% brew install git
% ln -s /usr/local/Cellar/git/2.3.6/share/git-core/contrib/diff-highlight/diff-highlight /usr/local/bin/diff-highlight

~/.gitconfig でpagerを設定
[color]
ui = auto
[pager]
log = diff-highlight | less
show = diff-highlight | less
diff = diff-highlight | less
これでgit diffに色がつき、さらに文字単位でも差分が見れる。

0

文字単位でgit diff

行単位ではなく文字単位でdiffを見たい。

–word-diff-regexオプションを使う

英語などの空白文字で単語が分けられる言語は、git diff –word-diffを使えばいい。

日本語なら、git diffに–word-diff-regexオプションをつければいい。

% git diff --word-diff-regex="\w+"

こうすると日本語でも化けずに比較できた。でも、たまに差分が表示されない行がでる。


毎回–word-diff-regexオプションを付けるのが面倒なので、適当なパスの通っている場所にgit-chardiffというシェルスクリプトを作って実行権限付けた。

~/bin/git-chardiff
#!/bin/sh
git diff --word-diff-regex="\w+" $@

gitは頭に「git-」と付く実行可能コマンドをサブコマンドとして使ってくれるので、これで


% git chardiff

で文字単位のdiffが見れる。


なおdocdiffを使う方法もあるけどRuby2.0だと動かなかった。


diff-highlightを使う

参考:Git の diff を美しく表示するために必要なたった 1 つの設定 #git – 詩と創作・思索のひろば (Poetry, Writing and Contemplation)

これは通常のgit diffの行単位のdiffに、文字単位の変更もハイライトするもの。
でもこっちは日本語が化ける部分がある。

homebrewでgitを入れて、contrib/diff-highlightを使う
% brew install git
% ln -s /usr/local/Cellar/git/1.9.1/share/git-core/contrib/diff-highlight/diff-highlight /usr/local/bin/diff-highlight


~/.gitconfig に追加
[color]
ui = auto
[pager]
log = diff-highlight | less
show = diff-highlight | less
diff = diff-highlight | less

ふつうに
% git diff
すると文字単位の変更がハイライトされる

0

GitHubのbranch/TAG間の比較のURL

こういうdiffとか見れるやつ

ブランチ間とか
https://github.com/shokai/irkit-device/compare/master…tempe_sensor

release tagとか
https://github.com/irkit/device/compare/v1.3.5…v2.0.1

とても便利だけどプルリク画面からしか見れない、表から辿りつけない画面な気がする。

よくURL忘れてたどり着けなくなるので、どこクリックしたらいいとか知ってる人は教えてほしい

0

git commitと同時に写真を撮ってtweetする

昨日YAPC終わってから研究室の合宿に合流して、酒飲んでたらできてた

https://github.com/shokai/twgit

git cloneしてパスの通っている場所に置いておく。
READMEに従ってimagesnapとtwをインストールする。


ふつうのgit commmitはこうだけど

git commit -m 'implemented great new features'


git commitしつつ、写真を撮ってtweetするのはこうやる
twgit commit -m 'implemented great new features'
あたまにtwをつけるだけでいい。
commit以外のgitコマンドも動く。

会心のreleaseブランチをpushする時などに記念撮影するといいんじゃないでしょうか?

0

GitHubのstreakが途切れた (69日)

連続してgithub上で活動しているとstreakが累計される。
別にお金がもらえるとかではなく、ただこれだけ活動していますよという指標なだけ。

40日ぐらいを超えたあたりから、なんだか途切れさせたくなくなる。
日々ちまちまとしたメンテをしていると途切れにくい。
1から新しい物を作り始めると、まだ動いていない物をgit commitする習慣が無いので途切れてしまう。


ちなみに日本では16時を境に次の日になる。