mercurial

いつの間にかhg recordのハンクが最少単位になっていた

いつの間にか(手元のMercurial1.9ではすでにそうなっていた)hg recordでコミットできるハンクが最少単位になった。 最少単位っていうのは、連続して変更された行をまとめて一つのハンクとしている。 たとえば、次のコードを、 class Hoge def initialize(a, …

Mercurialのチェンジセットを指定するrevsetsについて

この記事は、Mercurial Advent Calendar 2011の2日目の記事です。 revsetsとは? 築いてきた歴史から特定のチェンジセットを効率よく検索するための、Mercurialのサブセット言語だ。 Mercurialでは、 $ hg log -r 1000のlogコマンドように'-r'(--revision)オ…

Mercurialで築いたコミットを並び替える

DVCS(GitやMercurialなど)の利点は、コードを書き散らかしたあとにとりあえずコミットして、あとから論理的な歴史になるようにコミットを並び変えたり、コミットをまとめたりできることだ。 Mercurialでは、これらの歴史の改変はMQ拡張を使って実現できる。 …

Mercurialをソースコードからインストールする

基本的にterminal上で使うアプリケーション(エディタ、言語処理系、細かなツール等)は、ソースコードからビルドして使うようにしている。 複数の版を使えるようにしたいのもあるし、なによりビルドすることが好きだからだ。 Mercurialをビルドする前に、docu…

Mercurialでdiffしたときに行を折り返して表示する

.hgrcのpagerでlessのオプションに'-r'を加えるだけでよい。 [pager] pager = LESS='FSRX' less -r と、最初はこれで大丈夫だと思ったのだけど、表示が乱れてしまうので、 pager = LESS=-R less こっちの設定のほうがうまくいく。

Mercurialリポジトリでリポジトリのホームに戻るzsh関数を作った

id:hitode909さんが作った、Gitのリポジトリのトップレベルにcdするコマンドのコマンドが便利だったので、Mercurialでも同じようなzsh関数を作成してみた。 function hu() { local cdup=`hg showconfig bundle.mainreporoot` if [ $# = 1 ]; then cdup+="/$1…

Mecurialのブランチ名を変更する

MercurialはGitと異なり一度作成したブランチを削除できない仕様だ。そのため、ブランチ名を変更することが基本的に許されていない。 だが、MQ拡張を使うとブランチ名を変更できる。 # pushしていなくて、他のブランチからの干渉(マージ等)がない場合に限る …

MercurialのPager Extensionを設定して快適にコミットログを追いかける

Git使いであれば、diffやlogの差分はデフォルトでpagerが設定されており、コミットログを追いかけやすい設定になっていることはご存知だろう。 Mercurialでは、diffやlogの出力は、pager経由ではなくすべて出力される設定になっている。 このままだとlogを追…