Google Groups

Re: gitblit's background


James Moger Nov 13, 2011 1:56 PM
Posted in group: gitblit
Hi Thomas,

Thanks for the kind words.

At work my team uses a mixture of CVS, SVN (and even folder
compares!).  None of which are completely satisfactory, although
clearly SVN is the clear winner of that list.  I had been wanting to
experiment with a DVCS system - and was going to choose Mercurial
because it had full http support and seemed less complex while giving
most of the same functionality.  I hesitated because Hg is really an
application and not a library.  Not sure why this really matters to
me, but it does.

While taking a break from Hg, I read more on Git and discovered that
Git and JGit both supported full http communications; Git didn't have
this feature last time I had checked.  I also discovered the JGit team
implemented a servlet for serving Git repositories.  When I learned
those two things I knew I wanted to create a pure Java Git http server
that was self-contained and included authentication & authorization.
I was actually surprised that no one else had already done this; it
seemed so obvious to me.  :)

I read the ProGit book last Jan/Feb to get familiar with how Git was
different than Hg and started working on Gitblit in the evenings in
late Feb.  I studied the Gitweb instance on kernel.org by navigating
the available repositories and observing the urls.  I created a
facsimile of Gitweb/httpd/Git using Wicket/Jetty/JGit.  Windows is my
preferred deployment platform so its a first-class citizen in my
project.  I've been a Linux user for 15 years, but I am a terrible
sysadmin.  This is why I like Windows.  :)

No company is supporting my project - I work on it in my spare time:
nights and some weekends.  I pushed it out as an Apache licensed
project because I want others to be able to modify and integrate
Gitblit into their own infrastructure as they see fit.  There is
nothing more irritating than having a cool open source project that
you want to integrate but are handicapped by the project's license.
I've gotten some contributions back through GitHub, which has been
welcome.  And the bug reports have identified problems which my dev
team will not have to discover.  :)

I do not know who is using Gitblit.  I personally use it at work and
most of the improvements are driven by "what can I do with Subversion
that I can not (yet) do with Gitblit?".  This is what inspired the
federation capability (e.g. svn-sync).  This is what is inspiring the
planned Eclipse plugin for enumerating available repositories.

I'm aware of Gerrit.  I have looked at EGit/JGit's Gerrit instance a
few times.  I do not use Gerrit myself; too much procedure for my
small dev team.  I see from the documentation that Gerrit supports
Gitweb, CGit, and custom web ui integration.  Substituting Gitblit for
Gitweb should not be very difficult based on that information.  I
imagine Gitblit could also authenticate/authorize against Gerrit,
although that is just a guess.

Of course now I'm motivated to build a useful AND popular open-source
project.  I monitor the download counts of the binary releases and I
am looking forward to the next power of 10.  :)

-J