A Case Study of Cross-System Porting in Forked Software Projects
Software forking - creating a variant product by copying and modifying an existing product - is often considered an ad hoc, low cost alternative to principled product line development. To maintain such forked products, developers often need to port an existing feature or bug-fix from one product variant to another. As a first step towards assessing whether forking is a sustainable practice, the authors conduct an in-depth case study of 18 years of the BSD product family history. Their study finds that maintaining forked projects involves significant effort of porting patches from other projects. Cross-system porting happens periodically and the porting rate does not necessarily decrease over time.