Trình duyệt Mercurial trên Windows 2003 có một số lần làm mới trước khi hiển thị kho


8

Khi cố gắng duyệt các kho lưu trữ Mercurial của tôi, nó thường mất vài lần làm mới trước khi danh sách kho được hiển thị. Cấu hình như sau:

  • Windows Server 2003 (Máy chuyên dụng được lưu trữ bởi http://www.server4you.com/ .
  • Trang web có bảo vệ mật khẩu ẩn danh với SSL tự ký.
  • Mercurial 1.5.3
  • Python 2.6.5
  • Python cho Windows 32 tiện ích mở rộng 214 py2.6
  • isapi-wsgi 0.4.2

Các kho lưu trữ đang được phục vụ qua ISAPI bằng cách sử dụng tệp hgwebdir_wspi.py tiêu chuẩn (sao chép để theo dõi).

Ngoài ra trước khi thực hiện sao chép / đẩy / vv, tôi phải duyệt các kho lưu trữ trước nếu không hg trên máy cục bộ của tôi không thể định vị trang web.

Tôi có thể làm gì để bắt đầu theo dõi vấn đề này?

hgwebdir_wsgi.py

# Configuration file location
hgweb_config = r'C:\Public\Mercurial\WebSite\hgweb.config'

# Global settings for IIS path translation
path_strip = 0   # Strip this many path elements off (when using url rewrite)
path_prefix = 0  # This many path elements are prefixes (depends on the
                 # virtual path of the IIS application).

import sys

# Adjust python path if this is not a system-wide install
#sys.path.insert(0, r'c:\path\to\python\lib')

# Enable tracing. Run 'python -m win32traceutil' to debug
if hasattr(sys, 'isapidllhandle'):
    import win32traceutil

# To serve pages in local charset instead of UTF-8, remove the two lines below
import os
os.environ['HGENCODING'] = 'UTF-8'


import isapi_wsgi
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb.hgwebdir_mod import hgwebdir

# Example tweak: Replace isapi_wsgi's handler to provide better error message
# Other stuff could also be done here, like logging errors etc.
class WsgiHandler(isapi_wsgi.IsapiWsgiHandler):
    error_status = '500 Internal Server Error' # less silly error message

isapi_wsgi.IsapiWsgiHandler = WsgiHandler

# Only create the hgwebdir instance once
application = hgwebdir(hgweb_config)

def handler(environ, start_response):

    # Translate IIS's weird URLs
    url = environ['SCRIPT_NAME'] + environ['PATH_INFO']
    paths = url[1:].split('/')[path_strip:]
    script_name = '/' + '/'.join(paths[:path_prefix])
    path_info = '/'.join(paths[path_prefix:])
    if path_info:
        path_info = '/' + path_info
    environ['SCRIPT_NAME'] = script_name
    environ['PATH_INFO'] = path_info

    return application(environ, start_response)

def __ExtensionFactory__():
    return isapi_wsgi.ISAPISimpleHandler(handler)

if __name__=='__main__':
    from isapi.install import *
    params = ISAPIParameters()
    HandleCommandLine(params)

hgweb.config

[paths]
/ = C:\Public\Mercurial\Repositories\*

[web]
allow_archive = bz2 gz zip      ; Allows archive downloads.
allow_push = ########       ; Users that are allowed to push.

Hành vi bạn mô tả thật kỳ lạ ... Tôi chưa bao giờ thấy Mercurial hành xử như vậy. Tôi đã hỏi mọi người trên G + nếu họ có thể giúp đỡ. Nếu tôi là bạn, thì tôi sẽ viết mercurial@selenic.com để xem liệu có ai đó có thể giúp gỡ lỗi này không.
Martin Geisler

Câu trả lời:


1

Có vẻ như IIS 6 đang lưu trữ các trang web của bạn (bạn không xác định được mình có sử dụng Apache hay không, vì vậy tôi giả sử đó là máy chủ Windows)

Sử dụng liên kết này từ Microsoft và đặt trang web thành Hết hạn ngay lập tức .


0

Một cái gì đó lưu trữ trên đường. Sử dụng curl hoặc wget để lấy trang và kiểm tra các tiêu đề http. Có tốt hơn nếu không có ssl?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.