タグ

ブックマーク / d.akinori.org (2)

  • Gitを使っていて zsh: no matches found: HEAD^ などと言われない方法 - 工夫と趣向と分別と。

    Gitを使っていると、今のcommitなし!とgit reset --soft HEAD^したり、abc1234以降のコミットをパッチ化したい!とgit format-patch abc1234^したくなることがよくあるわけだが、この^はzshの拡張グロブ有効化時(setopt extended_glob)はメタ文字として働くため、そのまま入力すると標記のエラーで怒られてしまう。 いちいちエスケープするのは面倒だと思うのだが、ぐぐってみても正面から対処している人があまりいないようなので紹介しておくと、拙作のgit-escape-magicを使えば良い。リンク先のドキュメントの通り、ふつうに入力するだけで、いい感じに文脈を見て自動エスケープしてくれる。 このように、zle(zshラインエディタ)をいじると結構おもしろいことができる。 たとえば、3つ上のディレクトリを参照するために../../

    n2s
    n2s 2012/01/24
  • GNU diff(1)のラッパー「di」 - 工夫と趣向と分別と。

    WEB+DB PRESS Vol.46で取り上げたGNU diff(1)のラッパー、「di」をGitHubに置いた。GNU diffには多彩なオプションが用意されているが、POSIXなどの規格の縛りもありデフォルト設定が日常利用には不便なものになっている。いちいちdiff -Nrpu dir1 dir2なんて面倒くさい。以下の特長を持つラッパーdiで楽をしよう。 -U3 -N -p -dがデフォルト。 出力が色付き。ページャが起動される。(Gitのまね) バックアップファイルやオブジェクトファイル、.git, .hg, .svn, CVSなどのディレクトリを無視する。 RCS/CVSキーワードタグの違いを無視する。 ディレクトリを与えれば自動で再帰比較。 上記を含むデフォルトのオプション設定は環境変数で変更可能。 GNU diffがサポートしないオプションの組み合わせもサポート。 「ali

    n2s
    n2s 2010/03/12
  • 1