  To fork a project is to copy the existing code base and move in a direction
different than that of the erstwhile project leadership. Forking provides a
rapid way to address new requirements by adapting an existing solution.
However, it can also create a plethora of similar tools, and fragment the
developer community. Hence, it is not always clear whether forking is the right
strategy. In this paper, we describe a mixed-methods exploratory case study
that investigated the process of forking a project. The study concerned the
forking of an open-source tool for managing software projects, Trac. Trac was
forked to address differing requirements in an academic setting. The paper
makes two contributions to our understanding of code forking. First, our
exploratory study generated several theories about code forking in open source
projects, for further research. Second, we investigated one of these theories
in depth, via a quantitative study. We conjectured that the features of the OSS
forking process would allow new requirements to be addressed. We show that the
forking process in this case was successful at fulfilling the new projects
requirements.
