J’ai cherché partout des instructions correctes sur la façon de faire fonctionner hgwebdir sur IIS mais je n’ai pas trouvé beaucoup de valeur.
Il y a cette étape par étape sur le wiki Mercurial, mais ce n’est pas très bon. Il y a aussi ceci et cela , mais encore une fois, je ne peux pas trouver de bonnes étapes pour mener là où ils commencent.
J’ai juste dû installer une nouvelle instance Mercurial hier, voici les instructions mises à jour pour la version 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 Python est configuré dans IIS.
Vous devrez également créer un fichier nommé “hgweb.config” avec un contenu similaire à celui 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 modifiez la ligne où il définit le chemin d’access à votre hgweb.config à quelque chose comme ce qui suit (où que se trouve le fichier hgweb.config):
config = “C: \ Mercurial \ hgweb.config”
Aussi, consultez le blog de Jeremy Skinners . C’est un peu désuet, mais il y a quelques étapes supplémentaires comme la réécriture d’URL pour des URL plus propres.
Il semble que depuis la sortie de Mercurial 1.5.2, ces tutoriels ne fonctionnent pas correctement. 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 sur eworldui.net :
Ces instructions sont destinées à IIS 7 ou supérieur. Si vous configurez ceci sur IIS 6, j’ai écrit 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 obtenu ce travail, j’ai appris que BitBucket avait modifié son système de tarification pour offrir un hébergement gratuit, illimité et privé: https://bitbucket.org/ . J’aurais opté pour ça quand je travaillais sur ce projet.
J’ai trouvé que le billet de blog de Vampire Basic était un bon début, mais il n’a pas été assez détaillé pour ce que j’étais après.
J’ai créé un article de blog en 4 parties qui vous permet de démarrer à partir de rien avec IIS, y compris l’intégration d’Active Directory, la configuration de privilèges de sécurité pour push / pull, la personnalisation du modèle, mais Il est vrai que Mercurial a été 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 le fonctionnement de Python. Créez un fichier dans votre nouveau dossier HG appelé test.cgi. Collez le code python suivant:
print 'Status: 200 OK' print 'Content-type: text/html' print print '' print '' print 'It works!
' print '' print ''
Ouvrez le navigateur sur votre site, par exemple, http: //localhost/hg/test.cgi
Vous devriez voir “Ça marche!” dans le navigateur.
Suivons le fonctionnement du 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 repos dans les sous-répertoires à \\ server \ share $ \ Hg. L’application Web s’exécutera sous les permissions de l’utilisateur connecté via le navigateur, de sorte qu’ils auront besoin d’permissions de lecture / écriture sur le partage.
La dernière étape consiste à permettre de longues connexions qui peuvent se produire lorsque vous clonez un repo pour la première fois. Exécutez la commande suivante pour augmenter le délai d’attente à 50 minutes:
cd \inetpub\AdminScripts\ cscript adsutil.vbs GET /W3SVC/CGITimeout cscript adsutil.vbs SET /W3SVC/CGITimeout 3000
Utilisez mercurial pour cloner le repository mercurial:
hg clone https://www.mercurial-scm.org/repo/hg/
Vous trouverez hgwebdir.cgi au premier niveau. Il devrait installer comme n’importe quel autre script cgi.
Je me suis battu avec cette configuration pour mercurial 1.7.2 depuis une semaine environ, je devais faire les choses légèrement différemment que les articles ci-dessus pour le faire fonctionner.
Poster ici parce que Google a continué à me ramener ici ….
Instructions complètes affichées ici
J’ai suivi une combinaison de ces instructions et celles – ci (dans la source)
Les principales différences sont que je devais faire l’ installation “pure python” de mercurial, sinon il se serait plaint de l’absence de DLL, et j’ai trouvé important d’utiliser les “installateurs python” pour pywin et isapi-wsgi. (peut-être est-ce évident pour les développeurs de python expérimentés, mais je suis un débutant en python, donc c’était une nouvelle pour moi)
J’espère que cela aide quelqu’un et je ne fais pas que des choses (je pourrais être, comme je l’ai dit, python newbie)
Le livre rouge HG contient des instructions générales bien meilleures que celles que j’ai vues ailleurs. Ils ne sont pas spécifiques à IIS, mais ils sont très bons:
http://hgbook.red-bean.com/read/collaborating-with-other-people.html#sec:collab:cgi
Je courais dans 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 plutôt celui de C: \ Dossier Program Files (x86) \ TortoiseHg.
Ce conseil que j’ai trouvé comme # 6 dans ce guide:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html
J’espère que ça aide quelqu’un …
Vous pouvez essayer HgLab . Ce n’est pas exactement hgwebdir; c’est plutôt une implémentation Mercurial purement gérée avec un serveur push and pull et un navigateur de référentiels.