Was ist der Zweck eines "Integrations-branch"?
Wenn eine branching-Strategie besteht n feature-branches ein "master" (mainline) und eine "integration" - Zweig. Was ist der Zweck der integration der Filiale? Warum kann das testen und die integration nicht auf dem Zweig selbst?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil es ein feature-branch. Es sollten nur die änderungen enthalten, über die ein feature. Die integration Zweig ist, wo Sie bringen mehrere Funktionen gemeinsam für die Prüfung, bevor der Endspurt auf master.
Natürlich, Sie nicht haben zu trennen, die Dinge auf diese Weise. Sie könnte tun integration auf Funktions-Zweige, so wie Sie könnte alles tun, Ihre Arbeit auf master. Aber die Trennung der Bereiche ist eine gute Sache.
Werden, ein bisschen genauer, warum genau "die Trennung ist gut": der Zweck Der Integrations-branch ist, um zu bestimmen, ob die neuen features funktionieren nicht nur auf Ihre eigenen, aber auch in Kombination mit anderen neuen features. Dies bedeutet, dass Sie vielleicht nicht, die Funktionen kann dazu führen, dass Konflikte, die eine Weile dauern zu beheben.
Allerdings, könnten Sie noch anfangen wollen, bereitstellen einer Teilmenge der neuen features auf der mainline-Zweig, so dass Sie nicht blockieren alle Funktionen, weil eine Inkompatibilität zwischen zwei von Ihnen.
Nun, wenn Sie hatten bereits zusammengeführt feature-Zweige in einander, Sie haben eine harte Zeit verschmelzen Sie separat in die mainline. Es ist nicht völlig unmöglich, aber es ist sicherlich ein Aufwand (ich habe versucht).
Wenn Ihr feature Zweigen, großen code-Kannen, oder wenn Sie überschneiden sich signifikant mit Bezug auf die Bereiche code, der gearbeitet wird, können Sie sogar wollen diese Idee weiter, und haben Niederlassungen, die Integration der beiden Funktionen vor der Zusammenlegung anderswo, einschließlich der globalen integration Zweig, ich. e. mehrere Ebenen der integration. Natürlich ist dies in der Regel nicht eine wünschenswerte situation, aber Sie möglicherweise nicht in der Lage, es zu vermeiden, und die daraus resultierenden Konflikte können sehr viel leichter zu lösen, wenn Sie großzügig mit integration Zweige.
Einen wichtigen Grund sehe ich oft die Notwendigkeit einer "integration" der Zweig ist, wenn Ihre feature-Zweige nicht testbar auf Ihre eigenen. In meiner Erfahrung ist dies in der Regel durch eine Datenbank-Abhängigkeit. Oder betrachten Sie ein website-Projekt, die Datenbank gesichert... können sagen, es ist eine JSP-Anwendung gehostet in BEA Weblogic, zurück von einer 60GB Oracle-Datenbank; Es würde eine MENGE hardware zu geben, jeder Zweig seine eigene BEA Weblogic und Oracle-Instanz zu testen. Stattdessen ist es in der Regel einfacher zu entwickeln, so gut wie möglich in einen feature-branch, bewegen sich aber in einem Integrations-branch für die vollständige QA-Tests, wo die QA durchgeführt werden muss, auf eine vollständige web-server und Datenbank.