Ich denke wirklich, dass Sie ein DVCS (zB mercurial, git) brauchen würden, um dies natürlich zu tun. Mit einem CVCS bräuchten Sie einen Zweig und hoffen, dass es für jeden Gott, den Sie haben, keine Hölle gibt.
Wenn Sie ein DVCS verwenden, können Sie den Integrationsprozess so einteilen, dass der Code bereits überprüft wird, bevor er auf dem CI-Server eingeht. Wenn Sie über kein DVCS verfügen, wird der Code vor der Überprüfung auf Ihrem CI-Server eingehen, es sei denn, die Codeüberprüfer überprüfen den Code auf dem Computer jedes Entwicklers, bevor sie ihre Änderungen übermitteln.
Eine erste Möglichkeit, dies zu tun, besteht darin, hierarchische Integrationsrollen zu haben, insbesondere wenn Sie keine Repository-Verwaltungssoftware haben, mit deren Hilfe Sie persönliche Repositorys (z. B. Bitbucket, Github, Rhodecode) veröffentlichen können. In den folgenden Diagrammen können Sie Leutnants die Arbeit der Entwickler überprüfen lassen und den Diktator als Hauptintegrator überprüfen lassen, wie Leutnants die Arbeit zusammengeführt haben.
Wenn Sie über eine Repository-Verwaltungssoftware verfügen, können Sie auch einen Workflow wie den folgenden verwenden:
Repository-Verwaltungssoftware hilft in der Regel dabei, Benachrichtigungen zu senden, wenn in Repositorys Aktivitäten auftreten (z. B. E-Mail, RSS), und Pull-Anforderungen zuzulassen . Die Codeüberprüfung kann organisch während Pull-Anforderungen erfolgen, da Pull-Anforderungen in der Regel dazu führen, dass Personen Gespräche führen, um den Code zu integrieren. Nehmen Sie diese öffentliche Pull-Anfrage als Beispiel. Der Integrationsmanager kann tatsächlich nicht zulassen, dass Code in das gesegnete Repository (auch als "zentrales Repository" bezeichnet) gelangt, wenn der Code korrigiert werden muss.
Am wichtigsten ist, dass Sie mit einem DVCS immer noch einen zentralisierten Workflow unterstützen können. Sie müssen keinen weiteren fantastischen Workflow haben, wenn Sie nicht möchten. Mit einem DVCS können Sie jedoch ein zentrales Entwicklungs-Repository vom CI trennen Server und erteilen Sie jemandem die Berechtigung, die Änderungen vom Dev-Repo zum CI-Repo zu übertragen, sobald eine Code-Überprüfungssitzung durchgeführt wurde .
PS: Gutschrift für die Bilder gehen zu git-scm.com