2010-05-01 13 views
13

Ich bin neu bei Mercurial und versuche herauszufinden, ob es SVN ersetzen könnte. Jeder, mit dem ich arbeite, hat SVN, CVS und VSS (Shiver) benutzt, also könnte das eine ziemlich große Veränderung sein. Ich war sehr interessiert nach dem Lesen über seine Merge und Branch-Fähigkeit, aber habe ein paar Vorbehalte.Wie konfiguriere ich am besten ein zentrales Repository/mehrere zentrale Repositories für Mercurial?

Wir sind derzeit auf SVN, und haben ein zentrales Repository. Aus meiner Sicht scheint es, dass es bei Verwendung von Mercurial kein zentrales Repository für alle Projekte gibt. HINWEIS: Wir betrachten jedes Projekt als separaten logischen Code oder als Visual Studio Solution. Es läuft alleine.

Wir haben ungefähr 60 separate Projekte in unserem zentralen SVN-Repository. Nach dem Lesen von Mercurial scheint es mir, dass ich 60 separate zentrale Repositories für jedes dieser Projekte auf dem Server erstellen muss. FRAGE # 1: Soll ich für jedes Projekt ein einzelnes Repository erstellen?

Wenn ja, dann mache ich mir Sorgen, 60 separate Mercurial-Server zu konfigurieren und zu hosten. Ich begann zu denken, ich könnte eine Datei konfigurieren, aber es scheint, als ob jedes Repository individuell konfiguriert werden muss mit der Datei "C: ... \ MyRepository.hg \ hgrc" (Windows-Installation). Es scheint auch so, als müsste ich 60 Server betreiben (> hg serve), würde ich an verschiedenen Ports vermuten. FRAGE # 2: Wenn die Antwort auf Frage 1 "Ja" lautet, sollte es für jedes Projekt ein zentrales Repository geben. Wie haben die Leute dann viele multiple Repositories verwaltet?

Schließlich habe ich nicht in den Umzug aller Geschichte und Änderungen von einem SVN-Repository zu einer Reihe von separaten Mercurial-Repositorys, aber würde sich über Kommentare von jemandem, der dies getan hat (oder wenn es überhaupt möglich ist).

Antwort

11

Mercurial unterstützt "zentrale Repositories" gut, aber es macht sie eher durch Konvention als durch Fiat.

Sie müssen nur einen einzigen Server ausführen, um alle sechzig Repositories auszuführen, und Sie würden hg serve dafür nicht verwenden. Stattdessen wählen Sie eine der Produktionsqualitätsmethoden aus among the publishing options. Wahrscheinlich werden Sie hgwebdir hinter Apache, Nginx oder IIS je nach Ihren Einstellungen ausführen.

Sobald das ausgeführt wird, können Sie neue Repositories mit hg init oder hg clone innerhalb Ihres Repositories-Verzeichnisses erstellen. Bei einem früheren Arbeitgeber hatten wir fünf Produkte mit jeweils einem "zentralen" Repository und zehn bis zwanzig Clones für verschiedene Teams und Funktionen, die alle in einem einzigen Server ausgeführt wurden. Das zentrale Repo legt fest, "was offiziell ist", aber Sie werden improvisierte Repos für inoffizielle Features finden, die immer wieder auftauchen.

hg serve ist für zwei Entwickler, um einige Changesets in Eile zu übergeben, aber veröffentlichte Repos erfordern ein wenig mehr Gerüstbau.

6

Sie erstellen ein zentrales Repo pro Projekt. Wenn ich Sie wäre, würde ich über Hosting über Kiln denken. Es enthält sehr gute Review-Tools und ein nettes Web-Interface rund um Mercurial mit unbegrenzten Repositories und Speicherplatz. Sie kümmern sich um all die hässlichen Teile von Hosting und Backup für Sie. Ich würde auch sehr empfehlen Joel's Mercurial tutorial.

0

In der einfachsten Weise würden Sie 60 zentrale "Repositories" benötigen, die alle mit einem Inhalt/Webserver bedient werden können. Jedes Repository kann als ein Verzeichnis mit einem Pfad vom Stamm des Server-Containers behandelt werden.

Denken Sie an bitbucket oder github.Sie dienen Tausenden von Repositories unter einem Server (oder höchstwahrscheinlich einer Serverfarm), sind jedoch unabhängig voneinander, im Gegensatz zu SVN, wo sich alles unter einem riesigen Repository befindet und Revisionsinkremente gemeinsam nutzen.

2

Wenn Sie etwas Eigenes suchen, werfen Sie einen Blick auf http://rhodecode.org es ist viel mächtiger als reines hgweb. Es ist wie ein kleines Bitbucket nur selbst gehostet.