#navi_header|技術| GoogleCodeやCodePlex(Microsoft)でもサポートされている分散型のリビジョン管理システムのメモ。 - Mercurial SCM -- http://mercurial.selenic.com/ - Mercurial: The Definitive Guide -- http://hgbook.red-bean.com/ - Mercurialでバージョン管理 -- http://www.02.246.ne.jp/~torutk/mercurial/intro.html --- ちょっとバージョンが古いかも。 #more|| 以下のメモの内、Windows環境については以下の環境で確認してます。 Win7 SP1 x86_32 Japanese Mercurial 1.9.2 MSI installer - x86 Windows - requires admin rights #outline|| ---- * Win用設定メモ %USERPROFILE%\mercurial.ini: [ui] username = foobar ignore = ${USERPROFILE}\.hgignore merge = internal:dump %USERPROFILE%\.hgignore: # use glob syntax. syntax: glob *.elc *.pyc *~ ** "[merge-tools]"でなぜか嵌ってしまった。 WindowsでWinMergeを使おうとするが、mercurial.iniの設定やhgrc.d/MergeTools.rcに設定しても実行バイナリが見つからないらしく使用できない。 最初はmercurial.iniの"[merge-tools]"セクションに、サンプル通りに指定していたのだが、レジストリ指定も駄目、実行ファイル指定(winmergeu.executable)も駄目、さらにインストールディレクトリのhgrc.d/MergeTools.rcの設定を弄っても駄目。泣きたくなってきた。TortoiseSVNに含まれているTortoiseMergeは認識されるらしく(MergeTools.rcのデフォルト設定)、毎回こちらが起動してしまう。 個人的にはWin環境でgVimを愛用していることもあり、WinMergeまたはgvimを起動させようと頑張ってみたが、どうにも上手くいかない。実行バイナリが見つからないのか? どうしてもTortoiseMergeしか起動できないなら、いっそ手動マージで良いだろうとmercurial.iniのui.mergeにinternal:dumpを設定。あとはgVimで頑張る。 mercurial.ini: [ui] ... merge = internal:dump 参考: - WinMerge - Mercurial -- http://mercurial.selenic.com/wiki/WinMerge - MergeToolConfiguration - Mercurial -- http://mercurial.selenic.com/wiki/MergeToolConfiguration * vimをマージに使う 参考: - MergingWithVim - Mercurial -- http://mercurial.selenic.com/wiki/MergingWithVim - hg(mercurial)のmergeで衝突箇所を見やすくした - ブックマクロ開発に -- http://d.hatena.ne.jp/takuya_1st/20090129/1233197063 - mercurialのマージ作業をvimで - logiqboard -- http://d.hatena.ne.jp/feiz/20100302/1267557399 * Eclipseと連携 とりあえずMercurialのWikiに載ってた"MercurialEclipse"を使ってみて、今のところ問題ない。コミットメッセージに日本語も可。 - http://www.intland.com/products/mercurialeclipse/overview/ 最初にJavaForgeでアカウント作るよう書かれてる。実際にアカウント作らないとEclipseからダウンロード出来ないか、といわれればその辺は実はよく覚えてない。もしかしたらアカウント作らなくても普通にインストール出来たかも。 Eclipseからのインストールについては、サイトに書かれてるのでそちらを参照。 ''→2012-03時点でEclipse 3.7 (Indigo) で試した限りでは、Eclipseの"Help" -> "Eclipse MarketPlace" から "Mercurial" で検索してそのままインストール出来ました。'' で、基本的に一つのMercurialリポジトリ中に複数のEclipseプロジェクトを詰め込めるので安心。 既存のプロジェクトを追加するには、 + 一旦コマンドラインで適当なディレクトリにcloneして、 + その中にプロジェクトフォルダをごっそり移動して、(Eclipseのworkspaceからは一旦移動しちゃう。) + pushして、 + Eclipse側でプロジェクトのインポートでMercurialのリポジトリをclone、 + インポートするプロジェクトを指定できるので適宜選択、 + 必要に応じて"bin"フォルダなど無視指定→リポジトリのrootに".hgignore"が出来るので、"Mercurial Repositry"ビューから直接commit + pushしておく。(複数Projectが入ってるリポジトリとかだと、Project毎に.hgignoreを作成するのではなく、リポジトリのrootに単一の.hgignoreが生成される。) さすがに、右クリック一発でリポジトリに追加する機能は見当たらなかった・・・。 複数プロジェクトについては基本的にクローンしたディレクトリの中に素直にプロジェクトディレクトリが複数置かれて、それをEclipse側でインポートする感じ。 * 改行コード問題 参考: - [[1043]] - Mercurial での改行コード - 彷徨えるフジワラ -- http://d.hatena.ne.jp/flying-foozy/20111205/1323065152 - EolExtension - Mercurial -- http://mercurial.selenic.com/wiki/EolExtension * Gitリポジトリとの相互変換 ・HgリポジトリをGitリポジトリに変換: - https://github.com/frej/fast-export - Convert Mercurial project to Git - Stack Overflow -- http://stackoverflow.com/questions/16037787/convert-mercurial-project-to-git - 穀風: hg から git へ変換 -- http://kokufu.blogspot.jp/2011/02/hg-git.html - Mercurial のリポジトリを Git に変換し GitHub へ移行する - A Day in Serenity @ kenjis -- http://d.hatena.ne.jp/Kenji_s/20110912/1315829172 ・GitリポジトリをHgリポジトリに変換:"hg convert"で出来るらしい。 - version control - How do I convert a git repository to mercurial? - Stack Overflow -- http://stackoverflow.com/questions/491554/how-do-i-convert-a-git-repository-to-mercurial #navi_footer|技術|