Kiln Harmony-1つのリポジトリでMercurial + git

Joel Spolskyによって作成され、 Trello製品で知られている可能性があるFog Creekは、先週、新しい秘密プロジェクトKiln Harmonyを発表しました 。 これは、Mercurial(hg)およびgitリポジトリのホスティングです。 残念ながら、独占的に支払われた試用期間はわずか45日間です。 Mercurial + gitホスティングが既に市場に出ており、Bitbucket.orgのような無料のものが含まれている場合、ニュースは何ですか? Kiln Harmonyの機能は、1つのホスティングリポジトリがMercurialとgitリポジトリの両方であることです! 開発者によると、偉大なホリバーは終わり、バージョン管理システムの選択ではなく、コーディングに集中できるようになりました。 お気に入りのバージョン管理システム(Mercurialまたはgit)からKiln Harmonyでホストされている単一のリポジトリにプッシュアンドプルするために、hg-gitなどの特別な拡張機能やその他の特別なジェスチャーをインストールする必要はありません。すべての魔法はサーバーで発生します。



そして、そこには本当に多くの魔法があります。



画像

まず、Webで作業しているときに、「Gitで表示」または「Mercurialで表示」チェックボックスが表示されます。 ファイル自体や差分の表示など、ほとんどのインターフェイスでは違いはありません。 サブリポジトリとサブモジュールを表示すると、ニュアンスが表示されます。



画像

ブランチは、Mercurialとgitの違いが最も大きいブランチへのアプローチにあるため、特別な問題です。 ただし、フォグクリークチームは、ユーザーの習慣を変えないという目標を設定しています。 Mercurialとgitのどちらで作業していますか?別のシステムの機能を覚えて、通常のワークフローを再構築するべきではありません。



リポジトリが十分にシンプルでブランチが1つしかない場合、すべてが透過的です。GitマスターはMercurialのヒントと同期します。



gitリポジトリに複数のブランチがある場合、Mercurialではそれらがブックマークに変わります-この解決策も明らかであり、ほとんどのホリバー(ハブを含む)で、git branch = hg bookmarkと繰り返し議論されています。



魔法は、Mercurialからgitに反対方向にブランチを変換しようとするときに始まります。 まず、Mercurialには一意のブランチ名やブックマーク名のない匿名ブランチがあり、gitではあまり見栄えがよくありません。 第二に、Mercurialには、いわゆる「名前付きブランチ」があります。これはgitブランチとはまったく異なり、gitには類似物がありません。 自己開発記事: Mercurial:ブランチ作成ガイド 。 この問題を解決するために、Fog Creekの男たちは巧妙に行動しました。ブックマークはすべての匿名ブランチに自動的に割り当てられ、それに応じてgit branch = hgブックマークスキームが動作し始めます。 また、Mercurialの「名前付きブランチ」はgit refに変換されます(知識のある読者は、このアプローチでは額に情報が失われることにすぐに気付くでしょうが、アルゴリズムの微妙さのより詳細な説明はこのレビュー記事の範囲外です)。



ですから、これは、もし私がMercurialをずっと使っていて、ブックマークを使用していなかったら、今はブックマークを勉強しなければならないことを意味しますか? すべての匿名ブランチに自動的に表示されますか? 答えはノーです! 魔法はサーバーのどこかで自動的に発生します。 また、ブックマークをサポートしていない古いバージョンのMercurialを使用できます。



他のニュアンスとその技術的な実装については、開発者ブログの別の記事で詳細を読むことができます: Kiln Harmonyの正確な動作に関する詳細な記事 。 さらに、3月19日のQ&AセッションKiln Harmony Live Q&Aに全員が招待されます



個人的な外観。


私はアクティブなMercurialユーザーであり、パッシブなgitユーザーです(gitはどこにでもあり、そうでなければ何もありません!)。 一度、私の旅の始めに、私はそのようなサービスを夢見て、hg-gitと他の倒錯を試みました。 私の意見では、どちらのシステムにも長所と短所があります。 私たちの時代の最終的な選択は、特定の開発チームと作業環境に依存しており、それほど多くない固有の機能には依存していません。 gitを所有していて、Mercurialを使用しなければならないチームに参加すると、Mercurialを簡単に習得できます。 これは技術専門家の力の範囲内であり、それほど時間はかかりません。将来、同僚とコミュニケーションをとる際の労力と費用を大幅に節約できます。 そのため、ユーザー1人あたり月額25ドル以外は、サービスが飛ぶことはほとんどありません。



All Articles