2012年9月16日日曜日

gitに移行するのは、「mercurialの◯◯が嫌いだ!」と言えるようになってからでいいと思うよ

git、使ってますよ。

githubとかgistは使ってるので、どうしても使わざるを得ません。元々はbitbucketで追いかけてたオープンソースがgithubに移行したので仕方なく、でしたが、実際、gistも便利ですしね。

分散バージョン管理、数ありますが、容易度(難易度ではない)で言うと。

bzr? > mercurial >>>>越えられない壁>>>git

いや、実際、判らないですよ。git

出稼ぎ先のスタッフは、mercurialでの運用には、2週間で概ね慣れてくれました。実際簡単です。トータスHGの存在は割り引いて考えるにしても。

小生が使い始めたのはmercurialが0.7まで遡りますが、コマンドライン数回叩いて、納得できましたから。subversionに極力「似せてる」のもポイントですね。 pushは、簡易なデプロイ機能として使えますし、オマケに現地でのパッチをスムーズに吸い上げることが出来る!こりゃ凄い。てなもんでさ。

機能的にはgitでも勿論出来ますが、

問題は、「出来るか否か」ではありません。
「使うことがメリットになるか(厳密には使いこなせるか)どうか」です。
使いこなせない機能は「存在しない」も同じ。

gitの判りにくさの原因の一つは、異なるコンテキストの「省略語の管理」が、表面上同列に扱えてしまうところだと思う。

git push origin remote

とか。せめてこう書いてくれれば解るのですが

git push -b origin -r remote

どこが違うのって?まあそうね。心の準備をさせてよ!ってところでしょうか。

originもremoteも、いずれも暗黙の省略後。「設定した覚え」がないのに使え、って言われてもピンと来ません。 何度か .git/configを手で書き換えたことがあるほどですよ。

まあ要するに、「gitに移行するのは、「mercurialの◯◯が嫌いだ!」と言えるようになってから」でも遅くはありません。

実際、gitのオススメ記事は「mercurialには出来ないけど、gitには出来ます!」的な物言いが多い。気持ちは解ります。小生だって同じ立場ならそうする。でもそれを聞いてもピンと来ません。mercurialに不満がないからね。

最後の、gitの嫌いなところを明記しておきましょう。

git講座のどこを見ても「履歴を綺麗にする」というフレーズが見当たります。「チェンジセットのガベージコレクション」??? 参照してようがいまいが、履歴を削除しちゃいかんだろうと。正直、「仕事」ではやっちゃいかんと思う。どちらが正しいか。という議論をする気は毛頭ありません。これは「正義」の問題なので。オープンソースなら問題ありません。「趣味」だから。※もちろん「趣味」を馬鹿にしてるわけでもない。