Wie strukturiert DVCS mit einer großen integrierten Codebasis, bei der mehrere Projekte viel gemeinsamen Code verwenden?

Ich habe ein CVS-Repository, das hauptsächlich Java-Code enthält. Jedes Paket befindet sich in einem eigenen Verzeichnis auf höchster Ebene, und der Bezug erfolgt auf typische Java-Art und Weise.

$CVSROOT/my.domain.module1/src/my/domain/module1
$CVSROOT/my.domain.module2/src/my.domain/module2
$CVSROOT/my.domain.share1/src/my/domain/share1

Dies bedeutet, dass wir Build-Skripte schreiben können, mit denen eine beliebige Kombination von Paketen einfach aus dem Repository abgerufen werden kann, um eine bestimmte versandfähige Software zu erstellen.

Wenn ich also my.domain.module1 ausgecheckt habe, zieht das Build-Skript in diesem Modul auch my.domain.share1 ein. Dies fördert wirklich die Wiederverwendung von Code.

Der Ansatz hat Stärken und Schwächen - daran ist er heute nicht wirklich interessiert. Angesichts dieser Art von Ansatz ist es möglich / sinnvoll, in mercurial oder git zu replizieren.

Soweit ich weiß, müssen Sie entweder ein gesamtes Repository pro Paket definieren oder jedes Mal das gesamte Repository auschecken und festschreiben!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage