Ich benutze Mercurial schon eine Weile, aber hauptsächlich für meinen eigenen Gebrauch. Jetzt habe ich jedoch ein Projekt, an dem ich arbeite, in dem zwei von uns dasselbe Projekt erstellen, und wir werden wahrscheinlich die Dateien des anderen ändern.
Ich möchte ein Mercurial-Repository auf einem Server einrichten und dieses Repository zum "Server" machen, damit meine Änderungen und die Änderungen des anderen Editors beide auf diesen Server übertragen werden (also im Grunde das Subversion / CVS- Modell). Ich mag Mercurial und möchte nicht zu etwas wie Subversion wechseln.
Hier in meinem eigenen Netzwerk wird alles unter Linux erledigt und auf meinem "Server" ist OpenSSH installiert. Das Übertragen meiner Änderungen (ich arbeite auf mehreren Computern) von einem Computer auf den Server ist also nur eine Frage von "hg push". Das verwendete Protokoll ist SSH zum Übertragen der Änderungen.
Das Problem ist, dass ich Linux verwende, der Server Windows ist (also kein OpenSSH, oder?) Und der andere Editor auch Windows verwendet. Soweit ich weiß, besteht die beste Art, in Mercurial bei solchen Setups zu arbeiten, darin, dass das Repository Änderungen aus der Quelle abruft und nicht die Quelle auf den "Server" überträgt. Ich bin hinter mehreren Firewalls (nicht ganz meinem Netzwerk) und mein Computer ist vom Server aus nicht sichtbar. Ich gehe davon aus, dass sich auch der andere Editor hinter einer Firewall befindet (wir können also nicht einfach das lokale Mercurial starten HTTP-Server und lassen Sie den "Server" -Computer daraus ziehen).
Wie können beide Editoren unsere Änderungen am Server-Repository am besten abrufen? (Ich sollte hinzufügen, dass der Server ein Server im Internet ist, also genauso sichtbar wie so etwas wie google.com
. Es ist ein gehosteter Windows-Server, aber ich hätte wahrscheinlich die Erlaubnis, Software zu installieren, wenn dies erforderlich ist.)
quelle
Antworten:
Ich schlage Kiln von www.fogbugz.com vor . Es ist eine kommerzielle Versionskontrolllösung, im Grunde ein Windows-Wrapper mit Mercurial unter der Haube.
Update 2020-10-24
Vor 11 Jahren war Mercurial vielleicht eine praktikable Lösung, aber nicht mehr: Git funktioniert einfach.
quelle
Ich halte das Lesen der Projektdokumentation für einen guten Anfang: https://www.mercurial-scm.org/wiki/PublishingRepositories .
quelle
Es könnte auch die Verwaltung vereinfachen, es auszulagern - wenn Sie nur ein Repository haben und ein paar Leute es schieben / ziehen, könnten Sie viel schlimmeres tun, als es nur irgendwo wie Bitbucket zu hosten . (Und für eine One-Repository-Lösung ist es tatsächlich kostenlos.)
Update: Es ist jetzt 2020 und Bitbucket unterstützt Mercurial nicht mehr, siehe: https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket
Eine Liste der gehosteten oder selbst gehosteten kostenlosen oder kostenpflichtigen Lösungen finden Sie unter https://www.mercurial-scm.org/wiki/MercurialHosting
quelle
Werfen Sie einen Blick auf Rhodecode , einen Open-Source-Mercurial-Server mit vielen Funktionen, die Kiln bietet, einschließlich der Codesuche . Es lässt sich sogar gut in LDAP integrieren, sodass Sie HG-Benutzer bei Ihrer Windows-Domäne authentifizieren können.
quelle
Update: Es ist jetzt 2020 und Bitbucket unterstützt Mercurial nicht mehr, siehe: https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket
Eine Liste der gehosteten oder selbst gehosteten kostenlosen oder kostenpflichtigen Lösungen finden Sie unter https://www.mercurial-scm.org/wiki/MercurialHosting
Ich empfehle, Ihr Projekt auf http://bitbucket.org/ , einer Hosting-Site für Mercurial-Repositorys, zu platzieren.Wenn Sie nicht möchten, dass die Quelle von anderen gesehen wird, haben sie Einstellungen zum Erstellen privater Repositorys. Ich denke, du darfst ein privates Repository, bevor sie dir das in Rechnung stellen.
Bearbeiten: Bitbucket bietet jetzt unbegrenzt private / versteckte Repositorys.
quelle
Es gibt sicherlich viele SSH-Server für Windows. Hier sind zwei Beispiele:
Lesen Sie die Putty- Beispiele im Mercurial: The Definitive Guide- Handbuch für die Windows-Benutzerkonnektivität.
quelle
Sie können SCM-Manager verwenden , um Ihre Repositorys über http oder https freizugeben.
quelle
Mercurial and PuTTY ist eine gut unterstützte und gut dokumentierte Lösung.
quelle
Die einfachste Lösung scheint darin zu bestehen, freigegebene Samba-Ordner zu verwenden, insbesondere in einer Nur-Windows-Umgebung. Ich habe es gerade eingerichtet, scheint zu funktionieren.
quelle
Ich habe es selbst nicht benutzt, aber schauen Sie sich Mercurial Server von LShift an.
quelle
Unser Setup: Windows Server + Apache + Mercurial
Teil unserer http.conf
Es müssen andere Dateien eingerichtet werden, z. B. hgweb.conf / htpasswd / hggroups, aber sie sind der einfache Teil.
Es hat ziemlich gut funktioniert. Wenn ein Benutzer das Passwort ändern möchte, werde ich ihn bitten, zu einem Online-htpasswd-Generator zu gehen, um die htpasswd-Sequenz für mich zu generieren. Ich werde sie in die htpasswd-Datei einfügen.
Ich denke, unser Setup ist dem von VisualSvn Server ziemlich ähnlich. (natürlich eine stark vereinfachte Version)
quelle
Geben Sie einen Dropbox- Ordner frei, der Ihr 'Server-Repository' enthält.
quelle
Es gibt keine "beste Arbeitsweise", die ich kenne? Es gibt eine Vielzahl möglicher Arbeitsabläufe, die Mercurial unterstützt, und die sogar in ihrem Handbuch aufgeführt sind . Ich verwende tatsächlich das "svn-ish" -Setup, bei dem ich in einem lokalen Repository entwickle und mehrere Repositorys auf einem gemeinsam genutzten Server habe. Wenn es Änderungen gibt, schiebe ich sie in das zentrale Repository. Ich schiebe sie über HTTPS und habe (natürlich) die Push-Fähigkeiten nur auf Entwickler beschränkt. Es ist eine großartige Arbeitsweise.
Ich kann verstehen, dass die Leute möchten, dass das zentrale Repository die Änderungen von den von den Entwicklern vorgenommenen Klonen übernimmt, aber nichts hindert Sie daran, sich und Ihrem Kollegen ein dediziertes Repository auf dem gemeinsam genutzten Server zu geben, von dem aus das zentrale Repository stammt ist zu Pull Lage .
Vielleicht möchten Sie Ihre Gedanken zu diesem Thema überdenken?
quelle
Im Jahr 2020 können Sie Heptapod verwenden:
https://about.heptapod.host/
Dies ist eine Lösung, die auf Gitlab basiert. Sie bieten eine gehostete Lösung, aber Sie können sie auch herunterladen und auf Ihrer eigenen Infrastruktur hosten.
https://heptapod.net/heptapod-commercial-service-enters-free-public-beta.html#heptapod-commercial-service-enters-free-public-beta
quelle