まえがき
ローカル作業のバージョン管理は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 で正規表現も使える。