2010-11-18 14 views
1

Wir arbeiten an einem großen Projekt in 4 Teams organisiert (Website, Server, Applet, Deployment). Manchmal müssen Mitglieder jedes Teams kleinere Änderungen am Code des anderen Teams vornehmen (): Ein Mitglied aus dem Applet-Team muss ein Feld auf der Website hinzufügen, oder ein Mitglied des Serverteams muss ein Bereitstellungsskript ändern).Mehrere Mercurial-Repositories oder ein einzelnes mit Klonen

Momentan hat jedes Team sein eigenes Merkur-Repository, und wir verwenden die Versionsnummer, um Abhängigkeiten zwischen Teams zu organisieren. (Die Applet-Version 3.4 auf die Website Version 1.7 benötigt)

Ich denke, dass unsere Quecksilber-Organisation nicht optimal ist, ist meine Idee, ein großes Mercurial Repository MASTER, zu haben, die, in WEBSITE geklont wird SERVER, APPLET und EINSATZ. Jedes Mitglied eines jeden Teams kann Zugriff auf den Code anderer haben und sie sind aufgrund der unterschiedlichen Klone nicht vom Commit anderer Teams betroffen.

Was denkt die SO-Gemeinde darüber?

Antwort

3

Sie sollten separate Repositories für separate Komponenten und andere separate Repos für alle Teile zwischen den Komponenten (Bibliotheken wenn Sie so wollen) pflegen. Verwenden Sie dann die Funktion subrepository, damit die Komponentenreposibles das freigegebene Material enthalten.

Alles in einem großen Repo zu verschmelzen funktioniert gut in Svn, aber in Mercurial oder irgendeinem DVCS, Sie sind besser dran mit einer Zusammensetzung von kleineren Repos.

+0

+1 stimme ich zu. In der Tat versuche ich ein Framework-Projekt genau so zu organisieren. Jedes Projekt hat sein eigenes separates Repo. Dann habe ich ein anderes Repo, das alle Repos sammelt, indem ich die Subrepo-Features verwende. Um jedes Projekt auf die Position anderer Projekte als Abhängigkeiten aufmerksam zu machen, dachte ich zuerst daran, Subrepos in sich zu verwenden, aber es fühlte sich falsch an. Ich versuche, eine CMake-basierte Organisation einzurichten, die es ermöglicht, unabhängig an separaten Projekten zu arbeiten (indem CMake-Pfadvariablen für Abhängigkeiten bereitgestellt werden) ODER den "Haupt" -Repo zu erhalten, der alles enthält (in Subrepo und CMake-Pfaden bereits festgelegt) – Klaim

Verwandte Themen