2013-02-06 2 views
6

Ich habe hier eine Menge Q/A über die Bedeutung der Verzeichnisse "branch", "tag" und "trunk" gelesen die SVN-Repos, und wie ich jetzt glaube, habe ich verstanden, versuche ich es zu implementieren.Implementierung von SVN "branch", "tag" und "trunk" mit Composer und Config-Datei

Ich benutze Virtualmin, um meinen Server zu verwalten, und er erstellt Repos für mich über seine Web-GUI. Nach der Erstellung ist mein Repo jedoch leer, daher muss ich die Verzeichnisstruktur selbst erstellen und festschreiben. Sobald ich fertig bin, lege ich die Dateien meines Projekts in trunk ab, und wenn ich in einem stabilen Versionszustand bin, sollte ich es zu branch/xxx verzweigen (was ein Rettungspunkt in meiner Entwicklung sein wird), und zu tags/xxx (was sein wird meine Entwicklungsversion).

Wenn ich bis hier richtig bin, dann wechsle ich mit Tortoise zu meinem neuen Tag, und das ist nur das, was bei meinen nächsten Commits geändert wird. Übrigens, muss ich bei Tortoise mit der rechten Maustaste auf das aktuelle Tag-Verzeichnis klicken oder kann ich immer noch direkt aus dem Stammordner meines Projekts heraus Commit/Revert ausführen?

Mein aktuelles Projekt hat eine Konfigurationsdatei, die ein paar absolute Pfade definiert - vielleicht ist es falsch, aber ich habe keine Möglichkeit gefunden, es zu vermeiden. Da ich sehen möchte, dass mein Projekt von einem dieser Zweige/Trunk läuft, bedeutet das, dass ich für jede Version eine andere Konfigurationsdatei benötige? Wenn ja, sollte ich diese Datei zur Ignorierliste hinzufügen? Ich meine, was wäre eine gute Praxis?

Zusätzliche Frage: Wenn ich in diesem Fall Composer verwenden möchte, wo sollte mein composer.json und Lieferantenverzeichnis sein?

Danke!

Antwort

8

Sie verwechseln Tags und Zweige. Tags sollen nicht verändert werden. Sie werden normalerweise jedes Mal erstellt (aus dem Stamm oder aus einer Verzweigung), wenn Sie Ihre Anwendung freigeben.

Zweige werden verwendet, um laufende Arbeiten zu speichern.

Sie sollten das Stammverzeichnis zu einer Arbeitskopie auschecken. Um zu einer Verzweigung zu wechseln, verwenden Sie den Befehl switch. Es gibt keinen Grund, separate Konfigurationsdateien für jeden Zweig zu haben, da Ihre Arbeitskopie am selben Ort auf das verweist, was Sie wollen: einen Stamm, eine Verzweigung oder sogar ein Tag. Der entscheidende Punkt ist, dass die Wurzel des Arbeitskopie sollte die Wurzel Ihres Projekts sein:

So nehme Ihre Projektdateien enthält die folgenden Dateien:

index.php 
config.txt 
some_folder 
    foobar.php 

Ihr Repo das folgende Layout würde:

trunk 
    index.php 
    config.txt 
    some_folder 
     foobar.php 
branches 
    maintenance_1.0 
     index.php 
     config.txt 
     some_folder 
      foobar.php 
    feature_refactor_index_page 
     index.php 
     config.txt 
     some_folder 
      foobar.php 
tags 
    v1.0 
     index.php 
     config.txt 
     some_folder 
      foobar.php 

Und würde der Arbeitskopie sein:

MyProject --> references trunk 
    index.php 
    config.txt 
    some_folder 
     foobar.php 

Wenn Sie möchten, Arbeiten an dem Funktionszweig, wechseln Sie in den Zweig, und die Arbeitskopie wird dann

MyProject --> references feature_refactor_index_page 
    index.php 
    config.txt 
    some_folder 
     foobar.php 

So wäre es exacttly gleich sein, und es gibt keinen Grund für die Konfigurationsdatei unterschiedliche Dateipfade zu enthalten.

+0

Verstanden! Vielen Dank! :) – Nabab

Verwandte Themen