Contents
概要
公式サイト
Mercurial binary packages for Windows and Mac OS X
http://www.selenic.com/mercurial/release/
http://www.selenic.com/mercurial/wiki/index.cgi/BinaryPackages
関連サイト
TracMercurial - The Trac Project - Trac
利用プロジェクト
OpenSolaris Source Code Management at OpenSolaris.org:OpenSolarisで利用
インストール
http://www.selenic.com/mercurial/release/
tar xvfz mercurial-1.2.1.tar.gz cd mercurial-1.2.1 sudo python setup.py install
yumなら以下
yum install -y mercurial
設定
最低限の設定はだいたい以下です
コミット者情報
$HOME/.hgrc にコミット時の名前とメルアドを設定します
[ui] username = yourname <sample@sample.com>
無視ファイル設定
$HOME/.hgignoreに無視ファイルを設定します
syntax: glob *~ *.elc *.pyc *.class .svn .semantic.cache .DS_Store TAGS
$Id$ とかを展開する
cvsとかsvn propset とか利用して $Id$ 等のプロパティを利用している場合hgでも利用したいかもしれない。
hgextフォルダ以下にkeyword.pyが必要。
.hgrc に設定する。
全部有効にする場合は以下みたいな設定になる。
[extensions] hgext.keyword = [keyword] * =
設定したら
hg kwexpand ファイル名
として展開を指定してあげないと有効にならない。
詳細は
http://www.selenic.com/mercurial/wiki/index.cgi/KeywordPlan
http://www.selenic.com/mercurial/wiki/index.cgi/KeywordExtension
に記述がある。
その他
[extensions] color= mq=
http://mercurial.selenic.com/wiki/ColorExtension
http://mercurial.selenic.com/wiki/MqExtension
コマンド
hg help コマンドのようにすると英語だけど説明がでます。
レポジトリ
hg clone path |
リモートよりコピー |
hg init |
初期化 |
hg paths |
push、pull先確認 |
hg push |
パスのレボジトリに反映 |
hg pull |
パスのレボジトリより取得 |
情報
hg status |
ステータス |
hg diff file.txt |
比較 |
hg log |
履歴 |
hg annotate file.txt |
どのリビジョンでどこが変更されたか |
hg tip |
tipリビジョン |
hg parents |
いまいじってる物の親の情報 |
hg heads |
レポジトリ先端情報 |
コミット
hg add file.txt |
追加 |
hg ci -m "コメント" file.txt |
コミット |
hg remove file.txt |
削除 |
hg update |
更新 |
hg mv form to |
名前変更(copy+removeになる) |
hg revert |
先端に戻す(ローカルは削除される) |
hg revert -rREV file.txt |
特定リビジョンを取得 |
hg rollback |
最後のci,pull等を取り消し |
パッチ
hg import patch |
パッチの適用 |
hg export |
パッチ作成 |
hg incoming |
pullされるファイル |
hg outgoing |
pushされるファイル |
hg fetch |
pull+update+merge |
タグ・ブランチ
hg copy from to |
コピーする |
hg tags |
タグ一覧 |
hg tag タグ名 |
タグ付与 |
branchの考え方とかは以下が詳しい Mercurial 勉強中 (6) - named branch と update -C - daily dayflower
hook
コミットした場合等になんらかの動作を連携させたい場合「hook」を利用します。
詳細は http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html に記述があります。
.hg/hgrc
に [hooks] を追加して処理を記述すれば良いことになります。
MQ
他のSCMからの移行
hg convert を利用します。
.hgrc に以下を追加
[extensions] hgext.convert=
Subversionからの移行
レポジトリをチェックアウトしながら変換します。変換前に変換対象の物が全部コミットされている事を確認した方が良いでしょう。
python bindingsが必要です。
http://www.open.collab.net/downloads/community/ からバイナリを取得してインストールするのが楽です。
sudo echo /opt/subversion/lib/svn-python >/Library/Python/2.5/site-packages/svn-python.pth とか sudo echo /opt/subversion/lib/svn-python >/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/svn-python.pth
python bindingsのを自力でインストールする場合は http://trac.edgewall.org/wiki/TracOnOsxNoFink が参考になります。
hg convert -s svn http://exsample.com/svn/trunk/ hoge とか hg convert -s svn file://exsample/svn/trunk/ hoge cd hoge hg update
ログが多いと結構時間がかかります
Emacs
aHg
aHg: An Emacs front-end for the Mercurial SCM
微妙に変な所があるけれどシンプル
mvc.el
インターフェースが独特だったり、colorの変更に追随していなかったりしている
DVC.el
DVC: Distributed Version Control for Emacs
DVC - Distributed Version Control for Emacs
初期設定だと微妙だったのでいろいろ変更すると良いのかもしれない
Trac連携
CentOSにTrac+TracMercurialをインストールする - Knowledge Database IT
Eclipse
Mac で SSH認証が上手く通らない場合は以下を利用する
Josh (Formerly) In Antarctica: Mercurial Push from IntelliJ
XREAとかSakraとかにインストール
www.horaguchi.net - tako3 のソースは今まで、Free Subversion Hosting の Unfuddle に上げてたんだけど、
python setup.py install --home=~
共有サイト
Mercurial hosting — bitbucket.org:無償
参考サイト
steps to phantasien t(2007-05-19) Mercurial で手軽な共有レポジトリをつくろう
XREA FREE で Mercurial を - miau's blog?
XREAでMercurialをインストール | Sarabande
JapaneseCGI Install - Mercurial
Greenbear Laboratory - Mercurialを使ってみよう