
Developers use the forking mechanisms of modern social-coding platforms to evolve and maintain their systems. Using such mechanisms often leads to a larger number of independent variants with individual features or bug fixes that the developers may want to merge after a longer period of co-evolution. At this point, they may have forgotten (or never had) knowledge about differences between the variants. Tackling this problem, we built on the idea of on-demand documentation to develop a technique that automatically extracts and presents information for merging a class from two forks. We implemented our technique as a prototype called DSDGen and evaluated it through an experimental simulation with 10 students who should comprehend two real -world merge requests. Using DSDGen instead of code diffs only, more of the students could correctly comprehend the merges (6 / 10 versus 2 / 10) within a similar time. The students actively inspected the additional information provided by DSDGen and used it to comprehend the differences between the forked classes. So, DSDGen can help developers recover information for comprehending the differences caused by fork co-evolution during merges, with our results indicating opportunities for future research and improvements.
Program comprehension, Fork ecosystem, program comprehension, fork ecosystems, software evolution, Variant-rich systems, merging, Software documentation, Software evolution, Merging, variant-rich systems, software documentation
Program comprehension, Fork ecosystem, program comprehension, fork ecosystems, software evolution, Variant-rich systems, merging, Software documentation, Software evolution, Merging, variant-rich systems, software documentation
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 3 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Top 10% | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
