Iis Mercurial largefiles在Windows Server 2008上不工作

Iis Mercurial largefiles在Windows Server 2008上不工作,iis,mercurial,windows-server-2008,Iis,Mercurial,Windows Server 2008,我正在尝试使用hgweb.wsgi脚本使largefiles扩展在Windows server 2008/IIS 7.5下的mercurial服务器上工作 当我在本地(但使用https://domain/,不是文件系统路径)所有内容都可以很好地克隆,但当我在另一台机器上尝试时,我得到了中止:remotestore:largefile XXXXX丢失 下面是详细的输出: requesting all changes adding changesets adding manifests adding

我正在尝试使用hgweb.wsgi脚本使largefiles扩展在Windows server 2008/IIS 7.5下的mercurial服务器上工作

当我在本地(但使用
https://domain/
,不是文件系统路径)所有内容都可以很好地克隆,但当我在另一台机器上尝试时,我得到了
中止:remotestore:largefile XXXXX丢失

下面是详细的输出:

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
\u getfile
函数引发异常,因为
statlfile
命令返回未找到文件

我自己从来没有使用过python,所以在调试这个:D时,我不知道自己在做什么

AFAIK在服务器上执行
statlfile
命令,因此我无法从本地计算机调试它。我曾尝试在服务器上运行python-Mwin32traceutil,但没有显示任何内容。我还尝试在服务器的mercurial配置文件中设置
accesslog
errorlog
,但它没有生成它们


我通过hgweb.wsgi脚本运行hg,我不知道是否/如何使用它进入python调试器,但如果我能在服务器上运行调试器,我可以缩小问题范围…

最终解决了这个问题,扩展尝试将临时文件写入
%windir%\System32\config\systemprofile\AppData\Local
,这会导致权限错误。调用被包装在一个try-catch块中,该块最终返回“未找到文件”错误。

最终解决了这个问题,扩展尝试将临时文件写入
%windir%\System32\config\systemprofile\AppData\Local
,这导致了权限错误。调用被包装在一个try-catch块中,该块最终返回“未找到文件”错误。

我只是为从搜索进入线程的其他人发布此消息

当前,通过IIS托管mercurial python模块时,使用largefiles扩展名会出现问题。查看您是否遇到通过TortoiseHg将大型变更集(或大型文件)推送到IIS的问题


这个问题最终被证明是Python 2.7.3引入的SSL处理中的一个bug(可能解释了为什么有那么多人在寻找Mercurial问题的未解决帖子)。回到Python2.7.2让我更进一步(在30Mb推送而不是15Mb推送时被阻止),但为了正确解决这个问题,我必须安装该实用程序来完全禁用SSLv2上的传输。

我只是为从搜索进入线程的其他人发布这篇文章

当前,通过IIS托管mercurial python模块时,使用largefiles扩展名会出现问题。查看您是否遇到通过TortoiseHg将大型变更集(或大型文件)推送到IIS的问题

这个问题最终被证明是Python 2.7.3引入的SSL处理中的一个bug(可能解释了为什么有那么多人在寻找Mercurial问题的未解决帖子)。回到Python2.7.2让我更进一步(在30Mb推送而不是15Mb推送时被阻止),但是为了正确解决这个问题,我必须安装这个实用程序来完全禁用SSLv2上的传输

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