patch reported upstream at the mailing list. mail reference is: http://marc.info/?l=git&m=126813299716136&w=2 --- builtin/upload-archive.c +++ builtin/upload-archive.c @@ -132,8 +132,9 @@ packet_flush(1); while (1) { - struct pollfd pfd[2]; int status; +#ifndef __INTERIX + struct pollfd pfd[2]; pfd[0].fd = fd1[0]; pfd[0].events = POLLIN; @@ -156,6 +157,8 @@ if (process_input(pfd[0].fd, 1)) continue; +#endif + if (waitpid(writer, &status, 0) < 0) error_clnt("%s", lostchild); else if (!WIFEXITED(status) || WEXITSTATUS(status) > 0) --- daemon.c +++ daemon.c @@ -14,6 +14,8 @@ #define NI_MAXSERV 32 #endif +#ifndef __INTERIX /* not available on interix! */ + static int log_syslog; static int verbose; static int reuseaddr; @@ -922,8 +924,13 @@ return service_loop(socknum, socklist); } +#endif /* __INTERIX */ + int main(int argc, char **argv) { +#ifdef __INTERIX + die("not implemented on interix!"); +#else /* !__INTERIX */ int listen_port = 0; char *listen_addr = NULL; int inetd_mode = 0; @@ -1121,4 +1128,5 @@ store_pid(pid_file); return serve(listen_addr, listen_port, pass, gid); +#endif /* __INTERIX */ } --- git-compat-util.h +++ git-compat-util.h @@ -93,7 +93,9 @@ #include #ifndef __MINGW32__ #include +#ifndef __INTERIX #include +#endif #include #include #ifndef NO_SYS_SELECT_H @@ -104,7 +106,11 @@ #include #include #include +#ifndef __INTERIX #include +#else +#include +#endif #if defined(__CYGWIN__) #undef _XOPEN_SOURCE #include --- upload-pack.c +++ upload-pack.c @@ -150,6 +150,7 @@ static void create_pack_file(void) { +#ifndef __INTERIX struct async rev_list; struct child_process pack_objects; int create_full_pack = (nr_our_refs == want_obj.nr && !have_obj.nr); @@ -328,6 +329,9 @@ fail: send_client_data(3, abort_msg, sizeof(abort_msg)); die("git upload-pack: %s", abort_msg); +#else /* __INTERIX */ + die("git upload-pack: not implemented on interix!"); +#endif /* __INTERIX */ } static int got_sha1(char *hex, unsigned char *sha1)