Mercurialメモ

まえがき

ローカル作業のバージョン管理はMercurialでやっている。
分散型バージョン管理システムの一つである。世間ではGitが有名。

参考: 公式サイト

インストール

macportsでパッケージ管理しているので、それ経由でインストールする。

$ sudo port install mercurial

設定ファイル(.hgrc)編集

最低限ユーザ情報を設定しないとコミットとかできないので、設定する。

$ hg config -e

vi が起動するので、内容を編集する。
記述例が記載されているので真似して username を設定する。
ついでに vi が嫌なら editor でエディタも設定する。例えば以下。

[ui]
username = user <mail@example.com>
editor = code

ヘルプ

man または help で確認できる。

$ man hg
$ man hgrc
$ man hgignore

hg help で全体のヘルプを見る。
hg help xxx でコマンドのヘルプを見る。

$ hg help
$ hg help config

あるいは、hg serve でローカルサーバ立ち上げるとブラウザ経由でヘルプを見ることができる。
これが一番見やすいかな。

$ hg serve

最低限の操作

ローカルで使う分だけ。
基本的に、名前を指定すると指定されたファイルだけが対象となる。
無指定の場合は全てが対象となる。

リポジトリを作成する

xxxx というリポジトリを作成する。

$ hg init xxxx

ファイルを管理対象とする

$ hg add

ファイルを管理対象から外す

$ hg remove

管理対象ファイルの名前を変更する

$ hg rename src dst

hg コマンド経由しないで名前変更すると、ファイルが不明みたいなエラーになるので気をつける。

ファイル操作状況を確認する

$ hg status

変更内容を確認する

$ hg diff xxxx

コミットする

$ hg commit -m "message"

-m オプションでコミットメッセージ指定。なしだと、エディタが立ち上がる。
add や remove したファイルはコミットして初めて管理対象に反映される。

内容の復旧

$ hg revert -r REV

リビジョンREVの内容を復帰する。
REVオプションなしだと最後にコミットした内容に戻る。

履歴を表示

$ hg log

タグ付ける

$ hg tag xxxx

タグ名は、REVオプションに使える。
hg tags で一覧を表示。
tip というのは最新の、を表すタグ。

スナップショットを取る

$ hg archive -r REV dst.zip -X ".hg*"

リビジョンREV一式を圧縮したものを出力する。
上の例では、.hgで始まるファイル(mercurial管理ファイル)は除かれる。
REVオプションなしだと最後にコミットした内容を指定。

.hgignore で管理対象からはずす

リポジトリ内に .hgignore ファイルに記載のあるファイルは、add されても管理対象にならない。
例えば、python .pyc ファイルは含めない場合は以下。

syntax: glob
*.pyc

syntax: re で正規表現も使える。


See also