WebApp Tabs, version control and GitHub

The extension I’ve been working on in my spare time for the past couple of weeks is now available as a first (hopefully not too buggy) release. It lets you open WebApps in Thunderbird, properly handling loading new links into Firefox and making all features like spellchecking work in Thunderbird (most other extensions I found didn’t do this). You can read more about the actual extension at its homepage.

Mostly I’ve been really encouraged during the development of this at just how far our platform has come for developing restartless add-ons. When we first made it possible in Firefox 4 there was a whole list of things that were quite difficult to do but we’ve come a long way since then. While there are still things that are difficult there are lots of things that are now pretty straightforward. My add-on loads simple XUL overlays, style overlays, installs JS XPCOM components with category manager registration, all similar to older add-ons. In fact I’m struggling to think of things that it is still hard to do though I’m sure other more prolific developers will have plenty of comments on that!

The other thing I’ve been doing with this extension is experimenting with git and GitHub. I think it’s been an interesting experience, there are continual arguments over which is better between git and mercurial with many pros and cons listed. I think most of these were done some time ago before mercurial and git really matured because from what I’ve seen there is really little difference between the two. They have slightly different default branching styles, but both can do the same kind of branching that the other can if you want and there are a few other minor differences but nothing that would really make me all that bothered over deciding which to use. I think the only place where git has a bonus is with GitHub, and really as far as I can see there isn’t a reason why someone couldn’t develop a similar site backed by mercurial repositories, it’s just that no-one really has.

GitHub is pretty nice with built-in basic issue tracking and documentation though it still has some frustrating issues. It seems odd for example that you can’t fork your own project, only someone else’s, but that’s only a minor niggle really. As project hosting goes I can’t say I’ve come across anything better that I can remember.

6 thoughts on “WebApp Tabs, version control and GitHub

  1. “I think the only place where git has a bonus is with GitHub, and really as far as I can see there isn’t a reason why someone couldn’t develop a similar site backed by mercurial repositories, it’s just that no-one really has.”

    BitBucket is awfully similar and I haven’t used it nor GitHub extensively.

  2. It’ll be annoying to have to load stuff AdBlock Plus and, if possible, NoScript and BetterPrivacy into Thunderbird and further increase my memory usage, but your extension plus Tiny Tiny RSS (an open-source PHP-based Google Reader clone) plus something less buggy than GMail’s IMAP would probably make for my ideal communications hub. :)

    @Patrick Cloke:
    Unfortunately, BitBucket lacks an equivalent to GitHub Pages and there doesn’t seem to be an easy way to provide a polished, enticing landing page for visitors to a project. I wouldn’t use it unless you paid me enough for me to pre-pay for hosting elsewhere at least a decade into the future… just in case.

      • Hmm. Good to know… but that doesn’t make any mention of whether per-project pages have to be managed as part of a central per-user repository or whether they can be their own branches/repositories the way GitHub Pages allows.

        If that latter case is possible, then it’s definitely worth a look for cases where I can’t use git (I’m rather fond of git’s command syntax) and the only issues I personally have with BitBucket as a site are:

        1. It feels less eye-pleasing than GitHub (too much use of white backgrounds and no borders to break things up)

        2. For whatever reason, the overview pages tend to be much less useful than the default “files” view on GitHub. (Even on GitHub, the first thing I often find myself doing is opening up a LICENSE/COPYING file or checking the source for the terms they forgot to include in the README… and I get the impression that README files to be displayed on the Summary page are less common on BitBucket than GitHub for some reason.)

  3. When I was posting my previous comment, I forgot to mention that, as far as forking your own repository goes, I think the intent is for you to create a new branch in your existing repo.

    Forking, as I see it, is sort of a workaround for the fact that everything is namespaced by user. (Hence why, if you look at the Network view, there’s as little visual difference between branches within your repo and branches within forks as possible)

    Generally, creating a completely separate repo is the wrong way to go about things but, if/when you need to, it should be possible just create a new one normally using the GitHub web UI and then push the appropriate local branch to it using `git push`.

    • I think forking is still useful, it really depends on what you’re trying to achieve. Here for example I was uploading an existing project to github (that was previously on a hg repo somewhere undiscoverable) as well as starting a new project that was using the existing one as a base but was going to go somewhere slightly different. It made sense to me to have both existing and new projects available distinctly rather than doing it with branches. The suggestion you had is what I used to do it but it would have been nice to show a more formal link between the two really.

Comments are closed.