【分散型バージョン管理】 Mercurial 2【hg】
mercurial-2.1.1.tar.gz 01-Mar-2012
Gitに挫折したんですがMercurialは簡単でしょうか? >>103
簡単です
難しいと思っても、我慢して使い続けてみればきっと超簡単になります 簡単なことをするだけなら簡単
Gitもきっとそうだと思うけど 簡単ですかね
試してみるか考えてます
git init
git add .
git commit -m "test"
git checkout .
git clone http〜
の5つは覚えられるんですがそれ以外のことがちんぷんかんぷんで難しいです
ブランチっていうのは何をするのかよくわかりませんし、 >>103
個人的にはMercurialのほうが簡単。
rollbackが1回しかできない > MQでかいけつ
サブディレクトリのチェックアウト > 自分には必要ない or サブディレクトリでhg init
ブランチを明示的に作る意味があまりない
という点だけかな。
gitはbranchやcommitが柔軟なのはいいが
Mercurial先に覚えた自分には
考え方が違いすぎて覚えるのに苦労した。
まじすか
やっぱ1年後にはgithubが使えるようになりたいというのもありますけど
Mercurialから始めたいと思います >>110
Mercurial使うならbitbucket使ったら? 何よりもMercurialはTortoiseHgが便利じゃないか
俺は実用したことないけど TortoiseHgはログのツリー表示と、複数の手動削除したファイルを
デリートするのに使っているなぁ
まとめてrevertする方法側かわからないのです hg-git で Git リポジトリに変換するときに、コミッタごとのメールアドレスを指定するのは
どうすればいいんでしょうか。
https://github.com/schacon/hg-git に書いてある方法で
.hg/hgrc の [git] の下に authors = /path/to/authors.txt を書いて、
authors.txt には foo = foo <foo@foo.com> というのを書いているのですが
GitHub に push してみたところメールアドレスが全く設定されませんでした。
hg-git は easy_install で入れた 0.3.2 です。
hg しか使っていない友人に git と比べて何がいいか聞いたら MQ とのこと。
ググった感じだと git で branch と rebase でやれば同じことができるように思えるんだが、
実際のところどうなんだい?
あと hg でできて git でできないことがあれば教えてくれ。 >>115
やろうと思えば出来ないことってあまりないと思うよ。
どっちかの新機能はもう一方にも取り入れられていくだろうし。
俺はWindows対応や日本語ヘルプの充実があるのでMercurial
使い始めたよ。VCSを使ったことないような人に利用を
お願いするときにはこのあたりが問題なりそうな気がしたから。 >>115
そう、MQは便利なんだよ。Gitにもguiltがあるけど。
> あと hg でできて git でできないことがあれば教えてくれ。
バックアップ代わりの1個のリポジトリを作って、何でもpush -fで
そこに押し込むというのを、MQで間違えた時などのためによくやってるんだけど、
gitだといちいちブランチ名をつけなきゃいけなくて面倒かも。 git で pull してコンフリクトが起きたときに、ファイルに
<<<< みたいなのが勝手に書き加えられるのが嫌だね。
しかも LF 固定なんで Windows では悲惨なことになる。
hg だと heads が増えるだけだからね。
ブランチ回りは hg と git は違いすぎて比較ができないね。
あと本質的ではないのかもしれないけれど git はオプションが
やたら複雑なのと(alias 漬けにすればなんとかなる?)、リビジョ
ンやブランチの指定方法に気が狂いそうになるのと、あと
hg serve がない(git daemon でできる、って書いてあるのを見て
やってみたけど、自分のところではうまくいかなかった) のと、
あと hg のほうがプラグインの仕組みがよくできていることかな。
>>119
hgのpullはgitで言うとfetch相当だよ。
gitのpullはhgで言うとpullの後updateとかmergeとか。
ブランチ回りは
hg:取り込まれているすべてのコミットのIDが連番と対応づけられていて、
枝分かれしてマージ前のコミットや親子関係のないコミットもすべて参照できる
git:コミットを参照するにはIDしかなく、「ブランチ」が指す最新のコミットから
parentをたどっていくことで各「ブランチ」のすべてのコミットを参照する
っていう違いが影響してるよね。gitの「ブランチ」って呼び名はどうかと思うけど。 今時クロスプラットフォームで動かない
カスバージョン管理システムは滅んでくれ
存在するだけで有害だ うちの会社をSVNからMercurialに移行させようと頑張ってるんだが、
あと一歩の所で部長にStatSVNみたいのが無いから移行できないって言われた(´;ω;`)
たいして活用できてないのに・・・。 >>123
hg activity
hg chart
hg churn
などがあるようだ。
statsvnはxmlを食わせればいいみたいだから
hg logをその形式で出せばいいだけかも。
その部長。statsvn を解決したら別の問題を出してきそう そうかもね・・・・。
今回の機会は逃したけど、数か月後にまた移行の機会が来るからその時までに味方を増やしておこう。 会社だとビルドシステムやテストシステム・BTS はもちろん、
スケジュール調整や、場合によっては人事考課にまで影響が及ぶから
慎重になるのは当然。
今更だけど
2012-04-01 Mercurial 2.1.2 released! TortoiseHg 2.3.2 released! Mercurial 2.2 は明日リリース予定かな 2.2からamendできるようになったんだ。地味に嬉しいわー >>134
直前のコミットを修正したい時に使う。
何かしらの変更をコミットしたが、他にも同時にコミットしなきゃいけない変更を入れ忘れてた時とかに hg commit --amend ってやると、その入れ忘れてた変更を直前のコミットに合成できる。 2012-02-01 Mercurial 2.2 released! >>135
hg rollback
hg add
hg commit
の代わり?地味だなー あれ、公式の日付間違ってる…
2012-05-01 Mercurial 2.2 released! hgってディスクフォーマット的には歴史改変禁止の方向だとおもうけど、
けっこういろいろできちゃうな。
>>140
基本的なコンセプトとして容易に履歴をぶっ壊したりできないようにってのはあるんだろうけど、実際できる(ようにしてある)かどうかはまた別の話なのでは。MQもあるわけだし。 正直その辺はやり方次第なんで
できるなら最初から出来るようにしておいて欲しかった >>142
一応hg clone -rは昔からある Mercurial 2.2.1 released! >>139
>>144
速攻で、2.2.1 が出ているけど、なんか重大トラブルあったんか? >>146
hg serve でメモリリークらしいよ hgwebで日本語コメントが文字化けするのって直ってなかったのか… custom toolbarってどうやってアイコンとか登録するんだろ?
使ってる人いる? svn ls dir
と同じことってどうやったら出来ますでしょうか? hg locate dir/* --include .
とすることで目的の、
svn ls .
と等価なことが出来るようになりました。
ありがとうございました。 svn ls dir
と等価なことが出来るようになりました。
が正しかったです。。。
てへへw mercurialがプライベートなリポジトリをもてることはわかった。
このプライベートなリポジトリをリモートにおくことはできないのかい?
おいらはいろんな端末で作業するからリポジトリをローカルにおきたくないんだ。
こんな使い方にmercurialは向かない?
>>156
なんかよくわからんが、
doropbox とか samba とかか、
subversion とか bazaar とかじゃね?
そもそも「プライベート」って何よ?
DVCS 関連でそんなキーワード見たことないんだけど・・・ >>159
dropboxもsambaもsubversionもbazaarも関係ない。
>>157で終わってるから、もう誰も答える必要ないよ。 >>160
そうなの?
「ローカルにリポジトリおきたくない」
=「commit したらリモートのリポジトリが更新される」
なのかと思ったよ
push し忘れることってまれによくあるよね TortoiseHg 2.4.1 (with Mercurial 2.2.2) released 念願のgraft対応GUI来たか。これでGitに勝てるっ >>162
まれによくあるってどっちだアホ。
svn か bzr でも使っとけ。 >162
[hooks] のところになんか書けばいいんじゃないの?
バンドルファイルのコミットメッセージや差分を表示する方法ってあるんでしょうか?
やりたいことはstripとかして溜まったバックアップを確認して要らないものは消したいです。 >>169
hg incoming -p バンドルファイル >>168
この文脈でのプライベートなら、
一般的な DVCS には存在する概念だと思うよ。 >>170
これがいけるってことは
hg pull バンドルファイル
もOKで、つまりhg unbundleは必要ないってこと? いまさらだけど
2012-07-02: TortoiseHg 2.4.2 (with Mercurial 2.2.3) released cvsからMercurialに変換しようとして cvsリポジトリをチェックアウトしようとしたが
wincvsよく分からない
もう亞北ネル 何とかcvs.exeでチェックアウトして
Mercurialリポジトリに変換しようとしたけれども、destに空のMercurialリポジトリが出来てしまう
それに何でhg convertの表示が文字化けするんだろうか 2012-08-01 Mercurial 2.3 released! graphlog拡張がコアに取り込まれた、ってのが大きな変更点かな?
rebaseの変更点も重要そうな気もするが、意味がよく分からん。 名古屋でSCMBootCampもう一回やってくれんかな 2012-08-20: TortoiseHg 2.4.3 (with Mercurial 2.3) released ttp://osdn.jp/jobs
Mercurialの仕事があるようだ。やる人いないかね。
mercurial-server
ってのが、mercurialでのgitosis/gitoliteに当たるのね。 2012-09-04: TortoiseHg 2.5 (with Mercurial 2.3.1) released Mercurial 2.3からwin32mbcsが機能しなくなってませんか?
>>188
機能していると思いますが、何をしたらどうなります? レスありがとうございます。
windowsでTortoiseHgを使用しているのですが、
tortoisehg-2.5.0-hg-2.3.1-x86.msiに更新したら、
日本語のファイル名の操作をするとエラーが出るようになりました。
R:\>hg init hoge
R:\>cd hoge
R:\hoge>echo hoge>日本語.txt
R:\hoge>hg add 日本語.txt
中断: [win32mbcs] 文字コード 'cp932' によるファイル名変換に失敗
※コンテキストメニューでの操作でも同様にエラーが出ます
tortoisehg-2.4.2-hg-2.2.3-x86.msi までは出なかったので、
設定等に問題はないと思っていたのですが見直してみます。
>>190
同じエラーメッセージが表示されました。
自分で試した際には hg add のみでファイルを指定していませんでした。
>>191
確認どうもです。
ファイル名を指定したaddが駄目だっただけなんですね。
普段の使い方だとこれが出来ないと面倒なので、
おとなしく前バージョンを使っときます。
/\ hg-sshよ、空白一つがあるとかないとかで
../ ./|
∴\/./ Permission denied (publickey).
_, ,_゚∵ |/
(ノ゚Д゚)ノ ふざけんな!
/ /
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ Workbench のグラフで複数リビジョン選択して Graft すると
なぜか新しいリビジョンから古いリビジョンに向かって処理されて無茶苦茶になる。
Transplant はちゃんと古いリビジョンから処理してくれたのに。 >>195
TortoiseHg 2.5.1 でそれっぽいバグ修正が入ったみたいだよ。
不具合だったんかい。仕様かと思ったよ。まあ一つ一つ実行してもたいした手間じゃないけどさ。
またそのうち試してみる。