Hosting Mercurial HG via VisualSVN Server

后端 未结 4 954
鱼传尺愫
鱼传尺愫 2021-02-04 20:49

I have tried to host a Mercurial HG repository using a Scriptalias.

ScriptAlias /hg/ \"htdocs/hgwebdir.cgi\"

If I go to Chrome it display the contents of the cgi

相关标签:
4条回答
  • 2021-02-04 21:13

    You can run hgwebdir behind different authentication and https modules just fine, provided your webserver handles them before the REMOTE_USER variable is handed off to the CGI.

    I don't know visualsvn, but your ScriptAlias looks a lot like Apache. Do you need an AddHandler line for .cgi?

    0 讨论(0)
  • 2021-02-04 21:14

    Here's a alternative setup using mod_wsgi (fast!), combined repository directory, and you can manage Mercurial repository level access from the VisualSVN Server GUI.

    Download mod_wsgi.so for Apache 2.2 Win32 and place in "C:\Program Files\VisualSVN Server\bin".

    Copy hgwebdir.wsgi from your Mercurial installation (contrib directory) to "C:\Program Files\VisualSVN Server\". It should look something like this:

    import sys
    sys.path.insert(0, "C:\Program Files\Mercurial\library")
    from mercurial.hgweb.hgwebdir_mod import hgwebdir
    application = hgwebdir('hgweb.config')
    

    Create the config file "C:\Program Files\VisualSVN Server\hgweb.config".

    [paths]
    / = c:/Repositories/*
    

    Paste the following in "C:\Program Files\VisualSVN Server\conf\httpd-custom.conf". You should adjust the Auth* values based on the section of httpd.conf.

    LoadModule wsgi_module bin/mod_wsgi.so
    WSGIScriptAlias /hg "hgwebdir.wsgi"
    
    <Location /hg/>
        AuthName "Mercurial Repositories"
        AuthType VisualSVN
        AuthzVisualSVNAccessFile "C:/Repositories/authz-windows"
        AuthnVisualSVNBasic on
        AuthnVisualSVNIntegrated off
        AuthnVisualSVNUPN Off
    
        SVNParentPath "C:/Repositories/"
    
        require valid-user
    </Location>
    

    Create a Mercurial repository:

    hg init C:\Repositories\hgtest
    

    You should now be able to access /hg through your browser, and manage repository level authorization through the VisualSVN Server tool.

    0 讨论(0)
  • 2021-02-04 21:27

    Assuming you have Python 2.6 installed and working, here are the steps that I took.

    Obtain "mod_cgi.so" built for Apache 2.2 Win32 and place it in "C:\Program Files\VisualSVN Server\bin".

    Paste the following in "C:\Program Files\VisualSVN Server\conf\httpd-custom.conf"

    LoadModule cgi_module bin/mod_cgi.so
    ScriptAliasMatch ^/hg(.*) "cgi-bin/hgweb.cgi$1"
    

    Create the cgi-bin directory, "C:\Program Files\VisualSVN Server\cgi-bin". And place hgweb.cgi in it. Make sure it looks similar to the following:

    #!c:/Python26/python.exe -u
    
    import sys
    sys.path.insert(0, "C:\Program Files\Mercurial\library")
    
    import cgitb
    cgitb.enable()
    
    from mercurial.hgweb.hgwebdir_mod import hgwebdir
    import mercurial.hgweb.wsgicgi as wsgicgi
    
    application = hgwebdir('hgweb.config')
    wsgicgi.launch(application)
    

    Create a file called hgweb.config in the cgi-bin directory.

    [paths]
    / = c:/HgRepositories/*
    

    Copied "C:\Program Files\Mercurial\templates" to "C:\Program Files\Mercurial\library\templates".

    Create "C:\HgRepositories" folder and "hg init c:\HgRepositories\test".

    Restart VisualSVN Server, open browser, enjoy your Mercurial repository.

    0 讨论(0)
  • 2021-02-04 21:31

    Starting with version 1.6 of Mercurial, the hgwebdir.wsgi script has been unified with the hgweb.wsgi script. Wherever hgwebdir.wsgi is referred to in these directions, you can substitute the hgweb.wsgi script instead.

    https://www.mercurial-scm.org/wiki/modwsgi

    0 讨论(0)
提交回复
热议问题