[HOME]: [Mac OS X]: [MacPython]: [Emacs]: [生存報告記]: [MacEmacs JP Project]: [NTEmacs JP Project]:

概要

公式サイト

Mercurial: shortlog

Mercurial Wiki

Mercurial binary packages for Windows and Mac OS X

http://www.selenic.com/mercurial/release/

http://www.selenic.com/mercurial/wiki/index.cgi/BinaryPackages

関連サイト

TortoiseHg @ SourceForge

TracMercurial - The Trac Project - Trac

JapaneseTutorial - Mercurial

利用プロジェクト

OpenSolaris Source Code Management at OpenSolaris.orgOpenSolarisで利用

インストール

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

参考:Pythonで分散バージョン管理

XREAとかSakraとかにインストール

www.horaguchi.net - tako3 のソースは今まで、Free Subversion Hosting の Unfuddle に上げてたんだけど、

python setup.py install --home=~

設定

最低限の設定はだいたい以下です

コミット者情報

$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

に記述がある。

コマンド

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] を追加して処理を記述すれば良いことになります。

他の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
cd hoge
hg update

ログが多いと結構時間がかかります

Emacs

aHg

aHg: An Emacs front-end for the Mercurial SCM

微妙に変な所があるけれどシンプル

mvc.el

wac's webpage./mvc.el

インターフェースが独特だったり、colorの変更に追随していなかったりしている

DVC.el

DVC: Distributed Version Control for Emacs

XSteve's Emacs DVC.el page

DVC - Distributed Version Control for Emacs

初期設定だと微妙だったのでいろいろ変更すると良いのかもしれない

Trac連携

CentOSにTrac+TracMercurialをインストールする - Knowledge Database IT

Eclipse

Mercurial Eclipse

Mac で SSH認証が上手く通らない場合は以下を利用する

Josh (Formerly) In Antarctica: Mercurial Push from IntelliJ

共有サイト

Mercurial hosting — bitbucket.org:無償

Secure, Simple, Affordable Source Hosting - SourceRepo - Git Hosting, Subversion Hosting, Mercurial Hosting:有償

参考サイト

steps to phantasien t(2007-05-19) Mercurial で手軽な共有レポジトリをつくろう

satolog: Mercurial と Trac のメモ

XREA FREE で Mercurial を - miau's blog?

XREAでMercurialをインストール | Sarabande

JapaneseCGI Install - Mercurial

Greenbear Laboratory - Mercurialを使ってみよう


CategoryProgramingTools