2011-02-04 10 views
2

背景:httpで提供されるリモートSCMシステムとの基本的なやりとりを実行する必要があるJavaサーバーアプリケーションを作成しています。リモートのMercurialとGitのhttpリポジトリと対話します

何らかの事前定義済みのAPIを使用してMercurialリポジトリとやりとりすることは可能ですか(またはhttp経由で提供されたときにこれらのリポジトリがどのようにレイアウトされるかに関する規則がある場合)唯一必要とされる対話は、現在バージョン管理下にあるファイルのリストと、バージョン管理されたファイルの特定のリビジョンをダウンロードすることです。

EDIT: Mercurialでは、Ry4anのソリューションを使用しました。 Gitのために、gitwebを使って提供されたリポジトリの画面を掻き集めました。

答えて

4

Mercurialは、クローン、プッシュ、プル以外のリモートリポジトリでは動作しません。それは、それがどのように役立つかによって多くの人ができることだと言われています。 hgwebを通じて提供されている場合は、hg serveとして利用可能な組み込みWebインターフェイスがあり、プログラムで簡単に処理できる多くの詳細が表示されています(​​)。いくつかの例:ファイルを閲覧することができたものと

、リビジョン、タグ、およびブランチ。

しかし、あなたはあなたのJavaアプリケーションでJythonでMercurialを実行し、コマンドを直接呼び出すことをお勧めします。

+0

ありがとうございます。 gitwebに似たraw出力フォーマットがあるかどうか知りますか? – dteoh

+0

私は積極的に考えていません。 :) –

2

Mercurialには2つのWeb APIがあります。あなたはおそらく使用すべきではありません。これは、Mercurialの他のインスタンスがチェンジセットを送受信するために設計されています。

もう1つは、通常のWebブラウザから簡単にアクセスできます。表示されているURLは、わかりやすく簡単に解析できるように設計されています。 @ Ry4anが指摘するように、ファイルブラウザには、任意のファイルの任意のバージョンの生の(HTMLタグなしで)そのままのコピーを与える機能もあります。

興味深い点がありますが、私はMercurialが、プログラムで使用するように設計されたMercurial固有のXML形式のページと同じ情報を送るXMLテンプレートを使用できると思います。

関連する問題