On 7/26/07, David Kastrup <dak@xxxxxxx> wrote:
"Nguyen Thai Ngoc Duy" <pclouds@xxxxxxxxx> writes: > On 7/26/07, Johannes Schindelin <Johannes.Schindelin@xxxxxx> 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. And here I was tempted to multithread builtin-update-index.c: it is actually quite natural to let one process scan directories non-recursively, stat the files, sort them on a per-directory grain and feed a sorted pseudo-index into a pipeline (recursing to scanning whenever hitting a directory), then let another process/thread do a merge-pass of pseudo-index and real index, immediately writing the output to a new index-to-be. When this is finished and another process invalidated the old index already, reuse the index-to-be as pseudo-index and merge it with the new-index-which-got-in-ahead-of-me.
(snip) If you are going to do it. I suggest to base on official mingw branch. I haven't looked at builtin-update-index.c (hey, I'm all doing sh scripts these days) so no comments here. -- Duy - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html