FrontPage

pythonで書かれた分散型SCM

使うことになったので勉強してメモります。

とりあえずこれをやる→http://mercurial.selenic.com/wiki/JapaneseTutorial



設定

transplantを有効にする

hgrcに以下を書く。

[extensions]
transplant=

glogを有効にする

hgrcに以下を書く。

[extensions]
hgext.graphlog = 

特定のファイルを無視する

ワークスペースの直下に .hgignore を書いて適当に並べる。

syntax: glob
.tmp*
*.orig
*.bak
*~
.DS_Store
.#*#
.htpasswd
.settings

正規表現でも書けるようです。

syntax: regexp
^src/cache$

変更をなかったことにする

revert編

$ hg revert some/where/file

特定のリビジョンにも戻れる。

$ hg revert -r rev some/where/file

コミットされたものを削除する

mqエクステンションが必要なので入れておく。

0→1→2→3というリビジョンがあって3を消したい場合など。 stripを使って削除する。指定するリビジョンは2。

$ hg strip 2

クローン

どこかのリポジトリを手元に持ってくるアクション。

$ hg clone http://example.com/some/where

ssh指定の場合にはhome directoryからの相対パスで書く。

$ hg clone ssh://user@example.com/hgrepos/hoge_project

絶対パスで指定したい場合は、ホスト後の / を二つにする

$ hg clone ssh://user@example.com//var/hgrepos/hoge_project

マージ

defaultにブランチをマージする

ワークスペースをdefaultに切り替える。

$ hg update default

ブランチ名を指定してmergeする。

$ hg merge -r branch_name

衝突の一覧

$ hg resolve -l

衝突の解消

$ hg resolve -m path/file

ブランチ

ブランチの履歴を見る(glog)

$ hg glog

ブランチの一覧を見る

$ hg branches

ブランチする

$ hg branch new_branch

ブランチを切り替える

$ hg update branch_name

ブランチを消す

$ hg commit --close-branch

このあとマージしないと消えないが…。

push

特定のブランチだけpush

$ hg push -r branch

別のブランチの特定のリビジョンだけマージする

mオプションの後ろがマージしたいリビジョン。

詳しくはこれを見る→http://mercurial.selenic.com/wiki/TransplantExtension

$ hg transplant -b branchname -m 555

push対象ファイル一覧

$ hg outgoing

アーカイブを作る

出荷用のアーカイブを作るにはarchiveコマンド(そのまま!)を使う。tgz形式のほか、tar, tbz2, zipなどが選べる。詳しくはhelp archiveを参照のこと。

$ hg archive --type=tgz /some/where/hoge.tar.gz

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-12-10 (金) 20:35:16 (2358d)