Those of you who’ve followed along with our open-source repository have probably noticed an unusual quiet spell on our check-ins the past couple of months. Rest assured, we haven’t been idle! Instead, we’ve been busy moving our code from Subversion over to a new repository in GitHub. We did this for a number of reasons, not the least of which being that the rest of our organization has been using Git for quite some time. I’ll lay out a few benefits we’ll all see from this new setup.
Although our codebase has been public for as long as there’s been a JW Player, our Subversion repository didn’t lend itself well to collaboration from the community. Anyone who wanted submit improvements to the player would need to do so by emailing patches to us, which added an unnecessary level of overhead to the process. With GitHub’s distributed model, developers can fork our code, make improvements, and easily submit pull requests to us. We think it’s a clear win for everyone.
As a company, JW Player has grown quite a bit over the past year or so. As we grow the team, we’ve got more developers working in the same parts of the player’s code. Git’s distributed branching makes it easier for our developers to work on features independently, and GitHub’s interactive pull request system makes it easier to comment and collaborate on code before it’s pulled in to the main development branch. Git also allows us to make multiple local commits without the need to publish them until the feature is complete.
Out With the Old
With this migration, we’re abandoning some cruft in the old repository. Our Subversion repository had a history of code going all the way back to version 3 of the “JW FLV Player.” While it’s interesting to look at, it doesn’t make much sense in the context of modern HTML5 browsers and mobile devices. We’re ready to stop being hoarders and let the old stuff go.
While Git isn’t fundamentally better than Subversion (just different), we think it’ll make our developers’ lives a bit easier, and make it super simple for open-source developers to contribute their improvements back to us so we can distribute them to the community at large. We look forward to hearing your feedback, and we hope you’re happy with the change!