Mercurialが分からない自分のためのメモ。¶
メンテナンスしているパッケージがMercurialを使っているので、備忘のためのメモです。
どのブランチにいるのかは hg branch
を実行すれば分かります。
$ hg branch
default
すべてのブランチを表示するにはhg branches。
$ hg branches
0.3.x 153:28528a73b122
default 151:faefc873c619
Gitユーザにとって分かりにくいのが hg log
。このコマンドではすべてのブランチのログが表示されます。
$ hf log
チェンジセット: 153:28528a73b122
ブランチ: 0.3.x
タグ: tip
ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
日付: Tue Nov 29 23:03:05 2011 +0300
要約: Switched from nosetests to unittest for compatibility
チェンジセット: 152:e568fcc9e6d6
ブランチ: 0.3.x
親: 149:f7b9c45450d7
ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
日付: Tue Nov 29 23:03:03 2011 +0300
要約: Python 3 compatibility
チェンジセット: 151:faefc873c619
ブックマーク: master
親: 150:570348297487
親: 149:f7b9c45450d7
ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
日付: Tue Nov 22 09:39:34 2011 +0300
要約: merge
チェンジセット: 150:570348297487
親: 143:82b1066c6c18
ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
日付: Fri Nov 18 02:24:40 2011 +0300
要約: Fixed bug #31 in many() backtracking
チェンジセット: 149:f7b9c45450d7
ブランチ: 0.3.x
ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
日付: Fri Nov 18 02:15:56 2011 +0300
要約: More information in exception objects (Issue 14)
(snip)
defaultブランチは、”ブランチ: default”とは表示されないんですね。 git log --graph
のような表示をするには、 ~/.hgrc
に
http://labs.timedia.co.jp/2011/03/mercurial-extensions-we-should-setup-for-gituser.html
[extensions]
graphlog =
と書くそうです。
すると、 hg glog
もしくは hg log -G
で下記のように表示されます。
$ hg glog
o チェンジセット: 153:28528a73b122
| ブランチ: 0.3.x
| タグ: tip
| ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| 日付: Tue Nov 29 23:03:05 2011 +0300
| 要約: Switched from nosetests to unittest for compatibility
|
o チェンジセット: 152:e568fcc9e6d6
| ブランチ: 0.3.x
| 親: 149:f7b9c45450d7
| ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| 日付: Tue Nov 29 23:03:03 2011 +0300
| 要約: Python 3 compatibility
|
| @ チェンジセット: 151:faefc873c619
|/| ブックマーク: master
| | 親: 150:570348297487
| | 親: 149:f7b9c45450d7
| | ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| | 日付: Tue Nov 22 09:39:34 2011 +0300
| | 要約: merge
| |
チェックアウトしているチェンジセットが”@”になっています。 git checkout
に相当するのが hg update
なので、
$ hg update 0.3.x
ファイル状態: 更新数 20、 マージ数 0、 削除数 14、 衝突未解消数 0
と0.3.xブランチのheadにチェックアウトします。 hg log -G
を実行して確認してみます。
$ hg log -G
@ チェンジセット: 153:28528a73b122
| ブランチ: 0.3.x
| タグ: tip
| ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| 日付: Tue Nov 29 23:03:05 2011 +0300
| 要約: Switched from nosetests to unittest for compatibility
|
o チェンジセット: 152:e568fcc9e6d6
| ブランチ: 0.3.x
| 親: 149:f7b9c45450d7
| ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| 日付: Tue Nov 29 23:03:03 2011 +0300
| 要約: Python 3 compatibility
|
| o チェンジセット: 151:faefc873c619
|/| ブックマーク: master
| | 親: 150:570348297487
| | 親: 149:f7b9c45450d7
| | ユーザ: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| | 日付: Tue Nov 22 09:39:34 2011 +0300
| | 要約: merge
| |
“@”の位置が変わりました。
git show
に相当するのが、 hg export
。 git format-patch
に相当するのがどんなものか分からないので、 hg export
コマンドで代用できます。
$ hg export faefc873c619
# HG changeset patch
# User Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
# Date 1321943974 -10800
# Node ID faefc873c6198302a3459c121389d80e974da546
# Parent 570348297487181081fb91117d4bd236dfa8bc94
# Parent f7b9c45450d7fbde14892009319c5930cffab9c1
merge
diff -r 570348297487 -r faefc873c619 .hgignore
--- a/.hgignore Fri Nov 18 02:24:40 2011 +0300
+++ b/.hgignore Tue Nov 22 09:39:34 2011 +0300
@@ -2,11 +2,13 @@
MANIFEST
build
dist
+tags
tmp
tags
.idea
funcparserlib.egg-info
examples/dot/*.png
+.idea
*.pyc
*.swp
diff -r 570348297487 -r faefc873c619 .hgtags
--- a/.hgtags Fri Nov 18 02:24:40 2011 +0300
+++ b/.hgtags Tue Nov 22 09:39:34 2011 +0300
@@ -5,3 +5,4 @@
23cf9ed9635b112fcb2247d960f4a918eaaad4bc 0.3.2
dfcce3e0b5765a393489570a41c7c95f5d8f1b15 0.3.3
ce8269e2e9ad9795f089b397efbec33758337016 0.3.4
+2a094772c9e97ee5de5618f9c4479253fb357e4e 0.3.5
diff -r 570348297487 -r faefc873c619 CHANGES
--- a/CHANGES Fri Nov 18 02:24:40 2011 +0300
+++ b/CHANGES Tue Nov 22 09:39:34 2011 +0300
@@ -3,6 +3,17 @@
(snip)
とりあえずこれくらい分かれば、 git-format-patch
に相当するコマンドが分からないままですが、特定のチェンジセットからパッチを生成できますね。