Conflicts occur even when merging modular contributions
| Sample | Non modular contributions (%) | Modular contributions (%) | 
|---|---|---|
| Ruby sample | 57.3 | 42.7 | 
| Python sample | 70.8 | 29.2 | 
Likelihood of conflict occurrence significantly increases when contributions to be merged are not modular
| Factor Metric | Model I | Model II | Model III | Model IV | Model V | Model VI | Model VII | 
|---|---|---|---|---|---|---|---|
| Changes to a common slice | 6.13 *** | 4.28 *** | 3.80 *** | 5.18 *** | 4.28 *** | 3.78 *** | 5.11 *** | 
| Number of commits | 3.55 *** | 3.53 *** | |||||
| Number of developers | 1.17 *** | 1.56 *** | 1.15 *** | 1.51 *** | |||
| Number of changed files | 3.27 *** | 3.24 *** | |||||
| Number of changed lines | 0.99 | 0.99 | |||||
| Duration | 1.04 *** | 1.09 *** | |||||
| Conclusion delay | 1.01 | 1.01 | 1.01 | ||||
| Deviance Explained | 10.9% | 17.5% | 19.0% | 14.3% | 17.5% | 19.0% | 14.5% | 
| Factor Metric | Model I | Model II | Model III | Model IV | Model V | Model VI | Model VII | 
|---|---|---|---|---|---|---|---|
| Changes to a common slice | 4.39 *** | 2.82 *** | 3.13 *** | 3.60 *** | 2.83 *** | 3.11 *** | 3.52 *** | 
| Number of commits | 2.16 *** | 2.17 *** | |||||
| Number of developers | 1.36 *** | 1.45 *** | 1.36 *** | 1.44 *** | |||
| Number of changed files | 2.40 *** | 2.17 *** | |||||
| Number of changed lines | 1.64 *** | 1.49 *** | |||||
| Duration | 1.18 *** | 1.23 *** | |||||
| Conclusion delay | 0.98 | 0.87 *** | 0.85 *** | ||||
| Deviance Explained | 7.1% | 14.4% | 13.5% | 11.6% | 14.4% | 14.3% | 12.7% | 
Contribution non modularity does not predict the extent of merge damage
| Conflict Metric | cor * | p-value | 
|---|---|---|
| Number of merge conflicts | 0.07 | < 2.2e-16 | 
| Number of files with merge conflicts | 0.13 | < 2.2e-16 | 
| Conflict Metric | cor * | p-value | 
|---|---|---|
| Number of merge conflicts | 0.06 | 7.532e-12 | 
| Number of files with merge conflicts | 0.09 | < 2.2e-16 | 
Conflicts in non modular scenarios often occur in model, view, and controller files
| Only conflicting scenarios with non modular contributions | % contain at least one slice file (model, view or controller) with at least one conflict | 
|---|---|
| Ruby sample | 62.8% | 
| Python sample | 76.9% | 
Most contributions involve changes to more than one MVC module
| MVC modules affected by contributions | % Ruby Sample | % Python Sample | 
|---|---|---|
| Mixed1 | 65.3 | 57.9 | 
| Config 2 | 23.6 | 22.5 | 
| App3 | 4.0 | 8.8 | 
| View4 | 3.3 | 4.0 | 
| Model5 | 2.1 | 3.8 | 
| Controller6 | 1.6 | 2.9 | 
| Total | 100.0 | 100.0 | 
2 - contains only configuration files such as routes, database schema, logs, Rakefile, Gemfile, etc
3 - contains only global reusable files such as CSS files, templates, static pages, and Javascript files
4 - contains only view files
5 - contains only model files
6 - contains only controller files