Frage

Ich bin ein Fossil (und CVS-Konfiguration) Anfänger eine Reihe von verteilten Fossil-Repositories für ein Delphi-Projekt zu erstellen und zu verwalten versuchen.

Ich habe folgenden Verzeichnisbaum auf meiner Entwicklung Maschine:

 Projects
     Some Project
     Delphi Components
        LookupListView
     Some Client
        Some Project For Client
        Some Other Project For Client
           Source Code
               Project Resources
               Project Database

Ich gründe Fossil Versionskontrolle, um Version und Aktien Projects \ Einige Client \ Some Other Projekt für Client \ Source Code, bis die enthält Delphi 2010 Quelle für ein Datenbankprojekt.

Dieses Projekt macht Gebrauch von Projects \ Delphi-Komponenten \ LookupListView, die eine Delphi-Komponente ist. Ich brauche diesen Code auf für mein Projekt in dem Versionierungssystem einbezogen werden. Ich werde in der Theorie, müssen sie in anderer Fossil-Repositorys in der Zukunft als auch aufzunehmen.

Wenn ich meine Fossil-Repository auf dem Quellcode oder eine anderes Projekt für Client-Ebene zu erstellen, kann ich hinzufügen, keinen Code über dieses Niveau zu meinem Repository. Was ist der richtige Weg, damit umzugehen? Die beiden Lösungen, die mir vorkommen, sind

1) ein separates Repository für LookupListView Erstellen und stellen Sie sicher, dass jeder, der für ein Projekt ein Repository verwendet, dass Verweise „weiß“, dass sie auch als auch die aktuelle Version dieses Projekts erhalten müssen. Dies scheint den Zweck, in der Lage zu besiegen eine vollständige, aktuelle Version des Projektes mit einer einzigen Kasse zu erhalten. Das Problem wird vergrößert, weil es andere gemeinsame Komponentenabhängigkeiten in diesem Projekt.

2) Aufbau meines Fossil Repository im Verzeichnis Projekte, so dass ich in Dateien aus verschiedenen Unterordner überprüfen. Das scheint mir sehr viel zusätzlicher Pfad-Typisierung zu beteiligen, wenn fügt tun, und auch meine Verzeichnisstruktur (Einige Client \ Einige andere Projekt für Client \ Source) auf die anderen Nutzer des Endlagers zu verhängen - in diesem Fall, die tatsächlichen Kunden.

geschätzt Anregungen.

War es hilfreich?

Lösung

Ich verwende Git, aber mein Ansatz kann in Ihrer Situation angewandt werden.

Ich habe ein Repository für alle meine Ordner Komponenten. Das gibt mir die Fähigkeit, mit nur wenigen Konsolenbefehlen alle von ihnen zu bekommen (im Fall, wenn ich mein Betriebssystem neu installieren oder auf einem anderen Computer usw. gehen.).

Auch ich habe ein Repository pro jedes meiner Projekte. Wenn einige Projekt 3rd-Party-Steuerelemente verwendet erstellen I „Komponenten“ Unterordner und tun symbolische Links ( Kreuzungen ) von jedem set-Komponenten.

Dieser Ansatz hat einige Nachteile (wenn Sie „zurück“ in Commits Geschichte von einem Projekt, können Komponenten zu geändert werden. Und wenn viele Projekte gleiche Komponenten verwenden könnte dies einige Probleme verursachen). Aber ich hatte keine Probleme noch:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top