「入門TortoiseHg+Mercurial」の紹介 #mercurialjp :

今頃「入門TortoiseHg+Mercurial」の紹介記事を書いてみます。盆前に書いて、Mercurial ユーザを増やすぜ! と思っていた時期が私にもありました。私も少し査読(というほどではないけど)させてもらいました。


主な対象読者は、

とのことです。自分は三つ目に該当しています。
CUI で色々とできた方がカッコいいじゃないと思っていましたが、この本を読んで GUI (TortoiseHg)の便利さに気づかされました。


目次は 入門TortoiseHg+Mercurial|書籍情報|秀和システム を見てもらうとして、11章までで基本的な使い方、12, 13章はお手軽だけど便利な使い方、それ以降は便利なんだろうけどかなり難しい使い方だと思います。15章はタイトルに入門とついている本の内容だとは思えません(笑)
入門書として基本は押さえられていますし、凝ったことをしてみようと思った時にも、その足がかりになる内容が収められていると思います。
運用方法については収録されていませんが、くだんの15章はこんな使い方もできるのかと運用を考える際の助けになるかもしれません。
入門TortoiseHg+Mercurialサポートページ に正誤情報もあります。


個人的に TrotoiseHg を是非使っていこうと思った部分は、ハンク単位のコミットとログの表示。
「ハンク単位のコミット」は、こんな感じのコミットができるのが便利。(この機能は出版前後に追加されたので書籍での紹介はされていません)

「ログの表示」は、検索に対してこんな感じで表示してくれて、当然ながらコマンドプロンプトのように流れていってしまわない。

検索条件については、12章で説明があるので例も確認しつつ、詳しくは hg help revsets を見るのが良いと思います。
事前に環境変数を変えておきましょう set LANGUAGE=ja 。


日本語ヘルプの充実っぷりは、Mercurial の美点の一つですね。
でも、hg help に何を渡すと説明が見られるのかっていうのがわからんのですよね。
とりあえず hg.1.html あたりで検索してみるのが良いかもしれません。
気になる単語を hg help -k KEYWORD の KEYWORD に入れてやると何かにヒットするかも。*1
あとは Twitter で #mercurialjp をつけてツイートしたら、なにがしかの反応が得られます。


ということで、Mercurial を使うなら TortoiseHg を使ってみるといいよ、手元に「入門TortoiseHg+Mercurial」があると捗るよというお話でした。
ちなみに自分は Git も使ってみたけれどコマンドになじめず Mercurial に流れた口です。

入門TortoiseHg+Mercurial

入門TortoiseHg+Mercurial

*1:コメントをもらって追記

Python 2.7.5 インストール済み環境に Python 3.3.2 をインストールしたらはまった

「ファイル名を指定して実行」から python を実行すると、2.7.5 のインタプリタが起動するのに、コマンドプロンプトから python を実行すると 3.3.2 が起動する。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe に 2.7.5 の python.exe のパスが入っているかららしい。
消してやったらどちらでも 3.3.2 が起動するようになった。
くそ~。

jvgrep ビルド

install go

http://golang.jp/
http://code.google.com/p/go/downloads/list
download http://code.google.com/p/go/downloads/detail?name=go1.1.1.windows-amd64.msi&can=2&q=

環境変数

GOROOT, PATH はインストーラで追加してくれた。
GOPATH=%APPDATA%\go
go get でパッケージを放り込む先として GOPATH が必要みたい。

jvgrep build

git clone git://github.com/mattn/jvgrep.git
cd jvgrep
go get code.google.com/p/mahonia
go build -x jvgrep.go

3.3 MB くらいになった。
version 0.7 は 500 kB くらいだから build の仕方が違うのかな?

ag のビルド2:

ag のビルド - hokorobiの日記
の続編。
最近のバージョンは lzma を使うようになったのでライブラリを追加。

mingw-get install mingw32-liblzma

なぜか src/decompress.c の #ifdef HAVE_LZMA_H が効いているので消してしまう(暴挙)。

-#ifdef HAVE_LZMA_H
 #include <lzma.h>
-#endif

ビルドした ag

#PPx ウィンドウ最大化の疑似トグル

二画面ウィンドウを使っていて Z で一画面化、最大化のトグルをしたいなと思っている。
今は、新しい一画面ウィンドウを新しく開いてやっているが、Z で閉じるというようにはしていなかった。
思いついたので実装。

KC_main	= {	; PPcメイン窓
Z	,*ifmatch yes,%si"ismax" %: %K"@Q" %: *stop
	*ppc -max -single "%1" -k *viewstyle 幅広 %%: *string i,ismax=yes
}

こんな風にも書いてみたけれど駄目だった。

Z	,*ppc -max -single "%1" -k *viewstyle 幅広 %%: *setcust KC_main:Z,*setcust KC_main:Z,*ppc -max -single "%%1" -k *viewstyle 幅広 %%%: *setcust KC_main:Z=@Q

#PPx 書庫ファイルの展開用スクリプト

書庫の展開を 7zG に変えてみた #PPx から変更。

  • 7zG を使うと startw を使っても一瞬フォーカスが移るのが嫌だったので 7z へ。
  • 展開中に別のファイルを展開しようとしたらキューイングするようにした。
  • *logwindow on を使ってみてもログウィンドウが表示されなかったので*logwindow "メッセージ" を使っている。*logwindow on も動いていた気がしたんだけどな……。

unite-everything インストール

インストールしたときの覚書。

  • NeoBundleLazy 'sgur/unite-everything' だと動かないみたい。設定が悪いのかな。NeoBundle 'sgur/unite-everything' にした。
  • es.exe をインストールし忘れていたので動いていなかった。
  • es.exe をインストールしても動いてくれなかった。everything.exe が管理者権限で動いていると駄目みたい。そもそも 1.2 は通常、管理者権限じゃないと動かないのでは?
  • everything 1.3.2.649b をインストール。everything -install-service でサービスをインストールしてから everything.exe を起動。これなら管理者権限でなくても OK。
  • 管理者権限で動かしている Autohotkey から Everything を起動するようにしていたので、これをはずす。bbLean の bbKeys で Everything 起動用のショートカットを指定。