Implementing Git in JavaScript


Git is one of my favorite things to hack on. It's long been my goal to get a working (workable?) implementation of git running in pure JS, in the browser. My first attempt two years ago failed; and for a long time I've let the thought bounce around in the back of my head. Spurred on by the recent interest in js-git, I recently restarted the journey towards an in-browser git, in order to help creationix deliver the best possible js-git. Newly armed with browserify and the small-module ethos, I've come much closer to a working git in browser and Node, and in the process have really put browserify and its shims through their paces. This talk will be comprised of:

A quick intro to the git object model and transport protocol How browserify and the small module ethos have enabled great successes in the project. Difficulties encountered in the process, both with Node.JS itself and with browserify, and how I've worked through them. How I've diagnosed and worked through various performance issues. Where is this project going?