2010-02-28 5 views
8

Ich schaue mir an, wie/wenn ich den Wechsel von Svn zu Git machen sollte.Single oder Multiple Git Repositories für Bibliotheken zwischen den Teams

Ich habe derzeit eine vielschichtige Reihe von Projekten in SVN, die so geschichtet sind, dass D C verwendet, die B verwendet, die A verwendet. Aktuelle Projekte wie X, Y, Z verwenden eine der gemeinsamen Bibliotheken A-D. Ziel ist es, dass zukünftige Projekte und andere Teams die Basisbibliotheken (A-D) teilen und eine bessere Verzweigungssteuerung ermöglichen. Wenn wir anderen Teams erlauben wollen, Bibliothek C zu benutzen, ohne sich mit X, Y, Z zu beschäftigen, dann ist es einfach, sie prüfen einfach das C-Bit des SVN-Baums, wenn das dazu führt, dass sie wollen Patch B, dann dito. Sie berühren X, Y, Z nicht, auch wenn sie sich im selben Repo befinden. Es ist nicht so offensichtlich, was mit Git passiert.

Wenn ich etwas mit git einrichten möchte, wie würde ich vorschlagen, dass ich es eingerichtet habe und was die Vor-/Nachteile bei der vorgeschlagenen Einrichtung sind.

Eigenschaften ich suche, sind:

  1. Einfacher Tagging (wenn möglich) so leicht den Zustand der gesamten Codebasis markieren kann (einfach mit einem gemeinsamen SVN-root oder einem einzigen git Repo)
  2. Leicht für andere, um die gemeinsamen Bibliotheken zu integrieren/wiederzuverwenden AD
  3. Einfach für sie, uns vorgeschlagene Fehlerkorrekturen/Patches zurückzugeben, die wir wählen können, um sie zu übernehmen oder zu ignorieren (eines der wichtigsten Dinge, die ich von git will).
  4. Teams effektiv Privateigentum Funktionen zur Verfügung für gemeinsam genutzte Bibliotheken haben (so sie können sie sie markieren und beheben für sich auf ihrem eigenen Zeitrahmen)

Git zu bieten, was ich will scheinen, ich bin nur nicht sicher, wie sich mit dem Problem "Single vs Multiple Repos" auseinandersetzen.

Antwort

2

Wenn ich etwas nach oben mit git einstellen möchten, wie würden Sie vorschlagen ich es eingerichtet [...]

Gerade mit mehreren git Repositories gehen (sie recht billig sind und sie sind vergleichbar mit vielen kleinen Booten anstelle einer Titanic - mit anderen Worten, ich finde, dass sie flexibel sind und ich liebe Flexibilität.

Hie und da ich mit einem Projekt unterstützen, das wie so

foo/server 
foo/client 
foo/docs 
foo/tools/ 

Der 'Server', 'Client', 'Dokumente' und jeder Ordner in 'Tools' sind separate git Repositories strukturiert ist. Dadurch können spezialisierte Teammitglieder genau das klonen und bearbeiten, an dem sie arbeiten möchten.

Ganz zu schweigen davon, wenn wir einfach alles reinziehen wollen, können wir foo klonen (was den Rest als Submodule anzieht).

Es ist großartig, dass Git Ihnen dies ermöglicht, also warum nicht davon profitieren?

[...] und was sind die upsides/Nachteile mit Ihrem vorgeschlagenen Setup.

Es ist möglich, dass mein Vorschlag leicht zu implementieren ist.

Verwandte Themen