J'ai cherché partout des instructions décentes sur la façon de faire fonctionner hgwebdir sur IIS mais je n'ai pas trouvé grand-chose.
Il y a ce "étape par étape" sur le wiki Mercurial, mais ce n'est pas très bon. Il y a aussi this et this , mais encore une fois, je ne trouve pas de bonnes étapes pour les mener à bien.
J'ai juste dû installer une nouvelle instance Mercurial hier, voici les instructions mises à jour pour la 1.7:
hg clone https://www.Mercurial-scm.org/repo/hg/
Créez un dossier qui sera votre dossier d'application Web. Vous devrez copier trois choses dans ce dossier:
Vous devrez vous assurer que vous avez Python configuré dans IIS.
Vous devrez également créer un fichier nommé "hgweb.config" avec un contenu similaire à ci-dessous. Le chemin dans le fichier doit être l'emplacement sur votre lecteur où vous souhaitez stocker les référentiels Mercurial:
[collections]
c:\Mercurial\repos = c:\Mercurial\repos
Modifiez le fichier hgweb.cgi et changez la ligne où il définit le chemin d'accès à votre hgweb.config à quelque chose comme ce qui suit (où que se trouve le fichier hgweb.config):
config = "C:\Mercurial\hgweb.config"
Consultez également article de blog Jeremy Skinners . C'est un peu obsolète, mais a quelques étapes supplémentaires comme la configuration de la réécriture d'URL pour des URL plus propres.
Il semble que depuis la sortie de Mercurial 1.5.2, ces didacticiels ne fonctionnent pas exactement. D'une part, hgwebdir.cgi a été supprimé et est maintenant remplacé par hgweb.cgi.
Les instructions qui ont fonctionné le mieux pour moi sont à eworldui.net :
Ces instructions sont destinées à IIS 7 ou supérieur. Si vous configurez cela sur IIS 6, j'ai rédigé des instructions similaires orientées vers Win2k3 et IIS 6.0:
http://partialclass.blogspot.com/2010/05/setting-up-Mercurial-server-on-win2k3.html
MISE À JOUR: Peu de temps après avoir commencé à travailler, j'ai appris que BitBucket a changé son système de tarification pour offrir un hébergement privé gratuit et illimité: https: // bitbucket.org/ . J'aurais opté pour cela en un clin d'œil lorsque je travaillais à l'origine sur ce projet.
J'ai trouvé que le billet de blog sur Vampire Basic était un bon début, mais il n'était pas entré dans assez de détails pour ce que je cherchais.
J'ai fait un article de blog en 4 parties à ce sujet qui vous permet de démarrer à zéro avec IIS, y compris l'intégration d'Active Directory, la configuration des privilèges de sécurité pour Push/Pull, la personnalisation du modèle, je le reproduirais ici, mais c'est assez longue haleine étant que Mercurial a été vraiment conçu pour être hébergé sur Linux/Apache:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-Mercurial-in.html
Il y a un tutoriel assez bon et complet ici: http://vampirebasic.blogspot.com/2009/06/running-Mercurial-on-windows.html
Voici ce que j'ai fait après avoir fait pas mal de recherches pour obtenir la configuration de hgwebdir.cgi sur IIS6. Il est basé sur les sites suivants:
Vous devrez installer les éléments suivants sur le serveur:
Les étapes pour moi étaient:
Le moment est venu de tester que Python fonctionne. Créez un fichier dans votre nouveau dossier Hg appelé test.cgi. Collez le code suivant python:
print 'Status: 200 OK'
print 'Content-type: text/html'
print
print '<html><head>'
print ''
print '<h1>It works!</h1>'
print ''
print ''
Ouvrez le navigateur sur votre site, par exemple, http: //localhost/hg/test.cgi
Vous devriez voir "Ça marche!" dans le navigateur.
Faisons ensuite fonctionner le hgwebdir.
https://www.Mercurial-scm.org/repo/hg/
application = hgwebdir('hgweb.config') wsgicgi.launch(application)
à
application = hgwebdir('c:\inetpub\wwwroot\hg\hgweb.config') wsgicgi.launch(application)
C'est le bon moment pour le tester. Accédez à l'URL suivante dans le navigateur, http: //localhost/hg/hgwebdir.cgi
[collections] \\server\share$\Hg\ = \\server\share$\Hg\ [web] allow_Push = * Push_ssl = false
Ce sont toutes mes préférences, par exemple, nous avons nos dépôts dans des sous-répertoires sur \\ serveur\partage $\Hg. L'application Web s'exécutera sous les autorisations de l'utilisateur connecté via le navigateur, ils auront donc besoin d'autorisations de lecture/écriture sur le partage.
La dernière étape consiste à autoriser de longues connexions qui peuvent se produire lorsque vous clonez un référentiel pour la première fois. Exécutez la commande suivante pour augmenter le délai d'expiration à 50 minutes:
cd \inetpub\AdminScripts\
cscript adsutil.vbs GET /W3SVC/CGITimeout
cscript adsutil.vbs SET /W3SVC/CGITimeout 3000
Utilisez Mercurial pour cloner le référentiel Mercurial:
hg clone https://www.Mercurial-scm.org/repo/hg/
vous trouverez hgwebdir.cgi au niveau supérieur. Il devrait s'installer comme n'importe quel autre script cgi.
Je me bats avec cette configuration pour Mercurial 1.7.2 depuis une semaine environ, j'ai dû faire les choses légèrement différemment des articles ci-dessus pour le faire fonctionner.
Publier ici parce que Google ne cessait de me ramener ici ....
Instructions complètes affiché ici
J'ai suivi une combinaison de ces instructions et ces (dans la source)
Les principales différences sont que je devais faire l'installation "pure python" de Mercurial sinon il se plaindrait des dll manquants, et j'ai trouvé qu'il était important d'utiliser les "installateurs python" pour pywin et isapi- wsgi. (peut-être que cela est évident pour les développeurs expérimentés python, mais je suis un débutant python novice, c'était donc une nouvelle pour moi))
J'espère que cela aide quelqu'un et je ne fais pas que des trucs (je pourrais être, comme je l'ai dit, python newbie)
Je rencontrais une erreur de type "... impossible de charger le module ..." et après quelques lectures, la clé pour moi était d'ignorer le fichier Library.Zip dans le dossier Mercurial, et d'utiliser à la place celui de C:\Dossier Program Files (x86)\TortoiseHg.
Cette astuce que j'ai trouvée # 6 dans ce guide:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-Mercurial-in.html
J'espère que cela aide quelqu'un ...
Le livre rouge hg contient des instructions générales bien meilleures que celles que j'ai vues ailleurs. Ils ne sont pas IIS spécifiques, mais ils sont assez bons:
http://hgbook.red-bean.com/read/collaborating-with-other-people.html#sec:collab:cgi