TortoiseSVNと共存出来るSVN Mercurial(hg)

修正をひたすらかました後、やっぱ元に戻してくれ
てなったときに便利なSubversion(以下SVN)。

SVN使うと.svnフォルダが作成される。
皆で使うSVNがあったら自分専用SVNが使えない。
同じフォルダで自分専用にもSVNの機能が欲しいんだよ!

そんなときに以下がオススメ
個人で簡単に使える分散バージョン管理ツール Mercurial

hg init、hg add、hg commit、hg log、hg diff
だけ覚えておけば、とりあえず使うのには困らない。

cygwinとコマンドプロンプト両方で使える。
pathは通しておいた方が便利だ。

使い方の基本

使用したいディレクトリに移動

Cygwinでは以下

$ hg init

コマンドプロンプトでいうところの『cd init』
※Subversion の svn-admin create と import を同時にやっているような感じ。

『hg stat』で管理状態が確認できる。

まだファイルを追加していないので「?」が表示される。

$ hg stat
? test1.txt
? test2.txt

add コマンドでファイルを追加し commit コマンドでリポジトリへ反映

$ hg add *

cygwinでは↑だけではフォルダ内まで反映されないこと有り

$ hg commit -m "first import"

『$ hg add */*/*/*』とかやらなきゃならんこともある
「'」は使えない何故か 「"」で囲う
『No username found, using 'user@D9JSM5BX2' instead』出ても気にしない

『hg diff』で差分を確認

hg diff -r 3b701cee8925 test1.txt
--- a/test1.txt Wed Mar 12 01:31:25 2008 +0900
+++ b/test1.txt Wed Mar 12 01:36:26 2008 +0900
@@ -1,1 +1,1 @@	
-hello mercurial
+good night...

変更内容を戻す場合は『revert』

revert すると変更中のファイルが .orig として残る。
うっかり revert して作業中のファイルを消した人には助かる機能。

$ hg revert test1.txt
$ ls
test1.txt  test1.txt.orig  test2.txt

変更点をコミットしてコミットログを表示

$ hg commit -m 'test1.txt: hello to good night'
$ hg log 

相違点確認『diff』

Subversion と違ってリポジトリが手元にあるので、コミットしたリビジョンの diff も簡単に確認できる。

$ hg diff -r 0:1
diff -r 3b701cee8925 -r bd8bcd244b94 test1.txt
--- a/test1.txt Wed Mar 12 01:31:25 2008 +0900
+++ b/test1.txt Wed Mar 12 01:37:00 2008 +0900
@@ -1,1 +1,1 @@
-hello mercurial
+good night...

ファイル名の変更は『rename』

svn move と同じらしい。

$ hg rename test1.txt test3.txt
$ hg stat
M test1.txt.orig
A test3.txt
R test1.txt

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です