2

Mercurialには、クローン/プルチェンジセットの代わりにファイル/フォルダー/ブランチを参照できるHTTPプロトコルがありますか?

TortoiseHG WebServerを使用して何かを見たことがあり、ブラウザーを使用してhttp:// localhost:8080 /にアクセスしましたが、 https://bitbucket.org/でプロジェクトを使用すると、まったく異なるHTMLが提供されます(少なくとも同じ表現は見つかりませんでした) 。

HttpCommandProtocolドキュメントを更新すると、変更セットのみが記述され、ファイル/フォルダーは記述されません。したがって、タスクは、特定のリビジョン(たとえば、ヒント「stable」を使用)およびファイルのリストについてのみ、少数のファイルのみをダウンロードすることです。ただし、このための完全なリポジトリをダウンロードしたくありません。

非HTTPプロトコルは歓迎されますが、条件は同じです。完全なリポジトリをダウンロードしないでください。

Update 2 hgwebは、静的HTMLとファイルを提供します。異なるhgwebバージョンに対して常に同じHTMLfromatですか?bitbucket.orgはどうですか?一般的なプロトコルはありますか?

4

3 に答える 3

3

すでにお気づきのように、HttpCommandProtocolは、リポジトリ情報とチェンジセットの交換を定義します。これにより、HTTPによって提供される任意のリポジトリからクローン/プッシュ/プルできるようになります。しかし、AFAIKには、リポジトリを参照する方法の標準はありません(たとえば、特定のリビジョンの単一のファイルを取得する)。

選択したホスティングシステムが使用するURLスキームに適応する必要があります(お気づきのとおり、hgwebbitbucketのスキームは異なります)。ユースケースに応じて、独自のファイルアクセスプロトコルを定義し、それをコンバーターにフィードすることができます。

たとえば、次のスキームでファイルにアクセスしたい場合があります。

<repo-url>/<rev>/<path>

<repo-url>クローン/プッシュ/プルに使用するURLはどこにありますか。実際には、次のようなURLを使用します。

https://bitbucket.org/user/repo/<rev>/<path>
https://hgwebhost.org/.../repo/<rev>/<path>

明らかに、これらは存在しない仮想URLです。そこでコンバーターが登場します。ホスティングシステムの種類を確認し、それに応じてURLを変換します。

https://bitbucket.org/user/repo/raw/<rev>/<path>
https://hgwebhost.org/.../repo/raw-file/<rev>/<path>

コンバーターがbitbuckethgwebを知っている場合、それはすでにそこにある多くのリポジトリーで動作します。

于 2011-02-27T21:53:53.997 に答える
2

Mercurialにはhgwebがあります。これは、任意のwsgiコンテナーを介してデプロイでき、CGIもサポートしていると思います。

于 2011-02-19T05:44:09.717 に答える
2

いずれかのhgリポジトリに移動して、次のように入力する場合

hg serve

ブラウザをポイントできるURLをリッスンするWebサーバーがあります。hgによって生成されたWebページのフォーマットは、テンプレートを介して変更できます。bitbucket.orgには独自のより洗練されたテンプレートがある可能性が高いため、よりきれいなWebページがあります。

さらに、リスニングURLを使用して、hgを使用してプッシュおよびプルすることもできます。これは実際、hgweb.cgiを介してチャネル化されるのと同じWebサイトであり、SSHを介してプッシュ/プルを実行するための基盤となるメカニズムでもあります。

于 2011-03-02T06:10:43.233 に答える