0

Wir aktualisieren unsere Quellcodeverwaltung (am wahrscheinlichsten Vault) bei der Arbeit und sind auf die Zweig-Methodik, und haben einige Probleme mit der Ausarbeitung der Ordnerstruktur zu verwenden.Repository Ordnerstruktur und automatisiertes Gebäude von dieser Struktur

Wir beabsichtigen, den Trunk als Entwicklungslinie zu verwenden, und ein Zweig wird eine Veröffentlichung und Fehlerbehebungen für diese Version sein.

Wir haben mit zwei Ordnerstrukturen kommen, und ich wollte wissen, was die Vor- und Nachteile der einzelnen waren:

Projects 
    |-> Trunk 
    |-> Data Access 
    |-> Business 
    |-> Desktop 
    |-> Website 
    |-> Branches 
    |-> Branch 01 
     |-> Data Access 
     |-> Business 
     |-> Desktop 
     |-> Website 

und

Projects 
    |-> Data Access 
    |-> Trunk 
    |-> Branches 
     |-> Branch 01 
    |-> Business 
    |-> Trunk 
    |-> Branches 
     |-> Branch 01 
    |-> Desktop 
    |-> Trunk 
    |-> Branches 
     |-> Branch 01 
    |-> Website 
    |-> Trunk 
    |-> Branches 
     |-> Branch 01 

Wenn wir auf eine Quellensteuerblock verwenden die Baumaschine (cruisecontrol.net) mit der ersten Lösung können wir sagen:

<path>$\Projects\trunk\</path> 

Um einen Zweig zu erstellen, wäre ziemlich ähnlich, aber ist es möglich, den neuesten Zweig im Ordner branches abholen? Andernfalls müssten wir die ccnet-Konfiguration für jedes Release bearbeiten.

Wenn die zweite Methode verwendet würde (viele Leute schlagen diese Methode vor), wie würde die Baumaschine alle relevanten Projekte aufgreifen? somthing wie dies vielleicht:

<path>$\Projects\*\trunk\</path> 

wenn einige Projekte verzweigt sind, aber andere nicht, wie kann ich es den Stamm erhalten zu lassen, wenn keine Verzweigung vorhanden ist (falls dies möglich ist).

würde alle Stämme bekommen, gefolgt von Überschreiben mit den Zweigen arbeiten? wäre es nur ein Fehler, wenn versucht wird, auf einen nicht existierenden Zweig zuzugreifen?

Antwort

0

Am Ende habe ich eine Quelle Steuer Plug-in (mit Vault API) schrieb mir zu erlauben, einige Extras im <folder> Tag angeben:

<folder>$/branches/%latest%</folder> 

wird die neueste Niederlassung in den Zweigen abrufen Mappe.

+0

Ich glaube nicht, dass Sie das Plug-in geöffnet? –

+0

Ich würde aber leider meine Firma nicht wollen - und es ist Firmeneigentum: | – Pondidum

3

Die erste Methode ist sehr zuverlässig. Sie wissen genau, was Sie versenden (weil Sie für jedes Release einen Einstiegspunkt haben: entweder den Trunk oder einen Zweig/Tag).

Ich sehe mehrere Probleme mit der zweiten Methode:

  1. alle Projekte verzweigt muss/zur gleichen Zeit markiert
  2. verschmilzt für jedes Projekt individuell erfolgen muss

Beide Optionen sind möglich , aber ich halte die erste für die einfachste, aber auch die sicherste Alternative.

Da die Website höchstwahrscheinlich unabhängig von den Veröffentlichungen ist (wenn Sie von einer Zweigniederlassung im Jahr 2007 veröffentlichen, nehmen Sie nicht die 2007-Website, sondern die 2009).

Project 
    | 
    +- Trunk 

Website 
    | 
    +- Trunk 
0

Ich bevorzuge feinkörnige, sehr organisierte, eigenständige, strukturierte Repositories. Es gibt einen diagram, der den allgemeinen (idealen) Ansatz des Repository-Wartungsprozesses darstellt. Zum Beispiel ist meine anfängliche Struktur des Repository (jedes Projekt-Repository sollte haben):

/project 
    /trunk 
    /tags 
     /builds 
      /PA 
      /A 
      /B 
     /releases 
      /AR 
      /BR 
      /RC 
      /ST 
    /branches 
     /experimental 
     /maintenance 
      /versions 
      /platforms 
     /releases 
Verwandte Themen