3

サブレポのあるレポがあり、やりたいですhg serve

他のコンピューターで、私は試しました

hg clone http://address:8000/ new_repo

シナリオ 1: 元のレポの .hgsub に次の形式の行があった場合:

sub_repo_1 = sub_repo_1
sub_repo_2 = sub_repo_2

私は他のコンピュータに乗りました:

Requesting all changes
adding changesets
adding manifests
...
updating to branch default
abort: HTTP Error 404: Not Found

(サーブコンピュータはその後待つだけです)

(そして、new_repo 内の sub_repo_1 のみ。更新、プルを試みましたが、エラーが発生しました)

実際に sub_repo_2 を個別に複製しようとしましたが、エラー 404 (送受信コンピューターのボット) が発生し続けました。

シナリオ 2: .hgsub の行を

sub_repo_1 = http://address/sub_repo_1
sub_repo_2 = http://address/sub_repo_2

hg serve は subrepos を提供できませんか? または - 私は何を間違っていますか?

注: サブレポ内の hgrc ファイルを毎回 .hgsub 内のパスと一致するように更新しました。

4

3 に答える 3

2

TortoiseHG を使用して、サブリポジトリを持つリポジトリ用の mercurial サーバーをホストできます。TortoiseHG は実際には、作成した別の web.config ファイルを使用して hg serve を呼び出します。

TortoiseHG を使用してホストするには、TortoiseHG Workbench で [Repository] ​​-> [Web Server...] に移動します。

于 2013-01-31T17:47:29.590 に答える
1

hg serveサブリポジトリで動作します。hg serve問題は、レポにサブレポが含まれていることを自動的に認識しないことです。

次のフォルダ構造があるとします

- repo
  - subrepo1
    + file1.txt
  - subrepo2
    + file2.txt
    + file3.txt

ここで、 repoはメイン リポジトリで、subrepo1subrepo2repoの 2 つのサブリポジトリです。

  1. repo内に Web 構成ファイルを作成します。バージョン管理に追加しないでください。必要に応じて名前を変更できます。
  2. このファイルでサブリポジトリのすべてのパスを構成します。次のコンテンツを追加します。

    [paths]
    /repo = ./* #all repos will be known by the url /repo
    /repo/subrepo1 = subrepo1 #adding subrepo1 to be available in hg serve
    /repo/subrepo2 = subrepo2 #similar to above
    
  3. hg serveプロパティを使用して実行し--web-conf、パス用に作成された Web 構成ファイルを使用します。次に例を示します。

    hg serve --web-conf .hgwebconf <other configurations you use ...>
    

以上です。これで、http 経由でサーバーにアクセスし、レポまたは任意のサブレポをクローンして操作できるようになりました。

于 2016-03-10T22:06:11.913 に答える
0

私はHgServiceリポジトリをホストするために使用していますが、それが私が見つけた解決策です。

を使用している場合は、ファイルHgServiceを編集してサービスを再起動する必要があります。web.config

[paths]が次のように設定されている場合web.config:

[paths]
remote_repo = "path/to/remote_repo"

**次のようにパスに二重星 ( ) を追加します。

[paths]
remote_repo = "path/to/remote_repo/**"
于 2014-10-12T23:32:25.817 に答える