hgweb.wsgi スクリプトを使用して、Windows Server 2008 / IIS 7.5 の下の Mercurial サーバーで largefiles 拡張機能を動作させようとしています。
largefiles を使用してローカルでレポを複製すると (ただしhttps://domain/
、ファイル システム パスではなく を使用)、すべてが正常に複製されますが、別のマシンで試してみると、abort: remotestore: largefile XXXXX is missing
詳細な出力は次のとおりです。
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 177 changes to 177 files
calling hook changegroup.lfiles: <function checkrequireslfiles at 0x0000000002E00358>
updating to branch default
resolving manifests
getting .hglf/path/to.file
...
177 files updated, 0 files merged, 0 files removed, 0 files unresolved
getting changed largefiles
getting path/to.file:c0c81df934cd72ca980dd156984fa15987e3881d
abort: remotestore: largefile c0c81df934cd72ca980dd156984fa15987e3881dis missing
両方のマシンで拡張機能が動作しています。ファイアウォールを無効にしてみましたが、解決しませんでした。拡張機能を設定するには、mercurial.ini に追加する以外に何かする必要がありますか?
編集:サーバーのディレクトリからファイルを削除すると、AppData\Local\largefiles\
ファイルシステムパスを使用してクローンを作成しない限り、サーバーでクローンを作成するときに同じエラーが発生します。その場合、ファイルは「AppData\Local\largefiles\」に追加されます。
編集 2: デバッグ出力とトレースバックは次のとおりです。
177 files updated, 0 files merged, 0 files removed, 0 files unresolved
getting changed largefiles
using http://domain
sending capabilities command
getting largefiles: 0/75 lfile (0.00%)
getting path/to.file:64f2c341fb3b1adc7caec0dc9c51a97e51ca6034
sending statlfile command
Traceback (most recent call last):
File "mercurial\dispatch.pyo", line 87, in _runcatch
File "mercurial\dispatch.pyo", line 685, in _dispatch
File "mercurial\dispatch.pyo", line 467, in runcommand
File "mercurial\dispatch.pyo", line 775, in _runcommand
File "mercurial\dispatch.pyo", line 746, in checkargs
File "mercurial\dispatch.pyo", line 682, in <lambda>
File "mercurial\util.pyo", line 463, in check
File "mercurial\commands.pyo", line 1167, in clone
File "mercurial\hg.pyo", line 400, in clone
File "mercurial\extensions.pyo", line 184, in wrap
File "hgext\largefiles\overrides.pyo", line 629, in hgupdate
File "hgext\largefiles\lfcommands.pyo", line 416, in updatelfiles
File "hgext\largefiles\lfcommands.pyo", line 398, in cachelfiles
File "hgext\largefiles\basestore.pyo", line 80, in get
File "hgext\largefiles\remotestore.pyo", line 56, in _getfile
Abort: remotestore: largefile 64f2c341fb3b1adc7caec0dc9c51a97e51ca6034 is missing
コマンドがファイルが見つからなかったことを返すため、_getfile
関数は例外をスローします。statlfile
私は自分でPythonを使用したことがないので、これをデバッグしようとしているときに何をしているのかわかりません:D
私の知る限り、statlfile
コマンドはサーバー上で実行されるため、ローカル マシンからデバッグすることはできません。サーバー上で実行しようとしpython -m win32traceutil
ましたが、何も表示されません。また、サーバーのmercurial構成ファイルで と を設定しようaccesslog
とerrorlog
しましたが、それらは生成されません。
hgweb.wsgi スクリプトを使用して hg を実行しましたが、それを使用して Python デバッガーにアクセスできるかどうか、またはその方法がわかりませんが、サーバー上でデバッガーを実行できれば、問題を絞り込むことができます...