3

私はと呼ばれるリポジトリを持っておりmain、その下にいくつかのサブリポジトリがあります。最初にスーパーリポジトリを作成したときmain、既存のリポジトリを取得してmainフォルダにコピーし、サブリポジトリ.hgsubの名前を示すファイルを追加しました。

現在、このmainフォルダは会社のファイルサーバー上にあり、によって提供されてhgServiceおり、新しいリポジトリを追加する必要があります。広い緑の世界でこれはどのようにシームレスに行われますか?

mainローカルマシンにクローンを作成した場合、それhg init newrepoをクローンにコピーしmain、適切なエントリを追加して.hgsubコミットできますが、プッシュできません。の行に沿ってエラーが発生しますhttp error 404 path not found。わかりました。十分に公平なので、エントリをhgServiceweb.confファイルに追加して再起動します。今、私はまあまあのような別のエラーを受け取りますsubrepository 'newrepo' doesn't exist!追加しようとしています!

そのため、私はついに故障し、サーバーにRAdminを実行し、手動でnewrepoを作成し、それをサービス対象のリポジトリに追加して、main変更hgServiceをコミットする必要がありました。これは私には非常に汚いように思えます。さらに困難なことに、サーバーの作業ディレクトリの状態が約6か月古くなっていたため、最新のリビジョンに更新するために無数の問題を解決する必要がありました。

これを行うためのより良い方法が必要です..私はユーザーを共同にRAdminingさせることはできません。新しいリポジトリが必要になるたびにVCSサーバー?右?

4

1 に答える 1

4

残念ながら、できません。新しいサブリポジトリを追加するには、サーバー上にサブリポジトリを作成する必要があります。サーバー上に新しいリポジトリを作成することはできませんhg push。したがって、サーバー上にリポジトリを作成するためにサーバーにログインする必要がある場合は、サブリポジトリを追加するときにも同じことが必要になります。

Mercurial に同hgweb梱されているスクリプト ( hgService で参照します) には、ユーザーが新しいリポジトリを作成できる組み込みのメカニズムがありません。新しいリポジトリは別の方法で作成されhgweb、HTTP 経由で読み取り専用ビューを提供し、ユーザーが Mercurial を使用してリポジトリにプッシュ/プルできるようにすることを前提としています。

Mercurial 用の Web フロントエンドは他にもあります。私はカリテアに最も精通しています。ブラウザから直接リポジトリを作成/削除できるため、サーバーにログインする必要がなくなります。これは、プレーンを使用するよりもリポジトリを管理するためのはるかに優れた方法ですhgweb

于 2012-08-19T11:00:15.363 に答える