{"thread":{"id":"20635","subject":"Re: Using VC build git (split patch)","startedAt":"2009-08-17T13:13:56Z","lastAt":"2009-08-31T02:45:16Z","messageCount":11,"participants":["Frank Li","Erik Faye-Lund","Johannes Schindelin","Marius Storm-Olsen","Thiago Farina"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"120883","messageId":"1976ea660908170613ibb9a0fdr7ba630671a6b735f@mail.gmail.com","threadId":"20635","inReplyTo":null,"subject":"Re: Using VC build git (split patch)","fromName":"Frank Li","fromEmail":"lznuaa@gmail.com","sentAt":"2009-08-17T13:13:56Z","receivedAt":"2009-08-17T13:13:56Z","isPatch":false,"sender":{"key":"lznuaa@gmail.com","avatar":"https://avatars.githubusercontent.com/u/40642?v=4"},"body":"Thanks Dscho for reviewing my patch patient.\nI split my patch and read SumbittingPatchs.\n\nI try to use git format-patch -M --stdout origin/master | git\nimap-send to send patch directly according to guide.\nBut imap-send has not ported to msysgit.\n\n\nFrom 2d5f52081d4d8916185ee2885cbf86604a9f54f3 Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Mon, 17 Aug 2009 15:00:45 +0800\nSubject: [PATCH 11/11] Add gitignore and ReadMe file for MSVC Build\n\nAdd ReadMe to user how to build git with MSVC.\nAdd gitignore to filter out files created file by MSVC.\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n compat/vcbuild/.gitignore |    3 +++\n compat/vcbuild/ReadMe     |   13 +++++++++++++\n 2 files changed, 16 insertions(+), 0 deletions(-)\n create mode 100644 compat/vcbuild/.gitignore\n create mode 100644 compat/vcbuild/ReadMe\n\ndiff --git a/compat/vcbuild/.gitignore b/compat/vcbuild/.gitignore\nnew file mode 100644\nindex 0000000..7796990\n--- /dev/null\n+++ b/compat/vcbuild/.gitignore\n@@ -0,0 +1,3 @@\n+Debug\n+Release\n+*.user\n\\ No newline at end of file\ndiff --git a/compat/vcbuild/ReadMe b/compat/vcbuild/ReadMe\nnew file mode 100644\nindex 0000000..47c089e\n--- /dev/null\n+++ b/compat/vcbuild/ReadMe\n@@ -0,0 +1,13 @@\n+The Steps of Build Git with VS2008\n+\n+1. Create VC Build Environment.\n+\n+   git clone git://repo.or.cz/gitbuild.git\n+\n+   gitbuild include VS solution file and library such as zlib.\n+ \n+2. Get Submodule\n+  \n+   git submodule update\n+\n+3. Open gitbuild\\gitbuild.sln with VS2008. Then press F7.\n\\ No newline at end of file\n-- \n1.6.4.msysgit.0\n\n\n\nFrom ceb73fc1cd4c32d30c2fd534009c507cf18704fa Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Sun, 16 Aug 2009 13:15:18 +0800\nSubject: [PATCH 01/11] Fix build failure at VC because function declare use old style at regex.c\n\nregerror declare function argument type after function define.\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n compat/regex/regex.c |    6 +-----\n 1 files changed, 1 insertions(+), 5 deletions(-)\n\ndiff --git a/compat/regex/regex.c b/compat/regex/regex.c\nindex 5ea0075..5728de1 100644\n--- a/compat/regex/regex.c\n+++ b/compat/regex/regex.c\n@@ -4852,11 +4852,7 @@ regexec (preg, string, nmatch, pmatch, eflags)\n    from either regcomp or regexec.   We don't use PREG here.  */\n \n size_t\n-regerror (errcode, preg, errbuf, errbuf_size)\n-    int errcode;\n-    const regex_t *preg;\n-    char *errbuf;\n-    size_t errbuf_size;\n+regerror (int errcode, const regex_t * preg, char * errbuf,size_t errbuf_size)\n {\n   const char *msg;\n   size_t msg_size;\n-- \n1.6.4.msysgit.0\n\n\n\nFrom 753c6790df6eca740c2d708c19301d117fbbb085 Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Sun, 16 Aug 2009 13:34:03 +0800\nSubject: [PATCH 02/11] Fix declare variable at mid of function\n\nSome compiler such as MSVC can't support declear variable at mid of funtion at c file.\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n compat/mingw.c |   16 ++++++++++++----\n help.c         |    3 ++-\n run-command.c  |    2 ++\n 3 files changed, 16 insertions(+), 5 deletions(-)\n\ndiff --git a/compat/mingw.c b/compat/mingw.c\nindex bed4178..75c74b1 100644\n--- a/compat/mingw.c\n+++ b/compat/mingw.c\n@@ -123,13 +123,17 @@ int mingw_open (const char *filename, int oflags, ...)\n {\n \tva_list args;\n \tunsigned mode;\n+\tint fd;\n+\n \tva_start(args, oflags);\n \tmode = va_arg(args, int);\n \tva_end(args);\n \n \tif (!strcmp(filename, \"/dev/null\"))\n \t\tfilename = \"nul\";\n-\tint fd = open(filename, oflags, mode);\n+\n+\tfd = open(filename, oflags, mode);\n+\n \tif (fd < 0 && (oflags & O_CREAT) && errno == EACCES) {\n \t\tDWORD attrs = GetFileAttributes(filename);\n \t\tif (attrs != INVALID_FILE_ATTRIBUTES && (attrs & FILE_ATTRIBUTE_DIRECTORY))\n@@ -580,10 +584,11 @@ static char **get_path_split(void)\n \n static void free_path_split(char **path)\n {\n+\tchar **p = path;\n+\n \tif (!path)\n \t\treturn;\n \n-\tchar **p = path;\n \twhile (*p)\n \t\tfree(*p++);\n \tfree(path);\n@@ -1108,9 +1113,11 @@ int sigaction(int sig, struct sigaction *in, struct sigaction *out)\n #undef signal\n sig_handler_t mingw_signal(int sig, sig_handler_t handler)\n {\n+\tsig_handler_t old;\n+\n \tif (sig != SIGALRM)\n \t\treturn signal(sig, handler);\n-\tsig_handler_t old = timer_fn;\n+\told = timer_fn;\n \ttimer_fn = handler;\n \treturn old;\n }\n@@ -1197,8 +1204,9 @@ struct dirent *mingw_readdir(DIR *dir)\n \n \tif (dir->dd_handle == (long)INVALID_HANDLE_VALUE && dir->dd_stat == 0)\n \t{\n+\t\tDWORD lasterr;\n \t\thandle = FindFirstFileA(dir->dd_name, &buf);\n-\t\tDWORD lasterr = GetLastError();\n+\t\tlasterr = GetLastError();\n \t\tdir->dd_handle = (long)handle;\n \t\tif (handle == INVALID_HANDLE_VALUE && (lasterr != ERROR_NO_MORE_FILES)) {\n \t\t\terrno = err_win_to_posix(lasterr);\ndiff --git a/help.c b/help.c\nindex 6c46d8b..399b0b4 100644\n--- a/help.c\n+++ b/help.c\n@@ -127,7 +127,7 @@ static int is_executable(const char *name)\n \t\treturn 0;\n \n #ifdef __MINGW32__\n-\t/* cannot trust the executable bit, peek into the file instead */\n+{\t/* cannot trust the executable bit, peek into the file instead */\n \tchar buf[3] = { 0 };\n \tint n;\n \tint fd = open(name, O_RDONLY);\n@@ -140,6 +140,7 @@ static int is_executable(const char *name)\n \t\t\t\tst.st_mode |= S_IXUSR;\n \t\tclose(fd);\n \t}\n+}\n #endif\n \treturn st.st_mode & S_IXUSR;\n }\ndiff --git a/run-command.c b/run-command.c\nindex ff3d8e2..d1df7ab 100644\n--- a/run-command.c\n+++ b/run-command.c\n@@ -123,6 +123,7 @@ int start_command(struct child_process *cmd)\n \t\texit(127);\n \t}\n #else\n+{\n \tint s0 = -1, s1 = -1, s2 = -1;\t/* backups of stdin, stdout, stderr */\n \tconst char **sargv = cmd->argv;\n \tchar **env = environ;\n@@ -186,6 +187,7 @@ int start_command(struct child_process *cmd)\n \t\tdup2(s1, 1), close(s1);\n \tif (s2 >= 0)\n \t\tdup2(s2, 2), close(s2);\n+}\n #endif\n \n \tif (cmd->pid < 0) {\n-- \n1.6.4.msysgit.0\n\n\n\nFrom 7edc5a10d29ec735dc302d110945ad70bac3d83f Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Sun, 16 Aug 2009 13:53:30 +0800\nSubject: [PATCH 03/11] Define SNPRINTF_SIZE_CORR 1 when use MSVC build git\n\nThere are not NUL at vsnprintf verstion of MSVC when rearch max len.\nDefine vsnprintf to _vsnprintf. vsnprintf have deprecated.\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n compat/snprintf.c |    7 ++++++-\n 1 files changed, 6 insertions(+), 1 deletions(-)\n\ndiff --git a/compat/snprintf.c b/compat/snprintf.c\nindex 6c0fb05..47b2b8a 100644\n--- a/compat/snprintf.c\n+++ b/compat/snprintf.c\n@@ -6,7 +6,7 @@\n  * number of characters to write without the trailing NUL.\n  */\n #ifndef SNPRINTF_SIZE_CORR\n-#if defined(__MINGW32__) && defined(__GNUC__) && __GNUC__ < 4\n+#if defined(__MINGW32__) && defined(__GNUC__) && __GNUC__ < 4 || defined(_MSC_VER)\n #define SNPRINTF_SIZE_CORR 1\n #else\n #define SNPRINTF_SIZE_CORR 0\n@@ -14,6 +14,11 @@\n #endif\n \n #undef vsnprintf\n+\n+#if defined(_MSC_VER)\n+#define vsnprintf _vsnprintf\n+#endif\n+\n int git_vsnprintf(char *str, size_t maxsize, const char *format, va_list ap)\n {\n \tchar *s;\n-- \n1.6.4.msysgit.0\n\n\n\nFrom e82f2baea636dca70328e1e5161456bd61c21bec Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Sun, 16 Aug 2009 19:14:29 +0800\nSubject: [PATCH 04/11] Add _MSC_VER predefine macro to make same behaviors with __MINGW32__\n Enable MSVC build. MSVC have the save behaviors with msysgit.\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n help.c        |    2 +-\n pager.c       |    4 ++--\n run-command.c |    8 ++++----\n run-command.h |    2 +-\n setup.c       |    2 +-\n 5 files changed, 9 insertions(+), 9 deletions(-)\n\ndiff --git a/help.c b/help.c\nindex 399b0b4..a311241 100644\n--- a/help.c\n+++ b/help.c\n@@ -126,7 +126,7 @@ static int is_executable(const char *name)\n \t    !S_ISREG(st.st_mode))\n \t\treturn 0;\n \n-#ifdef __MINGW32__\n+#if defined(__MINGW32__) || defined(_MSC_VER)\n {\t/* cannot trust the executable bit, peek into the file instead */\n \tchar buf[3] = { 0 };\n \tint n;\ndiff --git a/pager.c b/pager.c\nindex 4921843..28122c5 100644\n--- a/pager.c\n+++ b/pager.c\n@@ -9,7 +9,7 @@\n \n static int spawned_pager;\n \n-#ifndef __MINGW32__\n+#if !defined(__MINGW32__) && !defined(_MSC_VER)\n static void pager_preexec(void)\n {\n \t/*\n@@ -70,7 +70,7 @@ void setup_pager(void)\n \tpager_argv[2] = pager;\n \tpager_process.argv = pager_argv;\n \tpager_process.in = -1;\n-#ifndef __MINGW32__\n+#if !defined(__MINGW32__) && !defined(_MSC_VER)\n \tpager_process.preexec_cb = pager_preexec;\n #endif\n \tif (start_command(&pager_process))\ndiff --git a/run-command.c b/run-command.c\nindex d1df7ab..df139da 100644\n--- a/run-command.c\n+++ b/run-command.c\n@@ -67,7 +67,7 @@ int start_command(struct child_process *cmd)\n \n \ttrace_argv_printf(cmd->argv, \"trace: run_command:\");\n \n-#ifndef __MINGW32__\n+#if !defined(__MINGW32__) && !defined(_MSC_VER)\n \tfflush(NULL);\n \tcmd->pid = fork();\n \tif (!cmd->pid) {\n@@ -294,7 +294,7 @@ int run_command_v_opt_cd_env(const char **argv, int opt, const char *dir, const\n \treturn run_command(&cmd);\n }\n \n-#ifdef __MINGW32__\n+#if defined(__MINGW32__) || defined(_MSC_VER)\n static __stdcall unsigned run_thread(void *data)\n {\n \tstruct async *async = data;\n@@ -310,7 +310,7 @@ int start_async(struct async *async)\n \t\treturn error(\"cannot create pipe: %s\", strerror(errno));\n \tasync->out = pipe_out[0];\n \n-#ifndef __MINGW32__\n+#if !defined(__MINGW32__) && !defined(_MSC_VER)\n \t/* Flush stdio before fork() to avoid cloning buffers */\n \tfflush(NULL);\n \n@@ -339,7 +339,7 @@ int start_async(struct async *async)\n \n int finish_async(struct async *async)\n {\n-#ifndef __MINGW32__\n+#if !defined(__MINGW32__) && !defined(_MSC_VER)\n \tint ret = 0;\n \n \tif (wait_or_whine(async->pid))\ndiff --git a/run-command.h b/run-command.h\nindex e345502..57a707b 100644\n--- a/run-command.h\n+++ b/run-command.h\n@@ -79,7 +79,7 @@ struct async {\n \tint (*proc)(int fd, void *data);\n \tvoid *data;\n \tint out;\t/* caller reads from here and closes it */\n-#ifndef __MINGW32__\n+#if !defined(__MINGW32__) && !defined(_MSC_VER)\n \tpid_t pid;\n #else\n \tHANDLE tid;\ndiff --git a/setup.c b/setup.c\nindex e3781b6..14e3ca7 100644\n--- a/setup.c\n+++ b/setup.c\n@@ -41,7 +41,7 @@ const char *prefix_path(const char *prefix, int len, const char *path)\n const char *prefix_filename(const char *pfx, int pfx_len, const char *arg)\n {\n \tstatic char path[PATH_MAX];\n-#ifndef __MINGW32__\n+#if !defined(__MINGW32__) && !defined(_MSC_VER)\n \tif (!pfx || !*pfx || is_absolute_path(arg))\n \t\treturn arg;\n \tmemcpy(path, pfx, pfx_len);\n-- \n1.6.4.msysgit.0\n\n\n\nFrom 67a26d74abe9720b59c7cf56926b278f3c72a312 Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Sun, 16 Aug 2009 20:57:10 +0800\nSubject: [PATCH 05/11] Remove va_copy at MSVC because there are va_copy.\n\nMSVs have not implemented va_copy. remove va_copy at MSVC environment.\nIt will malloc buffer each time.\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n compat/winansi.c |    8 ++++++++\n 1 files changed, 8 insertions(+), 0 deletions(-)\n\ndiff --git a/compat/winansi.c b/compat/winansi.c\nindex 9217c24..6091138 100644\n--- a/compat/winansi.c\n+++ b/compat/winansi.c\n@@ -3,7 +3,11 @@\n  */\n \n #include <windows.h>\n+#ifdef _MSC_VER\n+#include <stdio.h>\n+#else\n #include \"../git-compat-util.h\"\n+#endif\n \n /*\n  Functions to be wrapped:\n@@ -310,9 +314,13 @@ static int winansi_vfprintf(FILE *stream, const char *format, va_list list)\n \tif (!console)\n \t\tgoto abort;\n \n+#ifndef _MSC_VER \n \tva_copy(cp, list);\n \tlen = vsnprintf(small_buf, sizeof(small_buf), format, cp);\n \tva_end(cp);\n+#else\n+\tlen= sizeof(small_buf) ;\n+#endif\n \n \tif (len > sizeof(small_buf) - 1) {\n \t\tbuf = malloc(len + 1);\n-- \n1.6.4.msysgit.0\n\n\n\nFrom 4f7ead893ef71510f5f0b96246692a049cd61d3b Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Sun, 16 Aug 2009 21:04:45 +0800\nSubject: [PATCH 06/11] Add miss git-compat-util.h at regex.c and fnmatch.c\n Add git-compat-util.h to enable build at MSVC environment\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n compat/fnmatch/fnmatch.c |    4 ++++\n compat/regex/regex.c     |    4 ++++\n 2 files changed, 8 insertions(+), 0 deletions(-)\n\ndiff --git a/compat/fnmatch/fnmatch.c b/compat/fnmatch/fnmatch.c\nindex 14feac7..5cbd49c 100644\n--- a/compat/fnmatch/fnmatch.c\n+++ b/compat/fnmatch/fnmatch.c\n@@ -16,6 +16,10 @@\n    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n    Boston, MA 02111-1307, USA.  */\n \n+#ifdef _MSC_VER\n+#include \"git-compat-util.h\"\n+#endif\n+\n #if HAVE_CONFIG_H\n # include <config.h>\n #endif\ndiff --git a/compat/regex/regex.c b/compat/regex/regex.c\nindex 5728de1..2298a3a 100644\n--- a/compat/regex/regex.c\n+++ b/compat/regex/regex.c\n@@ -20,6 +20,10 @@\n    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */\n \n /* AIX requires this to be the first thing in the file. */\n+#ifdef _MSC_VER\n+#include \"git-compat-util.h\"\n+#endif\n+\n #if defined (_AIX) && !defined (REGEX_MALLOC)\n   #pragma alloca\n #endif\n-- \n1.6.4.msysgit.0\n\n\n\nFrom ee80ee9f5f62eded25405a6158ded556216723f4 Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Mon, 17 Aug 2009 14:52:01 +0800\nSubject: [PATCH 07/11] Add  O_BINARY flag to open flag at mingw.c\n\nWindows will convert CR\\LF and union code at text mode.\nGit doesn't like this. Add O_BINARY flag to open function\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n compat/mingw.c |    4 ++--\n 1 files changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/compat/mingw.c b/compat/mingw.c\nindex 75c74b1..d5fa0ed 100644\n--- a/compat/mingw.c\n+++ b/compat/mingw.c\n@@ -132,7 +132,7 @@ int mingw_open (const char *filename, int oflags, ...)\n \tif (!strcmp(filename, \"/dev/null\"))\n \t\tfilename = \"nul\";\n \n-\tfd = open(filename, oflags, mode);\n+\tfd = open(filename, oflags | O_BINARY, mode);\n \n \tif (fd < 0 && (oflags & O_CREAT) && errno == EACCES) {\n \t\tDWORD attrs = GetFileAttributes(filename);\n@@ -278,7 +278,7 @@ int mkstemp(char *template)\n \tchar *filename = mktemp(template);\n \tif (filename == NULL)\n \t\treturn -1;\n-\treturn open(filename, O_RDWR | O_CREAT, 0600);\n+\treturn open(filename, O_RDWR | O_CREAT | O_BINARY, 0600);\n }\n \n int gettimeofday(struct timeval *tv, void *tz)\n-- \n1.6.4.msysgit.0\n\n\n\nFrom 7783d7e2d367588b4b9f8d2aa32e3135af7d12a0 Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Mon, 17 Aug 2009 14:54:31 +0800\nSubject: [PATCH 08/11] Place __stdcall to correct position.\n\nMSVC require __stdcall is between return value and function name.\nALL Win32 API definition is as TYPE WINAPI function name\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n compat/mingw.c |    4 ++--\n run-command.c  |    4 ++--\n 2 files changed, 4 insertions(+), 4 deletions(-)\n\ndiff --git a/compat/mingw.c b/compat/mingw.c\nindex d5fa0ed..0c9c793 100644\n--- a/compat/mingw.c\n+++ b/compat/mingw.c\n@@ -1017,7 +1017,7 @@ static sig_handler_t timer_fn = SIG_DFL;\n  * length to call the signal handler.\n  */\n \n-static __stdcall unsigned ticktack(void *dummy)\n+static unsigned __stdcall ticktack(void *dummy)\n {\n \twhile (WaitForSingleObject(timer_event, timer_interval) == WAIT_TIMEOUT) {\n \t\tif (timer_fn == SIG_DFL)\n@@ -1146,7 +1146,7 @@ void mingw_open_html(const char *unixpath)\n \n int link(const char *oldpath, const char *newpath)\n {\n-\ttypedef BOOL WINAPI (*T)(const char*, const char*, LPSECURITY_ATTRIBUTES);\n+\ttypedef  BOOL (WINAPI *T)(const char*, const char*, LPSECURITY_ATTRIBUTES);\n \tstatic T create_hard_link = NULL;\n \tif (!create_hard_link) {\n \t\tcreate_hard_link = (T) GetProcAddress(\ndiff --git a/run-command.c b/run-command.c\nindex df139da..423b506 100644\n--- a/run-command.c\n+++ b/run-command.c\n@@ -295,12 +295,12 @@ int run_command_v_opt_cd_env(const char **argv, int opt, const char *dir, const\n }\n \n #if defined(__MINGW32__) || defined(_MSC_VER)\n-static __stdcall unsigned run_thread(void *data)\n+static unsigned __stdcall run_thread(void *data)\n {\n \tstruct async *async = data;\n \treturn async->proc(async->fd_for_proc, async->data);\n }\n-#endif\n+#endif /* __MINGW32__ || _MSC_VER */\n \n int start_async(struct async *async)\n {\n-- \n1.6.4.msysgit.0\n\n\n\nFrom 6add8b13e7b5266ba4b125e826e78bed5f72b7f7 Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Mon, 17 Aug 2009 14:56:26 +0800\nSubject: [PATCH 09/11] Add MSVC porting header files.\n\nAdd unix head file, dirent.h, unistd.h  and time.h\nAdd MSVC special porting head file msvc.h and msvc.c.\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n compat/msvc.c                   |   33 ++++++++++\n compat/msvc.h                   |   95 +++++++++++++++++++++++++++++\n compat/vcbuild/include/dirent.h |  127 +++++++++++++++++++++++++++++++++++++++\n compat/vcbuild/include/unistd.h |   92 ++++++++++++++++++++++++++++\n compat/vcbuild/sys/time.h       |   21 +++++++\n git-compat-util.h               |   12 ++++-\n 6 files changed, 379 insertions(+), 1 deletions(-)\n create mode 100644 compat/msvc.c\n create mode 100644 compat/msvc.h\n create mode 100644 compat/vcbuild/include/dirent.h\n create mode 100644 compat/vcbuild/include/unistd.h\n create mode 100644 compat/vcbuild/sys/time.h\n\ndiff --git a/compat/msvc.c b/compat/msvc.c\nnew file mode 100644\nindex 0000000..80afd4d\n--- /dev/null\n+++ b/compat/msvc.c\n@@ -0,0 +1,33 @@\n+#include \"../git-compat-util.h\"\n+#include \"win32.h\"\n+#include <conio.h>\n+#include \"../strbuf.h\"\n+\n+DIR *opendir(const char *name)\n+{\n+\tint len;\n+\tDIR *p;\n+\tp = (DIR*)malloc(sizeof(DIR));\n+\tmemset(p, 0, sizeof(DIR));\n+\tstrncpy(p->dd_name, name, PATH_MAX);\n+\tlen = strlen(p->dd_name);\n+\tp->dd_name[len] = '/';\n+\tp->dd_name[len+1] = '*';\n+\n+\tif (p == NULL)\n+\t\treturn NULL;\n+\n+\tp->dd_handle = _findfirst(p->dd_name, &p->dd_dta);\n+\n+\tif (p->dd_handle == -1) {\n+\t\tfree(p);\n+\t\treturn NULL;\n+\t}\n+\treturn p;\n+}\n+int closedir(DIR *dir)\n+{\n+\t_findclose(dir->dd_handle);\n+\tfree(dir);\n+\treturn 0;\n+}\ndiff --git a/compat/msvc.h b/compat/msvc.h\nnew file mode 100644\nindex 0000000..6071565\n--- /dev/null\n+++ b/compat/msvc.h\n@@ -0,0 +1,95 @@\n+#ifndef __MSVC__HEAD\n+#define __MSVC__HEAD\n+\n+#define WINVER 0x0500\n+#define _WIN32_WINNT 0x0500\n+#define _WIN32_WINDOWS 0x0410\n+#define _WIN32_IE 0x0700\n+#define NTDDI_VERSION NTDDI_WIN2KSP1\n+#include <winsock2.h>\n+\n+/*Configuration*/\n+\n+#define NO_PREAD\n+#define NO_OPENSSL\n+#define NO_LIBGEN_H\n+#define NO_SYMLINK_HEAD\n+#define NO_IPV6\n+#define NO_SETENV\n+#define NO_UNSETENV\n+#define NO_STRCASESTR\n+#define NO_STRLCPY\n+#define NO_MEMMEM\n+#define NO_C99_FORMAT\n+#define NO_STRTOUMAX\n+#define NO_MKDTEMP\n+#define NO_MKSTEMPS\n+\n+#define RUNTIME_PREFIX\n+#define NO_ST_BLOCKS_IN_STRUCT_STAT\n+#define NO_NSEC\n+#define USE_WIN32_MMAP\n+#define USE_NED_ALLOCATOR\n+\n+#define NO_REGEX\n+\n+#define NO_SYS_SELECT_H\n+#define NO_PTHEADS\n+#define HAVE_STRING_H 1\n+#define STDC_HEADERS\n+#define NO_ICONV\n+\n+#define inline __inline\n+#define __inline__ __inline\n+\n+#define SNPRINTF_RETURNS_BOGUS\n+\n+#define SHA1_HEADER \"mozilla-sha1\\\\sha1.h\"\n+\n+#define ETC_GITCONFIG \"%HOME%\"\n+\n+#define NO_PTHREADS\n+#define NO_CURL\n+\n+\n+#define NO_STRTOUMAX\n+#define REGEX_MALLOC\n+\n+\n+#define GIT_EXEC_PATH \"bin\"\n+#define GIT_VERSION \"1.6\"\n+#define BINDIR \"bin\"\n+#define PREFIX \".\"\n+#define GIT_MAN_PATH \"man\"\n+#define GIT_INFO_PATH \"info\"\n+#define GIT_HTML_PATH \"html\"\n+#define DEFAULT_GIT_TEMPLATE_DIR \"templates\"\n+\n+#define NO_STRLCPY\n+#define NO_UNSETENV\n+#define NO_SETENV\n+\n+#define strdup _strdup\n+#define read _read\n+#define close _close\n+#define dup _dup\n+#define dup2 _dup2\n+#define strncasecmp _strnicmp\n+#define strtoull _strtoui64\n+\n+#define __attribute__(x)\n+\n+static __inline int strcasecmp (const char *s1, const char *s2)\n+{\n+\tint size1=strlen(s1);\n+\tint sisz2=strlen(s2);\n+\n+\treturn _strnicmp(s1,s2,sisz2>size1?sisz2:size1);\n+}\n+\n+#include \"compat/mingw.h\"\n+#undef ERROR\n+#undef stat\n+#define stat(x,y) mingw_lstat\n+#define stat      _stat64\n+#endif\n\\ No newline at end of file\ndiff --git a/compat/vcbuild/include/dirent.h b/compat/vcbuild/include/dirent.h\nnew file mode 100644\nindex 0000000..a6b6f4c\n--- /dev/null\n+++ b/compat/vcbuild/include/dirent.h\n@@ -0,0 +1,127 @@\n+/*\n+ * DIRENT.H (formerly DIRLIB.H)\n+ * This file has no copyright assigned and is placed in the Public Domain.\n+ * This file is a part of the mingw-runtime package.\n+ * No warranty is given; refer to the file DISCLAIMER within the package.\n+ *\n+ */\n+#ifndef _DIRENT_H_\n+#define _DIRENT_H_\n+\n+/* All the headers include this file. */\n+//#include <_mingw.h>\n+\n+#include <io.h>\n+\n+#define PATH_MAX 512\n+\n+#define __MINGW_NOTHROW\n+\n+#ifndef RC_INVOKED\n+\n+#ifdef __cplusplus\n+extern \"C\" {\n+#endif\n+\n+struct dirent\n+{\n+\tlong\t\td_ino;\t\t/* Always zero. */\n+\tunsigned short\td_reclen;\t/* Always zero. */\n+\tunsigned short\td_namlen;\t/* Length of name in d_name. */\n+\tchar\t\td_name[FILENAME_MAX]; /* File name. */\n+};\n+\n+/*\n+ * This is an internal data structure. Good programmers will not use it\n+ * except as an argument to one of the functions below.\n+ * dd_stat field is now int (was short in older versions).\n+ */\n+typedef struct\n+{\n+\t/* disk transfer area for this dir */\n+\tstruct _finddata_t\tdd_dta;\n+\n+\t/* dirent struct to return from dir (NOTE: this makes this thread\n+\t * safe as long as only one thread uses a particular DIR struct at\n+\t * a time) */\n+\tstruct dirent\t\tdd_dir;\n+\n+\t/* _findnext handle */\n+\tlong\t\t\tdd_handle;\n+\n+\t/*\n+         * Status of search:\n+\t *   0 = not started yet (next entry to read is first entry)\n+\t *  -1 = off the end\n+\t *   positive = 0 based index of next entry\n+\t */\n+\tint\t\t\tdd_stat;\n+\n+\t/* given path for dir with search pattern (struct is extended) */\n+\tchar\t\t\tdd_name[PATH_MAX+3];\n+} DIR;\n+\n+DIR* __cdecl __MINGW_NOTHROW opendir (const char*);\n+struct dirent* __cdecl __MINGW_NOTHROW readdir (DIR*);\n+int __cdecl __MINGW_NOTHROW closedir (DIR*);\n+void __cdecl __MINGW_NOTHROW rewinddir (DIR*);\n+long __cdecl __MINGW_NOTHROW telldir (DIR*);\n+void __cdecl __MINGW_NOTHROW seekdir (DIR*, long);\n+\n+\n+/* wide char versions */\n+\n+struct _wdirent\n+{\n+\tlong\t\td_ino;\t\t/* Always zero. */\n+\tunsigned short\td_reclen;\t/* Always zero. */\n+\tunsigned short\td_namlen;\t/* Length of name in d_name. */\n+\twchar_t\t\td_name[FILENAME_MAX]; /* File name. */\n+};\n+\n+/*\n+ * This is an internal data structure. Good programmers will not use it\n+ * except as an argument to one of the functions below.\n+ */\n+typedef struct\n+{\n+\t/* disk transfer area for this dir */\n+\t//struct _wfinddata_t\tdd_dta;\n+\n+\t/* dirent struct to return from dir (NOTE: this makes this thread\n+\t * safe as long as only one thread uses a particular DIR struct at\n+\t * a time) */\n+\tstruct _wdirent\t\tdd_dir;\n+\n+\t/* _findnext handle */\n+\tlong\t\t\tdd_handle;\n+\n+\t/*\n+         * Status of search:\n+\t *   0 = not started yet (next entry to read is first entry)\n+\t *  -1 = off the end\n+\t *   positive = 0 based index of next entry\n+\t */\n+\tint\t\t\tdd_stat;\n+\n+\t/* given path for dir with search pattern (struct is extended) */\n+\twchar_t\t\t\tdd_name[1];\n+} _WDIR;\n+\n+\n+\n+_WDIR* __cdecl __MINGW_NOTHROW _wopendir (const wchar_t*);\n+struct _wdirent*  __cdecl __MINGW_NOTHROW _wreaddir (_WDIR*);\n+int __cdecl __MINGW_NOTHROW _wclosedir (_WDIR*);\n+void __cdecl __MINGW_NOTHROW _wrewinddir (_WDIR*);\n+long __cdecl __MINGW_NOTHROW _wtelldir (_WDIR*);\n+void __cdecl __MINGW_NOTHROW _wseekdir (_WDIR*, long);\n+\n+\n+#ifdef\t__cplusplus\n+}\n+#endif\n+\n+#endif\t/* Not RC_INVOKED */\n+\n+#endif\t/* Not _DIRENT_H_ */\ndiff --git a/compat/vcbuild/include/unistd.h b/compat/vcbuild/include/unistd.h\nnew file mode 100644\nindex 0000000..a0f59e6\n--- /dev/null\n+++ b/compat/vcbuild/include/unistd.h\n@@ -0,0 +1,92 @@\n+#ifndef _UNISTD_\n+#define _UNISTD_\n+\n+/* Win32 define for porting git*/\n+\n+#ifndef _MODE_T_\n+#define\t_MODE_T_\n+typedef unsigned short _mode_t;\n+\n+#ifndef\t_NO_OLDNAMES\n+typedef _mode_t\tmode_t;\n+#endif\n+#endif\t/* Not _MODE_T_ */\n+\n+#ifndef _SSIZE_T_\n+#define _SSIZE_T_\n+typedef long _ssize_t;\n+\n+#ifndef\t_OFF_T_\n+#define\t_OFF_T_\n+typedef long _off_t;\n+\n+#ifndef\t_NO_OLDNAMES\n+typedef _off_t\toff_t;\n+#endif\n+#endif\t/* Not _OFF_T_ */\n+\n+\n+#ifndef\t_NO_OLDNAMES\n+typedef _ssize_t ssize_t;\n+#endif\n+#endif /* Not _SSIZE_T_ */\n+\n+typedef signed char int8_t;\n+typedef unsigned char   uint8_t;\n+typedef short  int16_t;\n+typedef unsigned short  uint16_t;\n+typedef int  int32_t;\n+typedef unsigned   uint32_t;\n+typedef long long  int64_t;\n+typedef unsigned long long   uint64_t;\n+\n+typedef long long  intmax_t;\n+typedef unsigned long long uintmax_t;\n+\n+typedef int64_t off64_t;\n+\n+#define STDOUT_FILENO 1\n+#define STDERR_FILENO 2\n+\n+/* Some defines for _access nAccessMode (MS doesn't define them, but\n+ * it doesn't seem to hurt to add them). */\n+#define\tF_OK\t0\t/* Check for file existence */\n+/* Well maybe it does hurt.  On newer versions of MSVCRT, an access mode\n+   of 1 causes invalid parameter error. */ \n+#define\tX_OK\t0\t/* MS access() doesn't check for execute permission. */\n+#define\tW_OK\t2\t/* Check for write permission */\n+#define\tR_OK\t4\t/* Check for read permission */\n+\n+#define\t_S_IFIFO\t0x1000\t/* FIFO */\n+#define\t_S_IFCHR\t0x2000\t/* Character */\n+#define\t_S_IFBLK\t0x3000\t/* Block: Is this ever set under w32? */\n+#define\t_S_IFDIR\t0x4000\t/* Directory */\n+#define\t_S_IFREG\t0x8000\t/* Regular */\n+\n+#define\t_S_IFMT\t\t0xF000\t/* File type mask */\n+\n+#define\t_S_IXUSR\t_S_IEXEC\n+#define\t_S_IWUSR\t_S_IWRITE\n+#define\t_S_IRUSR\t_S_IREAD\n+#define\t_S_ISDIR(m)\t(((m) & _S_IFMT) == _S_IFDIR)\n+\n+#define\tS_IFIFO\t\t_S_IFIFO\n+#define\tS_IFCHR\t\t_S_IFCHR\n+#define\tS_IFBLK\t\t_S_IFBLK\n+#define\tS_IFDIR\t\t_S_IFDIR\n+#define\tS_IFREG\t\t_S_IFREG\n+#define\tS_IFMT\t\t_S_IFMT\n+#define\tS_IEXEC\t\t_S_IEXEC\n+#define\tS_IWRITE\t_S_IWRITE\n+#define\tS_IREAD\t\t_S_IREAD\n+#define\tS_IRWXU\t\t_S_IRWXU\n+#define\tS_IXUSR\t\t_S_IXUSR\n+#define\tS_IWUSR\t\t_S_IWUSR\n+#define\tS_IRUSR\t\t_S_IRUSR\n+\n+\n+#define\tS_ISDIR(m)\t(((m) & S_IFMT) == S_IFDIR)\n+#define\tS_ISREG(m)\t(((m) & S_IFMT) == S_IFREG)\n+#define\tS_ISFIFO(m)\t(((m) & S_IFMT) == S_IFIFO)\n+\n+#endif\n\\ No newline at end of file\ndiff --git a/compat/vcbuild/sys/time.h b/compat/vcbuild/sys/time.h\nnew file mode 100644\nindex 0000000..6ed82c0\n--- /dev/null\n+++ b/compat/vcbuild/sys/time.h\n@@ -0,0 +1,21 @@\n+#ifndef\t_UTIME_H_\n+#define\t_UTIME_H_\n+/*\n+ * Structure used by _utime function.\n+ */\n+struct _utimbuf\n+{\n+\ttime_t\tactime;\t\t/* Access time */\n+\ttime_t\tmodtime;\t/* Modification time */\n+};\n+\n+#ifndef\t_NO_OLDNAMES\n+/* NOTE: Must be the same as _utimbuf above. */\n+struct utimbuf\n+{\n+\ttime_t\tactime;\n+\ttime_t\tmodtime;\n+};\n+#endif\t/* Not _NO_OLDNAMES */\n+\n+#endif\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex 9f941e4..cb89294 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -77,8 +77,10 @@\n #include <string.h>\n #include <errno.h>\n #include <limits.h>\n+#ifndef _MSC_VER\n #include <sys/param.h>\n #include <sys/types.h>\n+#endif\n #include <dirent.h>\n #include <sys/time.h>\n #include <time.h>\n@@ -86,7 +88,12 @@\n #include <fnmatch.h>\n #include <assert.h>\n #include <regex.h>\n+\n+#ifndef _MSC_VER\n #include <utime.h>\n+#endif\n+\n+#ifndef _MSC_VER\n #ifndef __MINGW32__\n #include <sys/wait.h>\n #include <sys/poll.h>\n@@ -114,7 +121,10 @@\n #else \t/* __MINGW32__ */\n /* pull in Windows compatibility stuff */\n #include \"compat/mingw.h\"\n-#endif\t/* __MINGW32__ */\n+#endif  /* __MINGW32__ */\n+#else   /* _MSC_VER */\n+#include \"compat/msvc.h\"\n+#endif\t/* _MSC_VER */\n \n #ifndef NO_LIBGEN_H\n #include <libgen.h>\n-- \n1.6.4.msysgit.0\n\n\n\nFrom 84c6da8e081b453c2ae64b1481ab385df5904c95 Mon Sep 17 00:00:00 2001\nFrom: Frank Li <lznuaa@gmail.com>\nDate: Mon, 17 Aug 2009 14:59:46 +0800\nSubject: [PATCH 10/11] Add MSVC Project file\n\nAdd libgit.vcproj to build common library.\nAdd git.vcproj to build git program.\n\nSigned-off-by: Frank Li <lznuaa@gmail.com>\n---\n compat/vcbuild/git/git.vcproj       |  197 +++++\n compat/vcbuild/libgit/libgit.vcproj | 1347 +++++++++++++++++++++++++++++++++++\n 2 files changed, 1544 insertions(+), 0 deletions(-)\n create mode 100644 compat/vcbuild/git/git.vcproj\n create mode 100644 compat/vcbuild/libgit/libgit.vcproj\n\ndiff --git a/compat/vcbuild/git/git.vcproj b/compat/vcbuild/git/git.vcproj\nnew file mode 100644\nindex 0000000..6f85de3\n--- /dev/null\n+++ b/compat/vcbuild/git/git.vcproj\n@@ -0,0 +1,197 @@\n+<?xml version=\"1.0\" encoding=\"gb2312\"?>\n+<VisualStudioProject\n+\tProjectType=\"Visual C++\"\n+\tVersion=\"9.00\"\n+\tName=\"git\"\n+\tProjectGUID=\"{E3E30E51-C5AD-407B-AB43-985E4111474A}\"\n+\tRootNamespace=\"git\"\n+\tKeyword=\"Win32Proj\"\n+\tTargetFrameworkVersion=\"196613\"\n+\t>\n+\t<Platforms>\n+\t\t<Platform\n+\t\t\tName=\"Win32\"\n+\t\t/>\n+\t</Platforms>\n+\t<ToolFiles>\n+\t</ToolFiles>\n+\t<Configurations>\n+\t\t<Configuration\n+\t\t\tName=\"Debug|Win32\"\n+\t\t\tOutputDirectory=\"$(SolutionDir)$(ConfigurationName)\\bin\"\n+\t\t\tIntermediateDirectory=\"$(ConfigurationName)\"\n+\t\t\tConfigurationType=\"1\"\n+\t\t\tCharacterSet=\"0\"\n+\t\t\t>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPreBuildEventTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCCustomBuildTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCXMLDataGeneratorTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCWebServiceProxyGeneratorTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCMIDLTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCCLCompilerTool\"\n+\t\t\t\tOptimization=\"0\"\n+\t\t\t\tAdditionalIncludeDirectories=\"..\\..\\..;..\\..\\..\\..\\zlib;..\\..;..\\;..\\include;..\\..\\..\\compat;..\\..\\..\\compat\\fnmatch;..\\..\\..\\compat\\regex;.\\\"\n+\t\t\t\tPreprocessorDefinitions=\"WIN32;_DEBUG;_CONSOLE\"\n+\t\t\t\tMinimalRebuild=\"true\"\n+\t\t\t\tBasicRuntimeChecks=\"3\"\n+\t\t\t\tRuntimeLibrary=\"3\"\n+\t\t\t\tUsePrecompiledHeader=\"0\"\n+\t\t\t\tWarningLevel=\"3\"\n+\t\t\t\tDebugInformationFormat=\"4\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCManagedResourceCompilerTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCResourceCompilerTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPreLinkEventTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCLinkerTool\"\n+\t\t\t\tAdditionalDependencies=\"wininet.lib ws2_32.lib \"\n+\t\t\t\tLinkIncremental=\"2\"\n+\t\t\t\tGenerateDebugInformation=\"true\"\n+\t\t\t\tSubSystem=\"1\"\n+\t\t\t\tTargetMachine=\"1\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCALinkTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCManifestTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCXDCMakeTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCBscMakeTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCFxCopTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCAppVerifierTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPostBuildEventTool\"\n+\t\t\t/>\n+\t\t</Configuration>\n+\t\t<Configuration\n+\t\t\tName=\"Release|Win32\"\n+\t\t\tOutputDirectory=\"$(SolutionDir)$(ConfigurationName)\\bin\"\n+\t\t\tIntermediateDirectory=\"$(ConfigurationName)\"\n+\t\t\tConfigurationType=\"1\"\n+\t\t\tCharacterSet=\"0\"\n+\t\t\tWholeProgramOptimization=\"1\"\n+\t\t\t>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPreBuildEventTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCCustomBuildTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCXMLDataGeneratorTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCWebServiceProxyGeneratorTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCMIDLTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCCLCompilerTool\"\n+\t\t\t\tOptimization=\"2\"\n+\t\t\t\tEnableIntrinsicFunctions=\"true\"\n+\t\t\t\tAdditionalIncludeDirectories=\"..\\..\\..;..\\..\\..\\..\\zlib;..\\..;..\\;..\\include;..\\..\\..\\compat;..\\..\\..\\compat\\fnmatch;..\\..\\..\\compat\\regex;.\\\"\n+\t\t\t\tPreprocessorDefinitions=\"WIN32;NDEBUG;_CONSOLE\"\n+\t\t\t\tRuntimeLibrary=\"2\"\n+\t\t\t\tEnableFunctionLevelLinking=\"true\"\n+\t\t\t\tUsePrecompiledHeader=\"0\"\n+\t\t\t\tWarningLevel=\"3\"\n+\t\t\t\tDebugInformationFormat=\"3\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCManagedResourceCompilerTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCResourceCompilerTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPreLinkEventTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCLinkerTool\"\n+\t\t\t\tAdditionalDependencies=\"wininet.lib ws2_32.lib \"\n+\t\t\t\tLinkIncremental=\"1\"\n+\t\t\t\tGenerateDebugInformation=\"true\"\n+\t\t\t\tSubSystem=\"1\"\n+\t\t\t\tOptimizeReferences=\"2\"\n+\t\t\t\tEnableCOMDATFolding=\"2\"\n+\t\t\t\tTargetMachine=\"1\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCALinkTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCManifestTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCXDCMakeTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCBscMakeTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCFxCopTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCAppVerifierTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPostBuildEventTool\"\n+\t\t\t/>\n+\t\t</Configuration>\n+\t</Configurations>\n+\t<References>\n+\t</References>\n+\t<Files>\n+\t\t<Filter\n+\t\t\tName=\"Source Files\"\n+\t\t\tFilter=\"cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx\"\n+\t\t\tUniqueIdentifier=\"{4FC737F1-C7A5-4376-A066-2A32D752A2FF}\"\n+\t\t\t>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\git.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t</Filter>\n+\t\t<Filter\n+\t\t\tName=\"Header Files\"\n+\t\t\tFilter=\"h;hpp;hxx;hm;inl;inc;xsd\"\n+\t\t\tUniqueIdentifier=\"{93995380-89BD-4b04-88EB-625FBE52EBFB}\"\n+\t\t\t>\n+\t\t</Filter>\n+\t\t<Filter\n+\t\t\tName=\"Resource Files\"\n+\t\t\tFilter=\"rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav\"\n+\t\t\tUniqueIdentifier=\"{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}\"\n+\t\t\t>\n+\t\t</Filter>\n+\t</Files>\n+\t<Globals>\n+\t</Globals>\n+</VisualStudioProject>\ndiff --git a/compat/vcbuild/libgit/libgit.vcproj b/compat/vcbuild/libgit/libgit.vcproj\nnew file mode 100644\nindex 0000000..bbc3aed\n--- /dev/null\n+++ b/compat/vcbuild/libgit/libgit.vcproj\n@@ -0,0 +1,1347 @@\n+<?xml version=\"1.0\" encoding=\"gb2312\"?>\n+<VisualStudioProject\n+\tProjectType=\"Visual C++\"\n+\tVersion=\"9.00\"\n+\tName=\"libgit\"\n+\tProjectGUID=\"{F6DEC8C3-B803-4A86-8848-430F08B499E3}\"\n+\tRootNamespace=\"libgit\"\n+\tKeyword=\"Win32Proj\"\n+\tTargetFrameworkVersion=\"196613\"\n+\t>\n+\t<Platforms>\n+\t\t<Platform\n+\t\t\tName=\"Win32\"\n+\t\t/>\n+\t</Platforms>\n+\t<ToolFiles>\n+\t</ToolFiles>\n+\t<Configurations>\n+\t\t<Configuration\n+\t\t\tName=\"Debug|Win32\"\n+\t\t\tOutputDirectory=\"$(SolutionDir)$(ConfigurationName)\"\n+\t\t\tIntermediateDirectory=\"$(ConfigurationName)\"\n+\t\t\tConfigurationType=\"4\"\n+\t\t\tCharacterSet=\"0\"\n+\t\t\t>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPreBuildEventTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCCustomBuildTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCXMLDataGeneratorTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCWebServiceProxyGeneratorTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCMIDLTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCCLCompilerTool\"\n+\t\t\t\tOptimization=\"0\"\n+\t\t\t\tInlineFunctionExpansion=\"1\"\n+\t\t\t\tAdditionalIncludeDirectories=\"..\\..\\..;..\\..\\..\\..\\zlib;..\\..;..\\;..\\include;..\\..\\..\\compat;..\\..\\..\\compat\\fnmatch;..\\..\\..\\compat\\regex;.\\\"\n+\t\t\t\tPreprocessorDefinitions=\"WIN32;_DEBUG;_LIB\"\n+\t\t\t\tMinimalRebuild=\"true\"\n+\t\t\t\tBasicRuntimeChecks=\"3\"\n+\t\t\t\tRuntimeLibrary=\"3\"\n+\t\t\t\tUsePrecompiledHeader=\"0\"\n+\t\t\t\tWarningLevel=\"3\"\n+\t\t\t\tDebugInformationFormat=\"3\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCManagedResourceCompilerTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCResourceCompilerTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPreLinkEventTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCLibrarianTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCALinkTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCXDCMakeTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCBscMakeTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCFxCopTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPostBuildEventTool\"\n+\t\t\t/>\n+\t\t</Configuration>\n+\t\t<Configuration\n+\t\t\tName=\"Release|Win32\"\n+\t\t\tOutputDirectory=\"$(SolutionDir)$(ConfigurationName)\"\n+\t\t\tIntermediateDirectory=\"$(ConfigurationName)\"\n+\t\t\tConfigurationType=\"4\"\n+\t\t\tCharacterSet=\"0\"\n+\t\t\tWholeProgramOptimization=\"1\"\n+\t\t\t>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPreBuildEventTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCCustomBuildTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCXMLDataGeneratorTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCWebServiceProxyGeneratorTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCMIDLTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCCLCompilerTool\"\n+\t\t\t\tOptimization=\"2\"\n+\t\t\t\tInlineFunctionExpansion=\"1\"\n+\t\t\t\tEnableIntrinsicFunctions=\"true\"\n+\t\t\t\tAdditionalIncludeDirectories=\"..\\..\\..;..\\..\\..\\..\\zlib;..\\..;..\\;..\\include;..\\..\\..\\compat;..\\..\\..\\compat\\fnmatch;..\\..\\..\\compat\\regex;.\\\"\n+\t\t\t\tPreprocessorDefinitions=\"WIN32;NDEBUG;_LIB\"\n+\t\t\t\tRuntimeLibrary=\"2\"\n+\t\t\t\tEnableFunctionLevelLinking=\"true\"\n+\t\t\t\tUsePrecompiledHeader=\"0\"\n+\t\t\t\tWarningLevel=\"3\"\n+\t\t\t\tDebugInformationFormat=\"3\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCManagedResourceCompilerTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCResourceCompilerTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPreLinkEventTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCLibrarianTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCALinkTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCXDCMakeTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCBscMakeTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCFxCopTool\"\n+\t\t\t/>\n+\t\t\t<Tool\n+\t\t\t\tName=\"VCPostBuildEventTool\"\n+\t\t\t/>\n+\t\t</Configuration>\n+\t</Configurations>\n+\t<References>\n+\t</References>\n+\t<Files>\n+\t\t<Filter\n+\t\t\tName=\"Source Files\"\n+\t\t\tFilter=\"cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx\"\n+\t\t\tUniqueIdentifier=\"{4FC737F1-C7A5-4376-A066-2A32D752A2FF}\"\n+\t\t\t>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\msvc.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\mozilla-sha1\\sha1.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t</Filter>\n+\t\t<Filter\n+\t\t\tName=\"Header Files\"\n+\t\t\tFilter=\"h;hpp;hxx;hm;inl;inc;xsd\"\n+\t\t\tUniqueIdentifier=\"{93995380-89BD-4b04-88EB-625FBE52EBFB}\"\n+\t\t\t>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\archive.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\attr.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\blob.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\branch.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\bundle.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\cache-tree.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\cache.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\color.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\commit.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\csum-file.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\decorate.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\delta.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diff.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diffcore.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\dir.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\exec_cmd.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\fetch-pack.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\fsck.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\git-compat-util.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\graph.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\grep.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\hash.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\help.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\http.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\levenshtein.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\list-objects.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\ll-merge.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\log-tree.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\mailmap.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\merge-recursive.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\notes.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\object.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pack-refs.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pack-revindex.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pack.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\parse-options.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\patch-ids.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pkt-line.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\progress.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\quote.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\reachable.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\reflog-walk.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\refs.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\remote.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\rerere.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\revision.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\run-command.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\send-pack.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\sha1-lookup.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\shortlog.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\sideband.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\sigchain.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\strbuf.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\string-list.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\tag.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\tar.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\thread-utils.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\transport.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\tree-walk.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\tree.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\unpack-trees.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\userdiff.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\utf8.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\walker.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\wt-status.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff-interface.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t</Filter>\n+\t\t<Filter\n+\t\t\tName=\"Resource Files\"\n+\t\t\tFilter=\"rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav\"\n+\t\t\tUniqueIdentifier=\"{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}\"\n+\t\t\t>\n+\t\t</Filter>\n+\t\t<Filter\n+\t\t\tName=\"compat\"\n+\t\t\t>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\basename.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\cygwin.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\fnmatch\\fnmatch.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\fnmatch\\fnmatch.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\fopen.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\memmem.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\mingw.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\mingw.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\mkdtemp.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\mkstemps.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\pread.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\qsort.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\regex\\regex.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\regex\\regex.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\setenv.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\snprintf.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\strcasestr.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\strlcpy.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\strtoumax.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\unsetenv.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\win32.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\win32mmap.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\compat\\winansi.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t</Filter>\n+\t\t<Filter\n+\t\t\tName=\"git\"\n+\t\t\t>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\abspath.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\alias.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\alloc.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\archive-tar.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\archive-zip.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\archive.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\attr.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\base85.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\bisect.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\blob.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\branch.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-add.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-annotate.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-apply.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-archive.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-bisect--helper.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-blame.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-branch.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-bundle.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-cat-file.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-check-attr.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-check-ref-format.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-checkout-index.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-checkout.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-clean.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-clone.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-commit-tree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-commit.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-config.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-count-objects.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-describe.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-diff-files.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-diff-index.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-diff-tree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-diff.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-fast-export.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-fetch--tool.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-fetch-pack.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-fetch.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-fmt-merge-msg.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-for-each-ref.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-fsck.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-gc.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-grep.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-help.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-init-db.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-log.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-ls-files.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-ls-remote.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-ls-tree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-mailinfo.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-mailsplit.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-merge-base.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-merge-file.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-merge-ours.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-merge-recursive.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-merge.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-mktree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-mv.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-name-rev.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-pack-objects.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-pack-refs.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-prune-packed.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-prune.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-push.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-read-tree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-receive-pack.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-reflog.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-remote.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-rerere.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-reset.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-rev-list.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-rev-parse.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-revert.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-rm.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-send-pack.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-shortlog.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-show-branch.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-show-ref.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-stripspace.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-symbolic-ref.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-tag.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-tar-tree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-unpack-objects.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-update-index.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-update-ref.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-upload-archive.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-verify-pack.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-verify-tag.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\builtin-write-tree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\bundle.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\cache-tree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\color.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\combine-diff.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\commit.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\config.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\connect.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\convert.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\copy.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\csum-file.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\ctype.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\date.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\decorate.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diff-delta.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diff-lib.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diff-no-index.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diff.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diffcore-break.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diffcore-delta.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diffcore-order.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diffcore-pickaxe.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\diffcore-rename.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\dir.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\editor.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\entry.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\environment.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\exec_cmd.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\fsck.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\graph.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\grep.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\hash.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\help.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\ident.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\levenshtein.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\list-objects.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\ll-merge.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\lockfile.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\log-tree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\mailmap.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\match-trees.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\merge-file.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\merge-recursive.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\merge-tree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\name-hash.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\object.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pack-check.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pack-refs.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pack-revindex.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pack-write.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pager.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\parse-options.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\patch-delta.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\patch-ids.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\path.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pkt-line.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\preload-index.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\pretty.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\progress.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\quote.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\reachable.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\read-cache.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\reflog-walk.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\refs.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\remote.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\rerere.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\revision.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\run-command.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\server-info.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\setup.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\sha1-lookup.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\sha1_file.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\sha1_name.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\shallow.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\sideband.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\sigchain.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\strbuf.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\string-list.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\symlinks.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\tag.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\thread-utils.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\trace.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\transport.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\tree-diff.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\tree-walk.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\tree.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\unpack-trees.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\usage.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\userdiff.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\utf8.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\walker.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\wrapper.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\write_or_die.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\ws.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\wt-status.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff-interface.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t</Filter>\n+\t\t<Filter\n+\t\t\tName=\"xdiff\"\n+\t\t\t>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xdiff.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xdiffi.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xdiffi.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xemit.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xemit.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xinclude.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xmacros.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xmerge.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xpatience.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xprepare.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xprepare.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xtypes.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xutils.c\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t\t<File\n+\t\t\t\tRelativePath=\"..\\..\\..\\xdiff\\xutils.h\"\n+\t\t\t\t>\n+\t\t\t</File>\n+\t\t</Filter>\n+\t</Files>\n+\t<Globals>\n+\t</Globals>\n+</VisualStudioProject>\n-- \n1.6.4.msysgit.0\n\n"},{"id":"120884","messageId":"40aa078e0908170619r3d325e0csee466446df474302@mail.gmail.com","threadId":"20635","inReplyTo":"1976ea660908170613ibb9a0fdr7ba630671a6b735f@mail.gmail.com","subject":"Re: Using VC build git (split patch)","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@googlemail.com","sentAt":"2009-08-17T13:19:43Z","receivedAt":"2009-08-17T13:19:43Z","isPatch":false,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"\nOn Mon, Aug 17, 2009 at 3:13 PM, Frank Li<lznuaa@gmail.com> wrote:\n> I try to use git format-patch -M --stdout origin/master | git\n> imap-send to send patch directly according to guide.\n> But imap-send has not ported to msysgit.\n\nThen use send-email, which IS supported in msysgit.\n\nWhile we're on that subject; I guess we should add some documentation\n(a wiki page or something?) on how to use it, as some (simple) setup\non the client side is required for msmtp.\n\n-- \nErik \"kusma\" Faye-Lund\nkusmabite@gmail.com\n(+47) 986 59 656\n"},{"id":"120887","messageId":"alpine.DEB.1.00.0908171542520.4991@intel-tinevez-2-302","threadId":"20635","inReplyTo":"40aa078e0908170619r3d325e0csee466446df474302@mail.gmail.com","subject":"Re: Using VC build git (split patch)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2009-08-17T13:43:24Z","receivedAt":"2009-08-17T13:43:24Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 17 Aug 2009, Erik Faye-Lund wrote:\n\n> On Mon, Aug 17, 2009 at 3:13 PM, Frank Li<lznuaa@gmail.com> wrote:\n> > I try to use git format-patch -M --stdout origin/master | git\n> > imap-send to send patch directly according to guide.\n> > But imap-send has not ported to msysgit.\n> \n> Then use send-email, which IS supported in msysgit.\n\nYes, I would appreciate inline patches.  Otherwise it is pretty awkward \nand time-consuming to quote your patch when I comment on it.\n\nCiao,\nDscho\n"},{"id":"120897","messageId":"1976ea660908170814q30c316aek20d44e67bba4a3ab@mail.gmail.com","threadId":"20635","inReplyTo":"40aa078e0908170619r3d325e0csee466446df474302@mail.gmail.com","subject":"Re: Using VC build git (split patch)","fromName":"Frank Li","fromEmail":"lznuaa@gmail.com","sentAt":"2009-08-17T15:14:48Z","receivedAt":"2009-08-17T15:14:48Z","isPatch":false,"sender":{"key":"lznuaa@gmail.com","avatar":"https://avatars.githubusercontent.com/u/40642?v=4"},"body":"> Then use send-email, which IS supported in msysgit.\n\ngmail require ssl.  ssl.pm miss when I use send-email in msysgit. I\nhave submit bug at msysgit\n\nbest regards\nFrank Li\n"},{"id":"120900","messageId":"40aa078e0908170825i5d1148ffobc41f59df259983@mail.gmail.com","threadId":"20635","inReplyTo":"1976ea660908170814q30c316aek20d44e67bba4a3ab@mail.gmail.com","subject":"Re: Using VC build git (split patch)","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@googlemail.com","sentAt":"2009-08-17T15:25:18Z","receivedAt":"2009-08-17T15:25:18Z","isPatch":false,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Aug 17, 2009 at 5:14 PM, Frank Li<lznuaa@gmail.com> wrote:\n>> Then use send-email, which IS supported in msysgit.\n>\n> gmail require ssl.  ssl.pm miss when I use send-email in msysgit. I\n> have submit bug at msysgit\n\nHave a look at http://code.google.com/p/msysgit/wiki/UsingSendEmail to\nfind out how to use send-email from Windows.\n\n\n\n-- \nErik \"kusma\" Faye-Lund\nkusmabite@gmail.com\n(+47) 986 59 656\n"},{"id":"120954","messageId":"4A899FDB.8080308@gmail.com","threadId":"20635","inReplyTo":"1976ea660908170613ibb9a0fdr7ba630671a6b735f@mail.gmail.com","subject":"Re: Using VC build git (split patch)","fromName":"Marius Storm-Olsen","fromEmail":"marius@storm-olsen.com","sentAt":"2009-08-17T18:22:19Z","receivedAt":"2009-08-17T18:22:19Z","isPatch":false,"sender":{"key":"marius@storm-olsen.com","avatar":"https://avatars.githubusercontent.com/u/1500?v=4"},"body":"\nFrank Li said the following on 17.08.2009 15:13:\n > Thanks Dscho for reviewing my patch patient.\n > I split my patch and read SumbittingPatchs.\n >\n > I try to use git format-patch -M --stdout origin/master | git\n > imap-send to send patch directly according to guide.\n > But imap-send has not ported to msysgit.\n\nHi Frank,\n\nCould you please also update your repo at repo.or.cz, then it'll be \neasier if anyone wants to help you in the process of streamlining the \npatch series?\n\n--\n.marius\n"},{"id":"121040","messageId":"1976ea660908171807x22f4b755r2e522a15ff462917@mail.gmail.com","threadId":"20635","inReplyTo":"4A899FDB.8080308@gmail.com","subject":"Re: [msysGit] Re: Using VC build git (split patch)","fromName":"Frank Li","fromEmail":"lznuaa@gmail.com","sentAt":"2009-08-18T01:07:54Z","receivedAt":"2009-08-18T01:07:54Z","isPatch":false,"sender":{"key":"lznuaa@gmail.com","avatar":"https://avatars.githubusercontent.com/u/40642?v=4"},"body":"> Hi Frank,\n>\n> Could you please also update your repo at repo.or.cz, then it'll be\n> easier if anyone wants to help you in the process of streamlining the\n> patch series?\n>\n\nIt seems network problem yesterday, I can't push anything to\nrepo.or.cz. I will try today.\n"},{"id":"122126","messageId":"a4c8a6d00908301236l4394a471vb83ed2befda3a91@mail.gmail.com","threadId":"20635","inReplyTo":"1976ea660908171807x22f4b755r2e522a15ff462917@mail.gmail.com","subject":"Re: [msysGit] Re: Using VC build git (split patch)","fromName":"Thiago Farina","fromEmail":"tfransosi@gmail.com","sentAt":"2009-08-30T19:36:20Z","receivedAt":"2009-08-30T19:36:20Z","isPatch":false,"sender":{"key":"tfransosi@gmail.com","avatar":"https://avatars.githubusercontent.com/u/970071?v=4"},"body":"Hi\n\nIn line 999 of imap-send.c there is a call to the function socketpair,\nbut apparently it isn't defined anywhere, because the compiler is\nreturning this following error:\n\nError\t2635\terror LNK2019: unresolved external symbol _socketpair\nreferenced in function _imap_open_store\timap-send.obj\timap-send\n\nAnyone faced this problem before?\n\nThanks!\n"},{"id":"122132","messageId":"40aa078e0908301316m68258630oe84c0e9b6191332b@mail.gmail.com","threadId":"20635","inReplyTo":"a4c8a6d00908301236l4394a471vb83ed2befda3a91@mail.gmail.com","subject":"Re: [msysGit] Re: Using VC build git (split patch)","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@googlemail.com","sentAt":"2009-08-30T20:16:15Z","receivedAt":"2009-08-30T20:16:15Z","isPatch":false,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Sun, Aug 30, 2009 at 9:36 PM, Thiago Farina<tfransosi@gmail.com> wrote:\n> Error   2635    error LNK2019: unresolved external symbol _socketpair\n> referenced in function _imap_open_store imap-send.obj   imap-send\n>\n> Anyone faced this problem before?\n\nYes. imap-send isn't supported on windows, since it uses\nposix-functions that aren't available in msvcrt. The Makefile system\nexcludes it for MinGW-builds. Is it added to the vcproj-files?\n\nAny patches that adds a working socketpair()-function (or even better,\nIMO: rewrite the code so socketpair isn't needed) would of course be\nvery welcome. I'd love to have a working imap-send on windows :)\n\n-- \nErik \"kusma\" Faye-Lund\nkusmabite@gmail.com\n(+47) 986 59 656\n"},{"id":"122133","messageId":"a4c8a6d00908301324o25d1cb48u12b527ea68e43680@mail.gmail.com","threadId":"20635","inReplyTo":"40aa078e0908301316m68258630oe84c0e9b6191332b@mail.gmail.com","subject":"Re: [msysGit] Re: Using VC build git (split patch)","fromName":"Thiago Farina","fromEmail":"tfransosi@gmail.com","sentAt":"2009-08-30T20:24:58Z","receivedAt":"2009-08-30T20:24:58Z","isPatch":false,"sender":{"key":"tfransosi@gmail.com","avatar":"https://avatars.githubusercontent.com/u/970071?v=4"},"body":"Hi,\nOn Sun, Aug 30, 2009 at 5:16 PM, Erik Faye-Lund<kusmabite@googlemail.com> wrote:\n> On Sun, Aug 30, 2009 at 9:36 PM, Thiago Farina<tfransosi@gmail.com> wrote:\n>> Error   2635    error LNK2019: unresolved external symbol _socketpair\n>> referenced in function _imap_open_store imap-send.obj   imap-send\n>>\n>> Anyone faced this problem before?\n>\n> Yes. imap-send isn't supported on windows, since it uses\n> posix-functions that aren't available in msvcrt. The Makefile system\n> excludes it for MinGW-builds. Is it added to the vcproj-files?\n>\nYep, an imap-send vcproject with one file(imap-send.c) was added to\ngitbuild.sln.\n"},{"id":"122160","messageId":"1976ea660908301945n74a55bb3p42aef0622e3996c7@mail.gmail.com","threadId":"20635","inReplyTo":"a4c8a6d00908301324o25d1cb48u12b527ea68e43680@mail.gmail.com","subject":"Re: [msysGit] Re: Using VC build git (split patch)","fromName":"Frank Li","fromEmail":"lznuaa@gmail.com","sentAt":"2009-08-31T02:45:16Z","receivedAt":"2009-08-31T02:45:16Z","isPatch":false,"sender":{"key":"lznuaa@gmail.com","avatar":"https://avatars.githubusercontent.com/u/40642?v=4"},"body":"> Yep, an imap-send vcproject with one file(imap-send.c) was added to\n> gitbuild.sln.\n\nSorry, I add imap-send to sln just for testing at solution.\n\nYou can omit this project.\n\nbest regards\nFrank Li\n"}]}