Verzweigen von einem Feature-Zweig, um an einem Unterfeature zu arbeiten

12

Wir befinden uns derzeit in der folgenden Situation, in der ein Feature-Zweig für einen Unter-Feature-Zweig verzweigt wurde (z. B. Arbeiten an Backend- und Frontend-Dingen für dasselbe Feature):

o 
|
o development
|\
| o feature-a
| |
| o
| |\
| | o feature-a-sub
| | |
| | |
|  \
|   o merged feature-a into feature-a-sub
|  /
o feature-a-sub merged into development
| |
| o feature-a with future work on it
|
o development

Ein Entwickler hat zuerst Feature-A in seinem Feature-A-Sub-Zweig zusammengeführt, um auf dem neuesten Stand zu sein, und dann sein Feature-A-Sub in der Entwicklung zusammengeführt. Während das ursprüngliche Feature - ein Zweig - noch vorhanden und noch nicht fertig ist.

Aus meiner Sicht ergibt sich das Problem, dass die Verzweigung "Feature A" jetzt veraltet ist, da alle Änderungen in "Feature A-Sub" und anschließend in "Entwicklung" zusammengeführt werden. Darüber hinaus wurde die Arbeit an Feature-A fortgesetzt, was zu zukünftigen Zusammenführungskonflikten und viel Handarbeit führt.

Wo sind wir falsch abgebogen und wie würde ein ordnungsgemäßer Arbeitsablauf mit weniger Problemen aussehen?

pduersteler
quelle

Antworten:

14

Man sollte nur zum und vom übergeordneten Zweig zusammenführen. Für feature-a-subist dies feature-anicht development.

Das Zusammenführen mit dem übergeordneten Zweig hat zur Folge, dass der Grund, aus dem der übergeordnete Zweig erstellt wurde, nicht erfüllt wurde, und ja, wie bereits erwähnt, führt dies zu zukünftigen Problemen, wenn die Entwicklung fortgesetzt wird feature-aund developmentzu einer zunehmenden Divergenz der Codezeilen und weiteren Konflikten im gesamten Prozess führt Straße.

Dies wurde unter der Annahme, dass feature-a-subder Code in abhängt feature-a. Wenn feature-a-subes stattdessen unabhängig von war feature-a, hätte es überhaupt nicht verzweigt feature-aund stattdessen in verzweigt (und zusammengeführt) werden sollen development.

Falls feature-aerforderlich, um feature-a-subzu arbeiten (nicht sicher, ob es als feature-afortgesetzte Arbeit ohne Zusammenführung von ausgeführt wurde feature-a-sub), und feature-a-subunabhängig von feature-a, feature-a-subsollte stattdessen feature-beine Verzweigung von development, eine Zusammenführung zurück in developmentund dann entweder eine Zusammenführung von developmentoder feature-b(falls nicht) vorliegen Ich möchte keine anderen Änderungen aus der Entwicklung aufgreifen feature-a.

Der Workflow sollte entweder:

o                                        
|                                        
o development                            
|\                                       
| o feature-a                            
| |                                      
| o                                      
| |\                                     
| | o feature-a-sub                      
| | |                                    
| | |                                    
| | |                                    
| | o merged feature-a into feature-a-sub
| |/                                     
| o feature-a-sub merged into feature-a  
| |                                      
| o feature-a with future work on it     
|                                        
o development 

oder

o                                                  
|                                                  
o development                                      
|\                                                 
| \                                                
|  \                                               
|   o feature-a                                    
|\  |                                              
| b | feature-b                                    
| | |                                              
| | |                                              
| | |                                              
| b | feature-b complete                           
|/ \|                                              
o   o feature-b merged to development and feature-a
|   |                                              
|   o feature-a with future work on it             

Related - eine meiner Lieblingslesungen über die Philosophie des Verzweigens: Advanced SCM Branching Strategies . Während das Whitepaper auf zentralisierte Versionskontrollsysteme abzielt, sind die Ideen hinter den Rollen, die jeder Zweig einnehmen kann, wichtig, um sicherzustellen, dass Sie verstehen, was vor sich geht, und um zu überlegen, was als Nächstes mit einem bestimmten Zweig getan werden sollte.


quelle