5

ここにリポジトリがありますhttp://repos.joomlaguruteam.com/

私は hgweb.cgi を使用しています。これは私の hgweb.config ファイルです

[web]
baseurl = 
#allowpull = true
allow_push = *
push_ssl = false
allow_archive = bz2 gz zip

[paths]
/ = /home/repos/*

参照はできますが、クローンを作成できません。クローンするたびに、このエラーが発生します

hg clone http://repos.joomlaguruteam.com/hello
destination directory: hello
requesting all changes
abort: HTTP Error 404: Not Found

そしてアクセスログにはそれがあります

115.5.95.59 - - [10/Feb/2011:04:20:33 -0600] "GET /hello?pairs=0000000000000000000000000000000000000000-0000000000000000000000000000000000000000&cmd=between HTTP/1.1" 200 1 "-" "mercurial/proto-1.0"
115.5.95.59 - - [10/Feb/2011:04:20:34 -0600] "GET /hello?cmd=heads HTTP/1.1" 200 41 "-" "mercurial/proto-1.0"
115.5.95.59 - - [10/Feb/2011:04:20:34 -0600] "GET /hello?cmd=changegroup&roots=0000000000000000000000000000000000000000 HTTP/1.1" 404 597 "-" "mercurial/proto-1.0"

しかし、非圧縮転送を使用してクローンできます

hg clone --uncompressed http://repos.joomlaguruteam.com/hello

しかし、今はリポジトリからプルする方法がわかりません。クローンと同じ問題があります。着信用もあります。

ここに私の .htaccess ファイルがあります

Options +ExecCGI
RewriteEngine On
#write base depending on where the base url lives
#RewriteBase /hg
RewriteRule ^$ hgweb.cgi  [L]
# Send requests for files that exist to those files.
RewriteCond %{REQUEST_FILENAME} !-f
# Send requests for directories that exist to those directories.
RewriteCond %{REQUEST_FILENAME} !-d
# Send requests to hgweb.cgi, appending the rest of url.
RewriteRule (.*) hgweb.cgi/$1  [QSA,L]

リビジョンをリポジトリにプッシュできますが、そこからプルできません。

とにかくこれを設定するか、それを機能させるために何かがありますか。

私を助けてくれてありがとう。

ありがとう、ユアン

4

5 に答える 5

4

OK、私は問題を発見しました。

/home/my_username/.hgrc の次の行をコメントアウトします

#verbose = True

詳細はこちら

于 2011-02-11T14:17:50.877 に答える
1

これは当たり前のように聞こえるかもしれませんが#allowpull = true、ファイル内の行のコメントを外してみましたhgweb.configか?

于 2011-02-13T10:34:33.950 に答える
0
  1. Mercurial を最新バージョンにアップグレードする

  2. [paths] セクションを次のように置き換えてみてください

    [collections]
    / = /home/repos
    
    [web]
    baseurl =
    
  3. すべてのリポジトリの hgrc を更新します

    [web]
    allow_read = YOUR_USER1, YOUR_USER2
    allow_push = YOUR_USER1
    push_ssl = false
    
于 2011-02-13T12:08:20.930 に答える
0

質問: hgweb.cgi を実行して、Web サーバー経由でエイリアシングしていますか?

その場合、http://url/helloは実際にはhttp://url/hgweb.cgi/helloを指している可能性があり、それが探しているパスである可能性があります。通常、mercurial Web インターフェイスを提供する cgi スクリプトがあります。

于 2011-02-11T14:09:03.527 に答える
0

これは、IIS で hgweb をホストしていて、プル リクエストがサーバーのクエリ文字列の最大長を超えている場合にも発生する可能性があります。デフォルトの 2048 バイトは、system.webServer/security/requestFilters/requestLimits構成セクションを構成することで増やすことができます。

于 2011-12-22T20:22:34.617 に答える