2009-05-11 18 views
4

Gibt es eine stabile Methode, um ein Repo von SVN als Teilmenge eines anderen beibehalten zu können.Subversion-Sub-Repository

I kann über Folgendes verfügen:

  1. phpCodeRepo
  2. pyCodeRepo
  3. contentRepo

so dass 1 und 2 haben kann, als Element der repo, einige Daten von repo 3. So dass Aktualisierung 3 eine (optionale) Versionsinkrement in 1 und 2 verursachen würde. Und beim Auschecken von 1 oder 2 wird auch die richtige Version von 3 auschecken.

+0

Die Methode 'Hooks' erlaubt mir, ein Shell-Skript auszuführen, das besagt: "Soll phpCodeRepo und pyCodeRepo das neue Update verwenden" und dann einige Daten in jedem Repo ändern (Versionsnummer des zugehörigen Inhalts). Wenn sie dann php oder py auschecken, können sie auch ihren zugehörigen Inhalt auschecken! –

+0

Warum möchten Sie separate Repositories? Normalerweise ist es für eine konsistente Versionierung einfacher und besser, alle Teilprojekte in einem einzigen Repository abzulegen. Wenn Sie sie getrennt aufbewahren müssen, können Sie für jedes Unterprojekt separate Unterverzeichnisse verwenden, die Stamm, Zweige usw. enthalten. – starblue

+0

Weil der Inhalt zwischen Anwendungen geteilt wird, die kommen und gehen, unabhängig voneinander. Ich kann mir nichts dreckigeres vorstellen, als ein ganz separates Projekt, das sich im selben Repo befindet (mit verschiedenen Entwicklungsmodellen, Entwicklern und was auch immer), weil sie auf einem gemeinsamen Projekt beruhen, das selbstständig entwickelt wird. Warum teilt Gnome nicht auch den libc Repo;) –

Antwort

4

Sie möchten hooks

auch mit implementieren, können Sie in anderen repos ziehen, wenn Sie externals

+0

Danke, scheint gut. War nicht bewusst, dass ein externes Programm aufgerufen werden könnte. Vermutlich (zu Unrecht) war es ein internes Ereignis. –

1

Das ist ziemlich einfach: Fügen Sie Ihrem Root-Repository 3 Ordner hinzu (phpCodeRepo, pyCodeRepo, contentRepo). Vielleicht möchten Sie auch in branching suchen.

+0

Dies berücksichtigt nicht das (optionale) rev Inkrement ... –

+0

Ich benötige jedes Repo als unabhängige Subversion Basis –

4

svn:externals mit Check-out könnte eine Antwort sein. Es funktioniert jedoch nur auf Ordnerebene, sodass Sie einen Ordner für mehrere Repositorys freigeben können, dies jedoch nicht für einzelne Dateien.

+0

Danke Vadim; Ich habe deinen Kommentar nicht gesehen, bevor ich diesen zu meinem Post hinzugefügt habe ... Entschuldigung. +1 –

+0

Danke Vadim, das scheint auch nützlich zu sein! –

+0

Ich halte Johns bei der Antwort, da der Hauptpunkt die optionale Relation des Inhalts zu den anderen Repos beim Commit ist, was ein schnelles Shell-Skript erlauben würde. :) –