Takeover
Two years ago, I decided to adapt a well-know Rails-based wiki to my nefarious purposes. Twenty five months and 350 commits later, my fork of Instiki had diverged markedly from the original.
This was a source of considerable confusion. If, say, you searched for instiki, my site would show up in the first page of results. But the other, now radically-outdated, application would show up first. Perhaps I should have chosen to change the name.
Or perhaps not.
If you wander over to the main Instiki website, and scroll to the bottom of the page, you’ll notice something curious. It’s running my version of Instiki.
After some discussions, the current maintainer, Matthias Tarasiewicz, decided to adopt my branch (lock, stock and barrel) as the next version of Instiki.
The main Instiki Source Repository has moved to Github (yay!) and mirrors1 mine. The, soon-to-be released, “next” version of the main line of Instiki will be my Version 0.16.2.
My branch is now at Version 0.16.3, based on the latest Rails 2.3.0RC1. One cool new feature is that it automatically chooses between Mongrel (if available) and WEBrick (if not). You just type
./instiki --daemon
and it will automatically select the best available webserver to use.
You’ll always be able to get the latest and greatest version from my site. But, hopefully, releases of the main line of Instiki will never again lag too far behind.
1 One really annoying feature of Git is that it ignores empty directories in commits. Why do people put up with that? There are a bunch of such directories in Instiki (and, indeed, in most Rails apps), so Git seems particularly ill-suited as a source repository for such projects.
Re: Takeover
The very earliest versions of the git repository format used a single tree object per commit, which listed the full paths of files, but did not list directories. It was replaced within the first weeks by a design where a tree object stores the contents of a single directory including subdirectories (which are stored in additional tree objects) with relative names. However, the old format remains in use for the index. But if you use the plumbing to construct a tree you can store empty subdirectories in it just fine.
And so it has become the standard answer to the question you raised that no one has been sufficiently irritated to patch the shortcoming out of existence.