From: Nguyen Thai Ngoc Duy Date: Thu, 26 Jul 2007 16:11:20 GMT Subject: Re: Windows support Message-ID: In-Reply-To: On 7/26/07, Johannes Schindelin wrote: > Hi, > > On Thu, 26 Jul 2007, Nguyen Thai Ngoc Duy wrote: > > > I make MinGW busybox part of git for some reasons: > > > > - Making a full MinGW busybox would take lots of time. I don't need > > busybox for Windows. What I need is a shell and enough POSIX utilities > > to run git shell scripts without any dependencies. Windows users > > (including myself when I have to use Windows) hate dependencies. > > I think that if you succeed to compile ash on MinGW, the rest is easy. No it's not. With a couple of ifdefs you can compile it fine. Then there goes fork(), fcntl(F_DUPFD), /dev/*, job/signal handling... Fortunately Git does not use lots of features. It only needs /dev/null (and /dev/zero for tests), SIGEXIT and no job usage.. That cuts down the effort porting ash. > > - I don't want MinGW busybox to be used outside of git (if it is > > installed separated from git), there are cygwin and msys already. I > > don't want to compete them. And I don't like conflicts (not sure > > though) because you have multiple UNIX emulations on the same system. > > But you'd be my hero. Can't say I don't love to ;-) It's just that I don't have enough time. Once project "busybox for Windows" is born, people may scream for features. Even if they don't, there are still bunch of work because I have only ported a small number of tools. With Git as its sole customer, I can beg Git contributors to limit POSIX tools that they use. But if someone steps up for the project, I'm all for it. > Installing Cygwin is often overkill if all I need is just a tiny shell > with just enough POSIX tools to run my scripts. I see your point. Although you can install git and have git-box to play with (oh spread git! lolz) Just keep in mind you don't have all POSIX tools. > > - MinGW busybox (or gitbox as I call it now) utilizes compat/mingw.c > > and other stuff like run-command.c... Making it separate (as source > > code) duplicates code for nothing. > > It is not duplication. It is forking. Which is a good thing. I still don't see why duplicating compat/*, git-compat-util.h, run-command.[ch]... and keeping fixing bugs in two places is a good thing. -- Duy