2011-03-03 8 views
15

Bir Windows sunucusunda mercurial kullanmak istiyorum. Http, hg serve aracılığıyla çekmek ve itmek istediğim için en kolay çözüm gibi görünüyor. İyi çalışıyor, ancak her yeniden başlatmadan sonra yeniden başlatıyorum, bu yüzden bir Windows servisi olarak ihtiyacım var. sc create ... ile elle yükleme çalışmadı, ben başlatmaya çalıştığımda bir hata veren bir hizmet oluşturdu. Ben hg, Windows hizmetlerini kullanmaktadır

  • https://bitbucket.org/andrearicossa/hgservice
    • https://bitbucket.org/tortoisehg/stable/issue/1245/configure-hg-serve-to-run-as-a-windows-service-from
    • bu soruna bazı referanslar buldum ama onlar kötü hiç değilse belgelenmiştir. (Tabii ki bir web sunucusu kurabilir ve hgweb kullanabilirim, ancak daha da karmaşık görünüyor.) Bir Windows servisi olarak kolayca hg serve ... <many args> nasıl kurulacağına dair herhangi bir deneyiminiz var mı?

      GÜNCELLEME: Farklı yaklaşımlar için teşekkürler. Biz hg serve ile kaldı, şirketimizdeki windows-guy, oldukça uygun olmayan bir hizmet olarak yüklemeyi başardı.

    +2

    Jeff'in [svnserve örneği için sc yaratıcısı] (http://www.codinghorror.com/blog/2008/04/setting-up-subversion-on-windows.html) benim için çalıştığı codinghorror ve birden fazla hata var orada - bunu şablon olarak kullanabilirsiniz. Sonra, sc'nin "abc = value" arasındaki boşluklar hakkında çok seçici olduğunu anladım. – Rup

    cevap

    3

    Bu konuda Jerremy Skinner his blogpost ürününü incelemelisiniz. IIS7'deki Mercurial depoları nasıl barındıracağınızı ve güzel bir URL yönlendirmeyi nasıl kullanabileceğinizi açıklıyor. Makinemde yaptım ve bir çekicilik gibi çalışıyor. Bazı yapılandırmalar alır, ama buna değer.

    Mesajdaki 1 hata farkettim ki o bir hgwebdir.cgi hakkında yazmak, ama bunu bulamadık. hgweb.cgi'u buldum, bu dosyayla kopyala yapıştırmayı yaptım.

    +4

    hgwebdir.cgi, revizyon 1.6 ile hgweb.cgi olarak yeniden adlandırıldı. –

    4

    Yoksa SCM-Manager

    +1

    Bu, Windows üzerinde denediğim HG depolarını sunmanın en kolay yoludur. Başlangıç ​​bat dosyası, uygulamayı bir windows hizmeti olarak yükleyecek bir yükleme parametresine sahiptir. Çok hoş. –

    5

    böyle kimlik doğrulaması veya HTTPS desteği gibi özellikleri bir sürü verir. Ama 'hg servis' basit ve hızlı bir çözümdür. Ayrıca, 'hg servisi' çoklu depolara hizmet verebilir. Ancak, Windows hizmet komutlarına yanıt veremediği için hg hizmeti bir Windows hizmeti olarak çalıştırılamaz. Yani, HgService kullanmak, 'hg sunumunu' gerçek bir Windows hizmeti yapmak için iyi bir çözümdür.

    Yapılandırmamın bir örneği. İçine klasör ve gerektiğinde koymak repo:

    • Oluştur \ "Depoları C" HgService
    • yükleyin TortoiseHg
    • yükleyin: Aşağıdaki adımları takip etti. Aşağıdaki içeriği ile: "\ Depoları \ hgweb.config C":
    • oluştur
    [paths] 
    /= C:\Repositories\* 
    
    [web] 
    style = monoblue 
    
    • Değiştir HgService.exe.C yapılandırma: \ Program Files \ Mercurial \ HgService
    <add key="CommandLine" value="hg.exe"/> 
    <add key="CommandLineArguments" value="serve --prefix=/hg --address 0.0.0.0 --port 80 --web-conf c:\Repositories\hgweb.config -A access.log -E error.log" /> 
    
    • Başlat hizmeti eylem bu dizi de size yardımcı olacaktır

    Umut.