The 6th edition of the msysGit Herald
Johannes Schindelin
2007-12-18 01:42:46 UTC
Good morning git land!

This silent midnight is as good an occasion as any to offer to you the 
6th edition of the msysGit Herald, the not-quite-biweekly news letter 
to keep you informed about msysGit, the effort to bring one of the 
most powerful Source Code Management systems to the poor souls stuck 
with Windows. 

These are the covered topics:

	Git Gui's fetch problems resolved

	vim colours improved

	Getting more hits via than Google

	Update to 1.5.4-rc0

	New naming scheme: Git and msysGit

	We busted the quota of Google Code

	msysGit-netinstall: HTTP proxy and directories containing spaces

	Next things

So this not-quite bi-weekly newsletter took a little bit longer this 
time. But only for the better! Seems like the installer really 
stabilises, as I hoped, and we really concentrated on some serious git 

Oh, and we got mentioned on kernel trap. For those who got the 
impression from there that Git on Windows is not quite there yet: not 
only is msysGit one of its own heaviest users, it is very much at the 
technical front of Git: we use submodules, and we promote Git Gui 
heavily. So there you have it: Git on Windows is already here. 

Although we call it beta. Just to cover our buttocks. 

Git Gui's fetch problems resolved

We updated git to a version where git-fetch is a builtin, in the hope 
that the issues with fetching were resolved (for those who do not 
follow the Herald: when fetching within Git Gui, a window would pop up 
with the remote refs, instead of redirecting this output to 

Alas, it turns out that the implementation of spawnvpe() in Windows' 
runtime library leaves a lot to be desired. Amongst other issues, it 
does not automatically attach the child process to the same console as 
the parent window, which gave us some grief. 

Hannes Sixt finally broke down and reimplemented spawnvpe() as it 
should have been (but was never fixed to). 

Since then, it is running like a charm. The only issue left is when 
you access a remote host via ssh, and have to type in a password. We 
have do not intercept that yet. There is a relatively low-hanging 
fruit waiting for somebody to harvest it. 

vim colours improved

We got a bug report that the colours in vim made a user blind ;-) 

While investigating, we found out that not only did we have a useless 
/etc/vimrc (the correct location is /share/vim/vimrc), but the code to 
show nice colours for a dark background was already there, only at the 
wrong spot. 

With that fixed, our user can recover, and open his eyes again to this 
lovely world we live in. 

Getting more hits via than Google

Seems that the recent linking from the Git home page really changed 
things in the statistics! While Google's search referalls dominated 
the traffic sources earlier, 30% more users find our home page via than via Google now, which might also mean that they are 
referred to the Git home page first. ;-) 

We also got some attention on November 19, when KernelTrap had a story 
on us. 

Update to 1.5.4-rc0

Since the last Herald, Hannes was very busy sending patches to Junio 
Hamano, the maintainer of (non-MinGW) Git, in order to bring mingw.git 
closer to git.git. In the midst of all those wonderful efforts, a 
feature freeze was declared on git.git, to stabilise for 1.5.4. Such 
is life ;-) 

Nevertheless, a few patches made it in, and Hannes made quite a few 
more cleanups, such as a rework of the environment variable handling 
(when you setenv() on Windows, references you got earlier via getenv() 
are now stale), or avoiding dup()s which confused Windows -- in the 
commit messages, this issue is known as the "dup dance". 

At the same time, Steffen Prohaska worked on bringing 4msysgit.git 
closer to mingw.git ;-) 

The fallout of these endeavours is that we are not only much closer to 
mingw.git, but we are in fact pretty close to the current prerelease 
of Git -- 1.5.4-rc0! 

Together with the usability improvements in the installer, such as 
installing shortcuts for all users when installing as administrator, 
or the integration of the release notes into the installer, I am 
pretty happy with the state of the project. 

New naming scheme: Git and msysGit

When taking the first steps of "Git on MSys", there was only one 
pretty large zip file, containing the development environment to 
compile git, along with a checkout of mingw.git. 

Since then, we decided that we wanted installers. Three of them. 

The final goal is a Git installer, meant for the end user. 

To attract developers to that end, we also wanted to have two 
installers for the development environment: a small one, containing 
barely enough of Git and MSys to fetch and checkout the master branch 
of the development environment's repository, and the master branch of 
our fork of mingw.git (and recently, we got another submodule for the 
documentation). And a big installer, which does not clone anything, 
but is an all-in-one package of the development environment, not even 
setting up git remotes -- basically the big zip we had during the 
first day, turned into an installer. 

As I am pretty bad with British slang names, I could not think of any 
really good names, and we ended up with "WinGit" (from "to wing it") 
for the Git installer, "GitMe" for the net installer of the 
development environment, and "msysGit" for the full installer. 

That was confusing. 

Steffen pointed out that we should thrive for the crown of Git on 
Windows, leaving cygwin's Git behind, and therefore our Git installer 
should really be called "Git". 

Also, since the other two installers are in fact just two different 
ways to obtain the development environment, they should share the same 
name, "msysGit", with one being the net installer and the other the 
full installer. 

So, these are the downloads we offer: Git, msysGit-netinstall and 

But maybe we decide to rename the latter two to Git-Dev-netinstall and 
Git-Dev-full some day... we'll see. 

We busted the quota of Google Code

A mere 5 months after starting the project page we reached the (default) quota of 
100MB. We used up about 7-9 megabytes for each release of the Git 
installer, and the full msysGit installer weighs in with a 14 

When Dmitry Kakurin suggested to get some project hosting, back in 
July, my first address was sourceforge. However, they dragged their 
feet (and our project was really moving along at a breathtaking pace, 
back then) so we ended up using Google Code's friendly hosting service 

Already it became quite clear that we'd eventually need more quota, 
but we were being told that we would get more when we needed it. That 
point was reached on Friday, 14th of December, when Steffen was unable 
to upload the current preview due to space constraints. 

When I found the right spot to ask (in case you wonder, it was not the 
email address, as suggested by the Google Code 
FAQ, but the Project Hosting discussion group at, things 
went smoothly and we now have a quota of 200MB. See you in 5 months, 
Google ;-) 

msysGit-netinstall: HTTP proxy and directories containing spaces

A long standing bug in msysGit-netinstall (then known as GitMe) was 
fixed quite some time ago, but I never got around to wrap up new 
installers: If you installed msysGit into a directory containing 
spaces, it would not be able to finish the installation. 

Another bug(let) was that we did not have any method to specify an 
HTTP proxy in the net installer. 

This was the reason, probably, that the net installer was 
substantially less popular (2817 downloads) than the full installer 
(4306 downloads), despite the former being featured on the main page. 

With both bugs fixed in both msysGit installers -- also updated to the 
same state as the Git installer -- we lay the old installers, 
GitMe-0.4.2 and msysGit-0.6, to rest. Requiescant in pace. 

Next things

The commands git-svn and git-cvsimport had to take a backseat while 
more visible _Git_ issues were being taken care of. But postponed is 
not abandoned, so they will both see some attention again soon. 

My pet project, git-cheetah, should also get integrated as a submodule 
of msysgit.git. It is a lightweight Explorer extension a la 
TortoiseCVS, and given enough people working on it, it should be able 
to kick rear ends pretty quickly. 

Rxvt. Ah, so long ago, I abandoned hope that this would be fixed 
eventually (for one, git-log is not able to spawn a pager, and thus 
the history just whizzes by). So we use cmd instead. 

It is no secret that cmd (or the console window it opens) has pretty 
annoying restrictions (such as no proper multi-line selections, no 
_real_ resizing support, and you have to use the mouse to scroll 
back). But with the work we did to recompile Perl for MSys, it should 
become easier to tackle Rxvt. Or maybe we'll just include Xming 
instead, a very small and lean rootless X11 server for MinGW. 

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at