Abstract
Context: Git is a popular distributed version control system that provides flexibility and robustness for software development projects. Several work flows have been proposed to codify the way project contributors work collaboratively with Git. Some work flows are highly prescriptive while others allow more leeway but do not provide the same level of code quality assurance, thus, preventing their comparison to determine the most suitable for a specific set of requirements, or to ascertain if a work flow is being properly followed.
Objective: In this paper, we propose a novel feature-based framework for describing Git work flows, based on a study of 26 existing instances. The framework enables work flows' comparison, to discern how, and to what extent, they exploit Git capabilities for collaborative software development.
Method: The framework uses feature-based modeling to map Git capabilities, regularly expressed as contribution guidelines, and a set of features that can be impartially applied to all the work flows considered. Through this framework, each work flow was characterised based on their publicly available descriptions. The characterisations were then vectorised and processed using hierarchical clustering to determine work flows' similarities and to identify which features are most popular, and more relevant for discriminatory purposes.
Results: Comparative analysis evidenced that some work flows claiming to be closely related, when described and then characterised, turned out to have more differences than similarities. The analysis also showed that most work flows focus on the branching and code integration strategies, whilst others emphasise subtle differences from other popular work flows or describe a specific development route and are, thus, widely reused.
Conclusion: The characterisation and clustering analysis demonstrated that our framework can be used to compare and analyse Git work flows.
Objective: In this paper, we propose a novel feature-based framework for describing Git work flows, based on a study of 26 existing instances. The framework enables work flows' comparison, to discern how, and to what extent, they exploit Git capabilities for collaborative software development.
Method: The framework uses feature-based modeling to map Git capabilities, regularly expressed as contribution guidelines, and a set of features that can be impartially applied to all the work flows considered. Through this framework, each work flow was characterised based on their publicly available descriptions. The characterisations were then vectorised and processed using hierarchical clustering to determine work flows' similarities and to identify which features are most popular, and more relevant for discriminatory purposes.
Results: Comparative analysis evidenced that some work flows claiming to be closely related, when described and then characterised, turned out to have more differences than similarities. The analysis also showed that most work flows focus on the branching and code integration strategies, whilst others emphasise subtle differences from other popular work flows or describe a specific development route and are, thus, widely reused.
Conclusion: The characterisation and clustering analysis demonstrated that our framework can be used to compare and analyse Git work flows.
Original language | English |
---|---|
Journal | Information and Software Technology |
Publication status | Accepted/In press - 19 Dec 2021 |