* [PATCH] remove ARM and Mozilla SHA1 implementations
From: Nicolas Pitre @ 2009-08-17 23:56 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
They are both slower than the new BLK_SHA1 implementation, so it is
pointless to keep them around.
Signed-off-by: Nicolas Pitre <nico@cam.org>
---
Someone else would need to make the call for the PPC version. IMHO it
probably should go too, as no Makefile rule ever included it by default
even on PPC platforms. Some reports indicate that the BLK_SHA1 version
is faster on PPC as well.
And because the BLK_SHA1 is faster than the openssl version, then the
BLK_SHA1 could become the default (and only) choice. But one thing
at a time.
Makefile | 26 +------
arm/sha1.c | 82 --------------------
arm/sha1.h | 23 ------
arm/sha1_arm.S | 183 ---------------------------------------------
block-sha1/sha1.c | 6 +-
configure.ac | 10 +--
mozilla-sha1/sha1.c | 151 -------------------------------------
mozilla-sha1/sha1.h | 50 ------------
8 files changed, 7 insertions(+), 524 deletions(-)
diff --git a/Makefile b/Makefile
index f94fe05..4190a5d 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@ all::
# when attempting to read from an fopen'ed directory.
#
# Define NO_OPENSSL environment variable if you do not have OpenSSL.
-# This also implies MOZILLA_SHA1.
+# This also implies BLK_SHA1.
#
# Define NO_CURL if you do not have libcurl installed. git-http-pull and
# git-http-push are not built, and you cannot use http:// and https://
@@ -91,14 +91,6 @@ all::
# Define PPC_SHA1 environment variable when running make to make use of
# a bundled SHA1 routine optimized for PowerPC.
#
-# Define ARM_SHA1 environment variable when running make to make use of
-# a bundled SHA1 routine optimized for ARM.
-#
-# Define MOZILLA_SHA1 environment variable when running make to make use of
-# a bundled SHA1 routine coming from Mozilla. It is GPL'd and should be fast
-# on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default
-# choice) has very fast version optimized for i586.
-#
# Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).
#
# Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).
@@ -930,10 +922,6 @@ else
NO_PTHREADS = YesPlease
endif
endif
-ifneq (,$(findstring arm,$(uname_M)))
- ARM_SHA1 = YesPlease
- NO_MKSTEMPS = YesPlease
-endif
-include config.mak.autogen
-include config.mak
@@ -1025,7 +1013,7 @@ ifndef NO_OPENSSL
endif
else
BASIC_CFLAGS += -DNO_OPENSSL
- MOZILLA_SHA1 = 1
+ BLK_SHA1 = 1
OPENSSL_LIBSSL =
endif
ifdef NEEDS_SSL_WITH_CRYPTO
@@ -1182,20 +1170,10 @@ ifdef PPC_SHA1
SHA1_HEADER = "ppc/sha1.h"
LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
else
-ifdef ARM_SHA1
- SHA1_HEADER = "arm/sha1.h"
- LIB_OBJS += arm/sha1.o arm/sha1_arm.o
-else
-ifdef MOZILLA_SHA1
- SHA1_HEADER = "mozilla-sha1/sha1.h"
- LIB_OBJS += mozilla-sha1/sha1.o
-else
SHA1_HEADER = <openssl/sha.h>
EXTLIBS += $(LIB_4_CRYPTO)
endif
endif
-endif
-endif
ifdef NO_PERL_MAKEMAKER
export NO_PERL_MAKEMAKER
endif
diff --git a/arm/sha1.c b/arm/sha1.c
deleted file mode 100644
index c61ad4a..0000000
--- a/arm/sha1.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * SHA-1 implementation optimized for ARM
- *
- * Copyright: (C) 2005 by Nicolas Pitre <nico@cam.org>
- * Created: September 17, 2005
- */
-
-#include <string.h>
-#include "sha1.h"
-
-extern void arm_sha_transform(uint32_t *hash, const unsigned char *data, uint32_t *W);
-
-void arm_SHA1_Init(arm_SHA_CTX *c)
-{
- c->len = 0;
- c->hash[0] = 0x67452301;
- c->hash[1] = 0xefcdab89;
- c->hash[2] = 0x98badcfe;
- c->hash[3] = 0x10325476;
- c->hash[4] = 0xc3d2e1f0;
-}
-
-void arm_SHA1_Update(arm_SHA_CTX *c, const void *p, unsigned long n)
-{
- uint32_t workspace[80];
- unsigned int partial;
- unsigned long done;
-
- partial = c->len & 0x3f;
- c->len += n;
- if ((partial + n) >= 64) {
- if (partial) {
- done = 64 - partial;
- memcpy(c->buffer + partial, p, done);
- arm_sha_transform(c->hash, c->buffer, workspace);
- partial = 0;
- } else
- done = 0;
- while (n >= done + 64) {
- arm_sha_transform(c->hash, p + done, workspace);
- done += 64;
- }
- } else
- done = 0;
- if (n - done)
- memcpy(c->buffer + partial, p + done, n - done);
-}
-
-void arm_SHA1_Final(unsigned char *hash, arm_SHA_CTX *c)
-{
- uint64_t bitlen;
- uint32_t bitlen_hi, bitlen_lo;
- unsigned int i, offset, padlen;
- unsigned char bits[8];
- static const unsigned char padding[64] = { 0x80, };
-
- bitlen = c->len << 3;
- offset = c->len & 0x3f;
- padlen = ((offset < 56) ? 56 : (64 + 56)) - offset;
- arm_SHA1_Update(c, padding, padlen);
-
- bitlen_hi = bitlen >> 32;
- bitlen_lo = bitlen & 0xffffffff;
- bits[0] = bitlen_hi >> 24;
- bits[1] = bitlen_hi >> 16;
- bits[2] = bitlen_hi >> 8;
- bits[3] = bitlen_hi;
- bits[4] = bitlen_lo >> 24;
- bits[5] = bitlen_lo >> 16;
- bits[6] = bitlen_lo >> 8;
- bits[7] = bitlen_lo;
- arm_SHA1_Update(c, bits, 8);
-
- for (i = 0; i < 5; i++) {
- uint32_t v = c->hash[i];
- hash[0] = v >> 24;
- hash[1] = v >> 16;
- hash[2] = v >> 8;
- hash[3] = v;
- hash += 4;
- }
-}
diff --git a/arm/sha1.h b/arm/sha1.h
deleted file mode 100644
index b61b618..0000000
--- a/arm/sha1.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * SHA-1 implementation optimized for ARM
- *
- * Copyright: (C) 2005 by Nicolas Pitre <nico@cam.org>
- * Created: September 17, 2005
- */
-
-#include <stdint.h>
-
-typedef struct {
- uint64_t len;
- uint32_t hash[5];
- unsigned char buffer[64];
-} arm_SHA_CTX;
-
-void arm_SHA1_Init(arm_SHA_CTX *c);
-void arm_SHA1_Update(arm_SHA_CTX *c, const void *p, unsigned long n);
-void arm_SHA1_Final(unsigned char *hash, arm_SHA_CTX *c);
-
-#define git_SHA_CTX arm_SHA_CTX
-#define git_SHA1_Init arm_SHA1_Init
-#define git_SHA1_Update arm_SHA1_Update
-#define git_SHA1_Final arm_SHA1_Final
diff --git a/arm/sha1_arm.S b/arm/sha1_arm.S
deleted file mode 100644
index 41e9263..0000000
--- a/arm/sha1_arm.S
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * SHA transform optimized for ARM
- *
- * Copyright: (C) 2005 by Nicolas Pitre <nico@cam.org>
- * Created: September 17, 2005
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
- .text
- .globl arm_sha_transform
-
-/*
- * void sha_transform(uint32_t *hash, const unsigned char *data, uint32_t *W);
- *
- * note: the "data" pointer may be unaligned.
- */
-
-arm_sha_transform:
-
- stmfd sp!, {r4 - r8, lr}
-
- @ for (i = 0; i < 16; i++)
- @ W[i] = ntohl(((uint32_t *)data)[i]);
-
-#ifdef __ARMEB__
- mov r4, r0
- mov r0, r2
- mov r2, #64
- bl memcpy
- mov r2, r0
- mov r0, r4
-#else
- mov r3, r2
- mov lr, #16
-1: ldrb r4, [r1], #1
- ldrb r5, [r1], #1
- ldrb r6, [r1], #1
- ldrb r7, [r1], #1
- subs lr, lr, #1
- orr r5, r5, r4, lsl #8
- orr r6, r6, r5, lsl #8
- orr r7, r7, r6, lsl #8
- str r7, [r3], #4
- bne 1b
-#endif
-
- @ for (i = 0; i < 64; i++)
- @ W[i+16] = ror(W[i+13] ^ W[i+8] ^ W[i+2] ^ W[i], 31);
-
- sub r3, r2, #4
- mov lr, #64
-2: ldr r4, [r3, #4]!
- subs lr, lr, #1
- ldr r5, [r3, #8]
- ldr r6, [r3, #32]
- ldr r7, [r3, #52]
- eor r4, r4, r5
- eor r4, r4, r6
- eor r4, r4, r7
- mov r4, r4, ror #31
- str r4, [r3, #64]
- bne 2b
-
- /*
- * The SHA functions are:
- *
- * f1(B,C,D) = (D ^ (B & (C ^ D)))
- * f2(B,C,D) = (B ^ C ^ D)
- * f3(B,C,D) = ((B & C) | (D & (B | C)))
- *
- * Then the sub-blocks are processed as follows:
- *
- * A' = ror(A, 27) + f(B,C,D) + E + K + *W++
- * B' = A
- * C' = ror(B, 2)
- * D' = C
- * E' = D
- *
- * We therefore unroll each loop 5 times to avoid register shuffling.
- * Also the ror for C (and also D and E which are successivelyderived
- * from it) is applied in place to cut on an additional mov insn for
- * each round.
- */
-
- .macro sha_f1, A, B, C, D, E
- ldr r3, [r2], #4
- eor ip, \C, \D
- add \E, r1, \E, ror #2
- and ip, \B, ip, ror #2
- add \E, \E, \A, ror #27
- eor ip, ip, \D, ror #2
- add \E, \E, r3
- add \E, \E, ip
- .endm
-
- .macro sha_f2, A, B, C, D, E
- ldr r3, [r2], #4
- add \E, r1, \E, ror #2
- eor ip, \B, \C, ror #2
- add \E, \E, \A, ror #27
- eor ip, ip, \D, ror #2
- add \E, \E, r3
- add \E, \E, ip
- .endm
-
- .macro sha_f3, A, B, C, D, E
- ldr r3, [r2], #4
- add \E, r1, \E, ror #2
- orr ip, \B, \C, ror #2
- add \E, \E, \A, ror #27
- and ip, ip, \D, ror #2
- add \E, \E, r3
- and r3, \B, \C, ror #2
- orr ip, ip, r3
- add \E, \E, ip
- .endm
-
- ldmia r0, {r4 - r8}
-
- mov lr, #4
- ldr r1, .L_sha_K + 0
-
- /* adjust initial values */
- mov r6, r6, ror #30
- mov r7, r7, ror #30
- mov r8, r8, ror #30
-
-3: subs lr, lr, #1
- sha_f1 r4, r5, r6, r7, r8
- sha_f1 r8, r4, r5, r6, r7
- sha_f1 r7, r8, r4, r5, r6
- sha_f1 r6, r7, r8, r4, r5
- sha_f1 r5, r6, r7, r8, r4
- bne 3b
-
- ldr r1, .L_sha_K + 4
- mov lr, #4
-
-4: subs lr, lr, #1
- sha_f2 r4, r5, r6, r7, r8
- sha_f2 r8, r4, r5, r6, r7
- sha_f2 r7, r8, r4, r5, r6
- sha_f2 r6, r7, r8, r4, r5
- sha_f2 r5, r6, r7, r8, r4
- bne 4b
-
- ldr r1, .L_sha_K + 8
- mov lr, #4
-
-5: subs lr, lr, #1
- sha_f3 r4, r5, r6, r7, r8
- sha_f3 r8, r4, r5, r6, r7
- sha_f3 r7, r8, r4, r5, r6
- sha_f3 r6, r7, r8, r4, r5
- sha_f3 r5, r6, r7, r8, r4
- bne 5b
-
- ldr r1, .L_sha_K + 12
- mov lr, #4
-
-6: subs lr, lr, #1
- sha_f2 r4, r5, r6, r7, r8
- sha_f2 r8, r4, r5, r6, r7
- sha_f2 r7, r8, r4, r5, r6
- sha_f2 r6, r7, r8, r4, r5
- sha_f2 r5, r6, r7, r8, r4
- bne 6b
-
- ldmia r0, {r1, r2, r3, ip, lr}
- add r4, r1, r4
- add r5, r2, r5
- add r6, r3, r6, ror #2
- add r7, ip, r7, ror #2
- add r8, lr, r8, ror #2
- stmia r0, {r4 - r8}
-
- ldmfd sp!, {r4 - r8, pc}
-
-.L_sha_K:
- .word 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6
diff --git a/block-sha1/sha1.c b/block-sha1/sha1.c
index 464cb25..a1228cf 100644
--- a/block-sha1/sha1.c
+++ b/block-sha1/sha1.c
@@ -1,7 +1,9 @@
/*
- * Based on the Mozilla SHA1 (see mozilla-sha1/sha1.c),
- * optimized to do word accesses rather than byte accesses,
+ * SHA1 routine optimized to do word accesses rather than byte accesses,
* and to avoid unnecessary copies into the context array.
+ *
+ * This was initially based on the Mozilla SHA1 implementation, although
+ * none of the original Mozilla code remains.
*/
#include <string.h>
diff --git a/configure.ac b/configure.ac
index 3f1922d..b09b8e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -156,19 +156,11 @@ AC_MSG_NOTICE([CHECKS for site configuration])
# tests. These tests take up a significant amount of the total test time
# but are not needed unless you plan to talk to SVN repos.
#
-# Define MOZILLA_SHA1 environment variable when running make to make use of
-# a bundled SHA1 routine coming from Mozilla. It is GPL'd and should be fast
-# on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default
-# choice) has very fast version optimized for i586.
-#
# Define PPC_SHA1 environment variable when running make to make use of
# a bundled SHA1 routine optimized for PowerPC.
#
-# Define ARM_SHA1 environment variable when running make to make use of
-# a bundled SHA1 routine optimized for ARM.
-#
# Define NO_OPENSSL environment variable if you do not have OpenSSL.
-# This also implies MOZILLA_SHA1.
+# This also implies BLK_SHA1.
#
# Define OPENSSLDIR=/foo/bar if your openssl header and library files are in
# /foo/bar/include and /foo/bar/lib directories.
diff --git a/mozilla-sha1/sha1.c b/mozilla-sha1/sha1.c
deleted file mode 100644
index 95a4ebf..0000000
--- a/mozilla-sha1/sha1.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * The contents of this file are subject to the Mozilla Public
- * License Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
- * The Original Code is SHA 180-1 Reference Implementation (Compact version)
- *
- * The Initial Developer of the Original Code is Paul Kocher of
- * Cryptography Research. Portions created by Paul Kocher are
- * Copyright (C) 1995-9 by Cryptography Research, Inc. All
- * Rights Reserved.
- *
- * Contributor(s):
- *
- * Paul Kocher
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License Version 2 or later (the
- * "GPL"), in which case the provisions of the GPL are applicable
- * instead of those above. If you wish to allow use of your
- * version of this file only under the terms of the GPL and not to
- * allow others to use your version of this file under the MPL,
- * indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by
- * the GPL. If you do not delete the provisions above, a recipient
- * may use your version of this file under either the MPL or the
- * GPL.
- */
-
-#include "sha1.h"
-
-static void shaHashBlock(moz_SHA_CTX *ctx);
-
-void moz_SHA1_Init(moz_SHA_CTX *ctx) {
- int i;
-
- ctx->lenW = 0;
- ctx->sizeHi = ctx->sizeLo = 0;
-
- /* Initialize H with the magic constants (see FIPS180 for constants)
- */
- ctx->H[0] = 0x67452301;
- ctx->H[1] = 0xefcdab89;
- ctx->H[2] = 0x98badcfe;
- ctx->H[3] = 0x10325476;
- ctx->H[4] = 0xc3d2e1f0;
-
- for (i = 0; i < 80; i++)
- ctx->W[i] = 0;
-}
-
-
-void moz_SHA1_Update(moz_SHA_CTX *ctx, const void *_dataIn, int len) {
- const unsigned char *dataIn = _dataIn;
- int i;
-
- /* Read the data into W and process blocks as they get full
- */
- for (i = 0; i < len; i++) {
- ctx->W[ctx->lenW / 4] <<= 8;
- ctx->W[ctx->lenW / 4] |= (unsigned int)dataIn[i];
- if ((++ctx->lenW) % 64 == 0) {
- shaHashBlock(ctx);
- ctx->lenW = 0;
- }
- ctx->sizeLo += 8;
- ctx->sizeHi += (ctx->sizeLo < 8);
- }
-}
-
-
-void moz_SHA1_Final(unsigned char hashout[20], moz_SHA_CTX *ctx) {
- unsigned char pad0x80 = 0x80;
- unsigned char pad0x00 = 0x00;
- unsigned char padlen[8];
- int i;
-
- /* Pad with a binary 1 (e.g. 0x80), then zeroes, then length
- */
- padlen[0] = (unsigned char)((ctx->sizeHi >> 24) & 255);
- padlen[1] = (unsigned char)((ctx->sizeHi >> 16) & 255);
- padlen[2] = (unsigned char)((ctx->sizeHi >> 8) & 255);
- padlen[3] = (unsigned char)((ctx->sizeHi >> 0) & 255);
- padlen[4] = (unsigned char)((ctx->sizeLo >> 24) & 255);
- padlen[5] = (unsigned char)((ctx->sizeLo >> 16) & 255);
- padlen[6] = (unsigned char)((ctx->sizeLo >> 8) & 255);
- padlen[7] = (unsigned char)((ctx->sizeLo >> 0) & 255);
- moz_SHA1_Update(ctx, &pad0x80, 1);
- while (ctx->lenW != 56)
- moz_SHA1_Update(ctx, &pad0x00, 1);
- moz_SHA1_Update(ctx, padlen, 8);
-
- /* Output hash
- */
- for (i = 0; i < 20; i++) {
- hashout[i] = (unsigned char)(ctx->H[i / 4] >> 24);
- ctx->H[i / 4] <<= 8;
- }
-
- /*
- * Re-initialize the context (also zeroizes contents)
- */
- moz_SHA1_Init(ctx);
-}
-
-
-#define SHA_ROT(X,n) (((X) << (n)) | ((X) >> (32-(n))))
-
-static void shaHashBlock(moz_SHA_CTX *ctx) {
- int t;
- unsigned int A,B,C,D,E,TEMP;
-
- for (t = 16; t <= 79; t++)
- ctx->W[t] =
- SHA_ROT(ctx->W[t-3] ^ ctx->W[t-8] ^ ctx->W[t-14] ^ ctx->W[t-16], 1);
-
- A = ctx->H[0];
- B = ctx->H[1];
- C = ctx->H[2];
- D = ctx->H[3];
- E = ctx->H[4];
-
- for (t = 0; t <= 19; t++) {
- TEMP = SHA_ROT(A,5) + (((C^D)&B)^D) + E + ctx->W[t] + 0x5a827999;
- E = D; D = C; C = SHA_ROT(B, 30); B = A; A = TEMP;
- }
- for (t = 20; t <= 39; t++) {
- TEMP = SHA_ROT(A,5) + (B^C^D) + E + ctx->W[t] + 0x6ed9eba1;
- E = D; D = C; C = SHA_ROT(B, 30); B = A; A = TEMP;
- }
- for (t = 40; t <= 59; t++) {
- TEMP = SHA_ROT(A,5) + ((B&C)|(D&(B|C))) + E + ctx->W[t] + 0x8f1bbcdc;
- E = D; D = C; C = SHA_ROT(B, 30); B = A; A = TEMP;
- }
- for (t = 60; t <= 79; t++) {
- TEMP = SHA_ROT(A,5) + (B^C^D) + E + ctx->W[t] + 0xca62c1d6;
- E = D; D = C; C = SHA_ROT(B, 30); B = A; A = TEMP;
- }
-
- ctx->H[0] += A;
- ctx->H[1] += B;
- ctx->H[2] += C;
- ctx->H[3] += D;
- ctx->H[4] += E;
-}
diff --git a/mozilla-sha1/sha1.h b/mozilla-sha1/sha1.h
deleted file mode 100644
index aa48a46..0000000
--- a/mozilla-sha1/sha1.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * The contents of this file are subject to the Mozilla Public
- * License Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
- * The Original Code is SHA 180-1 Header File
- *
- * The Initial Developer of the Original Code is Paul Kocher of
- * Cryptography Research. Portions created by Paul Kocher are
- * Copyright (C) 1995-9 by Cryptography Research, Inc. All
- * Rights Reserved.
- *
- * Contributor(s):
- *
- * Paul Kocher
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License Version 2 or later (the
- * "GPL"), in which case the provisions of the GPL are applicable
- * instead of those above. If you wish to allow use of your
- * version of this file only under the terms of the GPL and not to
- * allow others to use your version of this file under the MPL,
- * indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by
- * the GPL. If you do not delete the provisions above, a recipient
- * may use your version of this file under either the MPL or the
- * GPL.
- */
-
-typedef struct {
- unsigned int H[5];
- unsigned int W[80];
- int lenW;
- unsigned int sizeHi,sizeLo;
-} moz_SHA_CTX;
-
-void moz_SHA1_Init(moz_SHA_CTX *ctx);
-void moz_SHA1_Update(moz_SHA_CTX *ctx, const void *dataIn, int len);
-void moz_SHA1_Final(unsigned char hashout[20], moz_SHA_CTX *ctx);
-
-#define git_SHA_CTX moz_SHA_CTX
-#define git_SHA1_Init moz_SHA1_Init
-#define git_SHA1_Update moz_SHA1_Update
-#define git_SHA1_Final moz_SHA1_Final
^ permalink raw reply related
* Re: [PATCH][resend] git-svn: Respect GIT_SSH setting
From: Karthik R @ 2009-08-17 23:47 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <7vzl9ykovh.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
> Karthik R <karthikr@fastmail.fm> writes:
>
>
>> +# If GIT_SSH is set, also set SVN_SSH...
>> +$ENV{SVN_SSH} = $ENV{GIT_SSH} if defined $ENV{GIT_SSH};
>> +# ... and escape \s in shell-variable on Windows
>> +if ($^O eq 'MSWin32' || $^O eq 'msys') {
>> + $ENV{SVN_SSH} =~ s/\\/\\\\/g if defined $ENV{SVN_SSH};
>> +}
>> +
>>
>
> Two questions.
>
> - What if a user has SVN_SSH exported _and_ wants to use a different one
> from the one s/he uses for git? Naturally such a user would set both
> environment variables and differently, but this seems to override the
> value in SVN_SSH;
>
Do you mean user wants to use a different one with "git svn ...
svn+ssh://" (than the one with "git clone ssh://") ?
In this case
- defining SVN_SSH, but not GIT_SSH will still work (with this patch,
GIT_SSH overrides)
- but SVN_SSH needs to have \\s.
So unless the user already knew of this quirk, we'll only see unescaped
\s - so it *does* make sense to escape the \s (if the user knew, then
too many escaped \s still work).
> - Can a user have SVN_SSH exported, on MSWin32 or msys, and use svn
> outside git? If so, what does the value of SVN_SSH look like? Does it
> typically have necessary doubling of backslashes already?
>
With subversion for Windows, these \\s are not needed (but doesn't cause
any break). The doubling is something to do with the bash (in msys) I think.
> What I am getting at is, if the patch should look something like this
> instead:
>
> if (! exists $ENV{SVN_SSH}) {
> if (exists $ENV{GIT_SSH}) {
> $ENV{SVN_SSH} = $ENV{GIT_SSH};
> if ($^O eq 'MSWin32' || $^O eq 'msys') {
> $ENV{SVN_SSH} =~ s/\\/\\\\/g;
> }
> }
> }
>
>
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Johannes Schindelin @ 2009-08-17 23:40 UTC (permalink / raw)
To: Pau Garcia i Quiles
Cc: Johan 't Hart, Erik Faye-Lund, Paolo Bonzini, Frank Li, git,
msysgit
In-Reply-To: <3af572ac0908171600s7aa7b21ftf95fde92246bf75f@mail.gmail.com>
Hi,
On Tue, 18 Aug 2009, Pau Garcia i Quiles wrote:
> On Tue, Aug 18, 2009 at 12:26 AM, Johan 't Hart<johanthart@gmail.com> wrote:
> > Johannes Schindelin schreef:
> >
> >> Having said that, a CMake-based system _in addition_ to what is
> >> tried-and-tested to be able to support all those different kinds of
> >> Microsoft Visual Studio (took me 3 attempts to write that without a
> >> Freudian) would be welcome, _if_ you succeed in making it compile out
> >> of the box on msysGit.
> >
> > That would require (I think) that CMake is build by the msysgit gcc
> > tools available in msysgit, since CMake can't be build by VS right?
> > Pau do you think that is possible?
>
> CMake can certainly be built by VC++ but you need CMake to do that,
> VC++-CMake cannot be bootstrapped.
>
> Would it be OK to download a binary version of CMake instead of / in
> addition to the source? (I'm not familiar with the 'release.sh' stuff
> yet)
Well, as I tried to establish msysGit as _the_ Git for Windows, I would be
willing to created download bundles for Microsoft Visual C++ users, but
only if the hassle is not big enough.
Read: if the procedure is a script that does not need to be supervised
until it created a .zip or .7z file, I'm all for it.
> > It would be fun. Download the msysgit netinstaller, set it up, install
> > it, and after that, CMake is bootstrapped, and the visual studio
> > .vcproj files are generated and everyone (VS developers and msys
> > developers) are ready to go!
>
> That'd be right, if I have understood what the netinstaller does (I've
> never used it yet).
Or that.
Ciao,
Dscho
^ permalink raw reply
* Re: [PATCH][resend] git-svn: Respect GIT_SSH setting
From: Junio C Hamano @ 2009-08-17 23:21 UTC (permalink / raw)
To: Karthik R; +Cc: git
In-Reply-To: <4A89E185.2010307@fastmail.fm>
Karthik R <karthikr@fastmail.fm> writes:
> +# If GIT_SSH is set, also set SVN_SSH...
> +$ENV{SVN_SSH} = $ENV{GIT_SSH} if defined $ENV{GIT_SSH};
> +# ... and escape \s in shell-variable on Windows
> +if ($^O eq 'MSWin32' || $^O eq 'msys') {
> + $ENV{SVN_SSH} =~ s/\\/\\\\/g if defined $ENV{SVN_SSH};
> +}
> +
Two questions.
- What if a user has SVN_SSH exported _and_ wants to use a different one
from the one s/he uses for git? Naturally such a user would set both
environment variables and differently, but this seems to override the
value in SVN_SSH;
- Can a user have SVN_SSH exported, on MSWin32 or msys, and use svn
outside git? If so, what does the value of SVN_SSH look like? Does it
typically have necessary doubling of backslashes already?
What I am getting at is, if the patch should look something like this
instead:
if (! exists $ENV{SVN_SSH}) {
if (exists $ENV{GIT_SSH}) {
$ENV{SVN_SSH} = $ENV{GIT_SSH};
if ($^O eq 'MSWin32' || $^O eq 'msys') {
$ENV{SVN_SSH} =~ s/\\/\\\\/g;
}
}
}
^ permalink raw reply
* Re: [PATCH][resend] git-svn: Respect GIT_SSH setting
From: Johannes Schindelin @ 2009-08-17 23:20 UTC (permalink / raw)
To: Karthik R; +Cc: git
In-Reply-To: <4A89E185.2010307@fastmail.fm>
Hi,
On Mon, 17 Aug 2009, Karthik R wrote:
> Setting GIT_SSH when using "git svn clone svn+ssh://..." does not
> override the default ssh; SVN_SSH needed to be set instead.
This is now in past tense, no?
> diff --git a/git-svn.perl b/git-svn.perl
> index b0bfb74..9bc1e71 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -21,6 +21,13 @@ $Git::SVN::default_ref_id = $ENV{GIT_SVN_ID} || 'git-svn';
> $Git::SVN::Ra::_log_window_size = 100;
> $Git::SVN::_minimize_url = 'unset';
>
> +# If GIT_SSH is set, also set SVN_SSH...
> +$ENV{SVN_SSH} = $ENV{GIT_SSH} if defined $ENV{GIT_SSH};
> +# ... and escape \s in shell-variable on Windows
> +if ($^O eq 'MSWin32' || $^O eq 'msys') {
> + $ENV{SVN_SSH} =~ s/\\/\\\\/g if defined $ENV{SVN_SSH};
> +}
This is a change from before... I do not know if it is a good one, as
SVN_SSH could be defined differently by the user, no? In that case, the
user was most likely using the correct amount of backslashes...
So maybe it was correct to make this dependent on "if defined
$ENV{GIT_SSH}", and maybe it should be dependent on "&& !defined
$ENV{SVN_SSH}" as well...
Ciao,
Dscho
^ permalink raw reply
* Re: [RFC PATCH v3 8/8] --sparse for porcelains
From: Johannes Schindelin @ 2009-08-17 23:16 UTC (permalink / raw)
To: skillzero; +Cc: Junio C Hamano, Jakub Narebski, Nguyen Thai Ngoc Duy, git
In-Reply-To: <2729632a0908171602m3c05c97bx9ce31e8960df9198@mail.gmail.com>
[-- Attachment #1: Type: TEXT/PLAIN, Size: 2023 bytes --]
Hi,
On Mon, 17 Aug 2009, skillzero@gmail.com wrote:
> On Mon, Aug 17, 2009 at 3:02 PM, Johannes
> Schindelin<Johannes.Schindelin@gmx.de> wrote:
>
> > And here comes the problem: if something is treated untracked because
> > it was outside of the sparse checkout, then I want it to be treated as
> > untracked _even if_ I happened to broaden the checkout by editing
> > .git/info/sparse. The file did not just magically become subject to
> > overwriting just because I edited .git/info/sparse (which could be a
> > simple mistake).
>
> Maybe I'm misunderstanding what you're saying, but why would you want a
> file that's become part of the checkout by editing .git/info/sparse to
> still be treated as untracked?
>
> If I have a file on that's excluded via .git/info/sparse then I edit
> .git/info/sparse to include it and switch to a branch that doesn't have
> that file, I'd expect that file to be deleted from the working copy if
> the content matches what's in the repository. If it's modified then I'd
> expect the branch switch to fail (like it would without a sparse
> checkout).
First things first: with sparse checkout, you should not check out
_anything_ outside of the focus of the sparse checkout.
So I contend that you would only end up with a sparse'd-out file
that was formerly tracked if you did something wrong. That should not
happen.
Even if: all the more reason to have a flag that indicated that this file
is not sparsed'd-out -- contradicting .git/info/sparse.
The thing is: we need a way to determine quickly and without any
ambiguity whether a file is tracked, assumed unchanged, or sparse'd-out
(which Nguyễn calls no-checkout).
And if we change .git/info/sparse, that state _must not_ change. We did
not touch the file by editing .git/info/sparse, so the state must be
unchanged.
Whether "git checkout" should realize that a checked out file (which has
no changes, mind you!) needs to be deleted and marked no-checkout is a
different question.
Ciao,
Dscho
^ permalink raw reply
* Re: [PATCH] filter-branch: add an example how to add ACKs to a range of commits
From: Junio C Hamano @ 2009-08-17 23:12 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
In-Reply-To: <34cc046b42b5a67bb1c926709bcd1163d1d2faf6.1250541493u.git.johannes.schindelin@gmx.de>
Johannes Schindelin <johannes.schindelin@gmx.de> writes:
> When you have to add certain lines like ACKs (or for that matter,
> Signed-off-by:s) to a range of commits starting with HEAD, you might
> be tempted to use 'git rebase -i -10', but that is a waste of your
> time.
Cute.
In a case like this, I tend to just do:
git checkout $(git merge-base master js/series)
git format-patch --stdout master..js/series | git am -s
git diff js/series
git branch --with js/series
git branch -f js/series
as the first step (checking out the base, detaching HEAD) and the last
group of steps (verifying what improvements I made while on detached HEAD,
checking what _other_ branches may need to be rebuilt, and actually
updating the branch) are very common for my every-day branch whipping
workflow, and the second case being the full "format-patch | am" is just a
special case of what I do regularly, e.g. cherry-picking, manually
fixing-up, etc.
Rebase -i is very nice if you need to dig deep but the change you make is
actually very limited. Filter-branch is too automated and requires an
enormous amount of effort to do anything flexible. Often I find myself
wanting to do something in the middle, and I end up doing the "detach at
the base and rebuild" procedure.
Will apply. The hint is useful nevertheless.
^ permalink raw reply
* Re: Linus' sha1 is much faster!
From: George Spelvin @ 2009-08-17 23:12 UTC (permalink / raw)
To: linux, nico; +Cc: art.08.09, bdonlan, git, johnflux, P, torvalds
In-Reply-To: <alpine.LFD.2.00.0908171513230.6044@xanadu.home>
>> The purpose of the rewrite is to avoid having to make
>> pessimistic assumptions about people who don't respond.
>>
>> I suppose I should have made that request clearer:
>> Is there anyone who claims copyright on anything here?
>> Or would just like credit?
>> If so, are you willing to donate it to the public domain?
> I think this is much nicer to everyone involved.
>
> As far as I'm concerned, I'm OK with giving any small copyright I might
> have in this SHA1 implementation, if any, to the public domain.
> Credits are always nice.
My apologies. I read a lot of people talking about wanting the code
under different licenses, and thought I'd just cut through it by
providing some PD code.
I didn't turn around and look at it from the point of view of the
people who'd put the work into developing it. I don't mean to deny
anyone credit for their work. In fact, providing more detail is on
the to-do list, but I haven't waded through the mail archives and
tracked down who contributed what yet.
I'll work on those polish details once I have it producing the same
assembly code as Linus'.
There are a lot of possible highly-permissive licenses if one is wanted
(zlib, MIT, CC-by), but public domain seems simpler.
^ permalink raw reply
* [PATCH][resend] git-svn: Respect GIT_SSH setting
From: Karthik R @ 2009-08-17 23:02 UTC (permalink / raw)
To: git
Setting GIT_SSH when using "git svn clone svn+ssh://..." does not
override the default ssh; SVN_SSH needed to be set instead. Fixed
this.
Also, on Windows, SVN_SSH needs to be set with \ escaped
e.g., "C:\\PuTTY\\plink.exe"
See http://code.google.com/p/msysgit/issues/detail?id=305
Signed-off-by: Karthik R <karthikr@fastmail.fm>
---
Originally sent as [PATCH] GIT_SSH does not override ssh in git-svn
git-svn.perl | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index b0bfb74..9bc1e71 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -21,6 +21,13 @@ $Git::SVN::default_ref_id = $ENV{GIT_SVN_ID} ||
'git-svn';
$Git::SVN::Ra::_log_window_size = 100;
$Git::SVN::_minimize_url = 'unset';
+# If GIT_SSH is set, also set SVN_SSH...
+$ENV{SVN_SSH} = $ENV{GIT_SSH} if defined $ENV{GIT_SSH};
+# ... and escape \s in shell-variable on Windows
+if ($^O eq 'MSWin32' || $^O eq 'msys') {
+ $ENV{SVN_SSH} =~ s/\\/\\\\/g if defined $ENV{SVN_SSH};
+}
+
$Git::SVN::Log::TZ = $ENV{TZ};
$ENV{TZ} = 'UTC';
$| = 1; # unbuffer STDOUT
-- 1.5.4.3
^ permalink raw reply related
* Re: [RFC PATCH v3 8/8] --sparse for porcelains
From: skillzero @ 2009-08-17 23:02 UTC (permalink / raw)
To: Johannes Schindelin
Cc: Junio C Hamano, Jakub Narebski, Nguyen Thai Ngoc Duy, git
In-Reply-To: <alpine.DEB.1.00.0908172347220.8306@pacific.mpi-cbg.de>
On Mon, Aug 17, 2009 at 3:02 PM, Johannes
Schindelin<Johannes.Schindelin@gmx.de> wrote:
> And here comes the problem: if something is treated untracked because it
> was outside of the sparse checkout, then I want it to be treated as
> untracked _even if_ I happened to broaden the checkout by editing
> .git/info/sparse. The file did not just magically become subject to
> overwriting just because I edited .git/info/sparse (which could be a
> simple mistake).
Maybe I'm misunderstanding what you're saying, but why would you want
a file that's become part of the checkout by editing .git/info/sparse
to still be treated as untracked?
If I have a file on that's excluded via .git/info/sparse then I edit
.git/info/sparse to include it and switch to a branch that doesn't
have that file, I'd expect that file to be deleted from the working
copy if the content matches what's in the repository. If it's modified
then I'd expect the branch switch to fail (like it would without a
sparse checkout).
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Pau Garcia i Quiles @ 2009-08-17 23:00 UTC (permalink / raw)
To: Johan 't Hart
Cc: Johannes Schindelin, Erik Faye-Lund, Paolo Bonzini, Frank Li, git,
msysgit
In-Reply-To: <4A89D909.9050700@gmail.com>
On Tue, Aug 18, 2009 at 12:26 AM, Johan 't Hart<johanthart@gmail.com> wrote:
> Johannes Schindelin schreef:
>
>> Having said that, a CMake-based system _in addition_ to what is
>> tried-and-tested to be able to support all those different kinds of
>> Microsoft Visual Studio (took me 3 attempts to write that without a
>> Freudian) would be welcome, _if_ you succeed in making it compile out of the
>> box on msysGit.
>
> That would require (I think) that CMake is build by the msysgit gcc tools
> available in msysgit, since CMake can't be build by VS right? Pau do you
> think that is possible?
CMake can certainly be built by VC++ but you need CMake to do that,
VC++-CMake cannot be bootstrapped.
Would it be OK to download a binary version of CMake instead of / in
addition to the source? (I'm not familiar with the 'release.sh' stuff
yet)
> It would be fun. Download the msysgit netinstaller, set it up, install it,
> and after that, CMake is bootstrapped, and the visual studio .vcproj files
> are generated and everyone (VS developers and msys developers) are ready to
> go!
That'd be right, if I have understood what the netinstaller does (I've
never used it yet).
--
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Thiago Farina @ 2009-08-17 22:50 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Frank Li, git, msysgit
In-Reply-To: <alpine.DEB.1.00.0908180036260.8306@pacific.mpi-cbg.de>
On Mon, Aug 17, 2009 at 7:39 PM, Johannes
Schindelin<Johannes.Schindelin@gmx.de> wrote:
> Hi,
>
> On Mon, 17 Aug 2009, Thiago Farina wrote:
>
>> What about the common-cmds.h that is included in builtin-help.c? How it will
>> be generated?
>> I followed the instructions in ReadMe, then I can't compile because of this
>> "missing" file.
>
> Thiago, you do not want to top-post in both of the mailing-lists you sent
> to. And you certainly do _not_ want to send 200K of unanswered, quoted
> text:
>
I tried to don't do this(top-post), but things goes bad again .
>> On Mon, Aug 17, 2009 at 1:05 PM, Frank Li <lznuaa@gmail.com> wrote:
>>
>> [200K that were not needed for Thiago's question]
>
> Sorry, but I do not feel inclined to respond to your question if you do
> not want to adher to netiquette that you must have seen when you first
> posted to the msysGit mailing list.
>
> Ciao,
> Dscho
>
>
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Pau Garcia i Quiles @ 2009-08-17 22:44 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Erik Faye-Lund, Paolo Bonzini, Frank Li, git, msysgit
In-Reply-To: <alpine.DEB.1.00.0908172306080.8306@pacific.mpi-cbg.de>
(Sorry for answering some parts now, I didn't realize this text was
there before)
> But here's a clue: you will probably _never_ succeed in getting a
> replacement of the make-based build in git.git by the maintainer. Make is
> just too ubiquitous and well-established for that.
CMake does not replace Make, it runs a step before CMake
CMakeLists.txt
|
|
|
v
Makefile/.vcproj/Eclipse/XCode project/NMakefile
|
|
|
v
gcc/VC++/SunCC/whatever
|
|
v
ld/link.exe/whatever
(see page 10 in my slides for a nicer version :-) )
> If you succeed, I will ask you to do the same for Python, as you clearly
> proved by that point that you are a magician.
I can't do any Python whatsoever, sorry :-)
--
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Johannes Schindelin @ 2009-08-17 22:39 UTC (permalink / raw)
To: Thiago Farina; +Cc: Frank Li, git, msysgit
In-Reply-To: <a4c8a6d00908171527m778c12fq30d672d3c75cea77@mail.gmail.com>
Hi,
On Mon, 17 Aug 2009, Thiago Farina wrote:
> What about the common-cmds.h that is included in builtin-help.c? How it will
> be generated?
> I followed the instructions in ReadMe, then I can't compile because of this
> "missing" file.
Thiago, you do not want to top-post in both of the mailing-lists you sent
to. And you certainly do _not_ want to send 200K of unanswered, quoted
text:
> On Mon, Aug 17, 2009 at 1:05 PM, Frank Li <lznuaa@gmail.com> wrote:
>
> [200K that were not needed for Thiago's question]
Sorry, but I do not feel inclined to respond to your question if you do
not want to adher to netiquette that you must have seen when you first
posted to the msysGit mailing list.
Ciao,
Dscho
^ permalink raw reply
* Re: [PATCH] GIT_SSH does not override ssh in git-svn
From: Karthik R @ 2009-08-17 22:35 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <7vhbw6qfuq.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
> Karthik R <karthikr@fastmail.fm> writes:
>
>
>> +my $git_ssh_user_set = 1 if defined $ENV{GIT_SSH};
>> +if ($git_ssh_user_set) {
>> + # If GIT_SSH is set, also set SVN_SSH...
>> + $ENV{SVN_SSH} = $ENV{GIT_SSH};
>> + # ... and escape \s in shell-variable on Windows
>> + if ($^O eq 'MSWin32' || $^O eq 'msys') {
>> + $ENV{SVN_SSH} =~ s/\\/\\\\/g;
>> + }
>> +}
>> +
>>
>
> Why not just
>
> if (defined $ENV{GIT_SSH}) {
> ...
>
> ???
>
>
>> $Git::SVN::Log::TZ = $ENV{TZ};
>> $ENV{TZ} = 'UTC';
>> $| = 1; # unbuffer STDOUT
>> --
>> 1.5.4.3
>>
I think I had trouble getting that to work correctly on my Windows XP
box... I didn't dig into that (my perl was exactly 1 day old).
Does this look better (it does to me) ? If so, I can resend the patch
addressing Dscho's comments too.
+# If GIT_SSH is set, also set SVN_SSH...
+$ENV{SVN_SSH} = $ENV{GIT_SSH} if defined $ENV{GIT_SSH};
+# ... and escape \s in shell-variable on Windows
+if ($^O eq 'MSWin32' || $^O eq 'msys') {
+ $ENV{SVN_SSH} =~ s/\\/\\\\/g if defined $ENV{SVN_SSH};
+}
+
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Thiago Farina @ 2009-08-17 22:29 UTC (permalink / raw)
To: Frank Li; +Cc: git, msysgit, Johannes.Schindelin
In-Reply-To: <a4c8a6d00908171527m778c12fq30d672d3c75cea77@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 68751 bytes --]
What about the common-cmds.h that is included in builtin-help.c? How it will
be generated?
I followed the instructions in ReadMe, then I can't compile because of this
"missing" file.
On Mon, Aug 17, 2009 at 7:27 PM, Thiago Farina <tfransosi@gmail.com> wrote:
> What about the common-cmds.h that is included in builtin-help.c? How it
> will be generated?
> I followed the instructions in ReadMe, then I can't compile because of this
> "missing" file.
>
> On Mon, Aug 17, 2009 at 1:05 PM, Frank Li <lznuaa@gmail.com> wrote:
>
>> Add libgit.vcproj to build common library.
>> Add git.vcproj to build git program.
>>
>> Signed-off-by: Frank Li <lznuaa@gmail.com>
>> ---
>> compat/vcbuild/git/git.vcproj | 197 +++++
>> compat/vcbuild/libgit/libgit.vcproj | 1347
>> +++++++++++++++++++++++++++++++++++
>> 2 files changed, 1544 insertions(+), 0 deletions(-)
>> create mode 100644 compat/vcbuild/git/git.vcproj
>> create mode 100644 compat/vcbuild/libgit/libgit.vcproj
>>
>> diff --git a/compat/vcbuild/git/git.vcproj b/compat/vcbuild/git/git.vcproj
>> new file mode 100644
>> index 0000000..6f85de3
>> --- /dev/null
>> +++ b/compat/vcbuild/git/git.vcproj
>> @@ -0,0 +1,197 @@
>> +<?xml version="1.0" encoding="gb2312"?>
>> +<VisualStudioProject
>> + ProjectType="Visual C++"
>> + Version="9.00"
>> + Name="git"
>> + ProjectGUID="{E3E30E51-C5AD-407B-AB43-985E4111474A}"
>> + RootNamespace="git"
>> + Keyword="Win32Proj"
>> + TargetFrameworkVersion="196613"
>> + >
>> + <Platforms>
>> + <Platform
>> + Name="Win32"
>> + />
>> + </Platforms>
>> + <ToolFiles>
>> + </ToolFiles>
>> + <Configurations>
>> + <Configuration
>> + Name="Debug|Win32"
>> +
>> OutputDirectory="$(SolutionDir)$(ConfigurationName)\bin"
>> + IntermediateDirectory="$(ConfigurationName)"
>> + ConfigurationType="1"
>> + CharacterSet="0"
>> + >
>> + <Tool
>> + Name="VCPreBuildEventTool"
>> + />
>> + <Tool
>> + Name="VCCustomBuildTool"
>> + />
>> + <Tool
>> + Name="VCXMLDataGeneratorTool"
>> + />
>> + <Tool
>> + Name="VCWebServiceProxyGeneratorTool"
>> + />
>> + <Tool
>> + Name="VCMIDLTool"
>> + />
>> + <Tool
>> + Name="VCCLCompilerTool"
>> + Optimization="0"
>> +
>> AdditionalIncludeDirectories="..\..\..;..\..\..\..\zlib;..\..;..\;..\include;..\..\..\compat;..\..\..\compat\fnmatch;..\..\..\compat\regex;.\"
>> +
>> PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
>> + MinimalRebuild="true"
>> + BasicRuntimeChecks="3"
>> + RuntimeLibrary="3"
>> + UsePrecompiledHeader="0"
>> + WarningLevel="3"
>> + DebugInformationFormat="4"
>> + />
>> + <Tool
>> + Name="VCManagedResourceCompilerTool"
>> + />
>> + <Tool
>> + Name="VCResourceCompilerTool"
>> + />
>> + <Tool
>> + Name="VCPreLinkEventTool"
>> + />
>> + <Tool
>> + Name="VCLinkerTool"
>> + AdditionalDependencies="wininet.lib
>> ws2_32.lib "
>> + LinkIncremental="2"
>> + GenerateDebugInformation="true"
>> + SubSystem="1"
>> + TargetMachine="1"
>> + />
>> + <Tool
>> + Name="VCALinkTool"
>> + />
>> + <Tool
>> + Name="VCManifestTool"
>> + />
>> + <Tool
>> + Name="VCXDCMakeTool"
>> + />
>> + <Tool
>> + Name="VCBscMakeTool"
>> + />
>> + <Tool
>> + Name="VCFxCopTool"
>> + />
>> + <Tool
>> + Name="VCAppVerifierTool"
>> + />
>> + <Tool
>> + Name="VCPostBuildEventTool"
>> + />
>> + </Configuration>
>> + <Configuration
>> + Name="Release|Win32"
>> +
>> OutputDirectory="$(SolutionDir)$(ConfigurationName)\bin"
>> + IntermediateDirectory="$(ConfigurationName)"
>> + ConfigurationType="1"
>> + CharacterSet="0"
>> + WholeProgramOptimization="1"
>> + >
>> + <Tool
>> + Name="VCPreBuildEventTool"
>> + />
>> + <Tool
>> + Name="VCCustomBuildTool"
>> + />
>> + <Tool
>> + Name="VCXMLDataGeneratorTool"
>> + />
>> + <Tool
>> + Name="VCWebServiceProxyGeneratorTool"
>> + />
>> + <Tool
>> + Name="VCMIDLTool"
>> + />
>> + <Tool
>> + Name="VCCLCompilerTool"
>> + Optimization="2"
>> + EnableIntrinsicFunctions="true"
>> +
>> AdditionalIncludeDirectories="..\..\..;..\..\..\..\zlib;..\..;..\;..\include;..\..\..\compat;..\..\..\compat\fnmatch;..\..\..\compat\regex;.\"
>> +
>> PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
>> + RuntimeLibrary="2"
>> + EnableFunctionLevelLinking="true"
>> + UsePrecompiledHeader="0"
>> + WarningLevel="3"
>> + DebugInformationFormat="3"
>> + />
>> + <Tool
>> + Name="VCManagedResourceCompilerTool"
>> + />
>> + <Tool
>> + Name="VCResourceCompilerTool"
>> + />
>> + <Tool
>> + Name="VCPreLinkEventTool"
>> + />
>> + <Tool
>> + Name="VCLinkerTool"
>> + AdditionalDependencies="wininet.lib
>> ws2_32.lib "
>> + LinkIncremental="1"
>> + GenerateDebugInformation="true"
>> + SubSystem="1"
>> + OptimizeReferences="2"
>> + EnableCOMDATFolding="2"
>> + TargetMachine="1"
>> + />
>> + <Tool
>> + Name="VCALinkTool"
>> + />
>> + <Tool
>> + Name="VCManifestTool"
>> + />
>> + <Tool
>> + Name="VCXDCMakeTool"
>> + />
>> + <Tool
>> + Name="VCBscMakeTool"
>> + />
>> + <Tool
>> + Name="VCFxCopTool"
>> + />
>> + <Tool
>> + Name="VCAppVerifierTool"
>> + />
>> + <Tool
>> + Name="VCPostBuildEventTool"
>> + />
>> + </Configuration>
>> + </Configurations>
>> + <References>
>> + </References>
>> + <Files>
>> + <Filter
>> + Name="Source Files"
>> + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
>> +
>> UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>> + >
>> + <File
>> + RelativePath="..\..\..\git.c"
>> + >
>> + </File>
>> + </Filter>
>> + <Filter
>> + Name="Header Files"
>> + Filter="h;hpp;hxx;hm;inl;inc;xsd"
>> +
>> UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>> + >
>> + </Filter>
>> + <Filter
>> + Name="Resource Files"
>> +
>> Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
>> +
>> UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>> + >
>> + </Filter>
>> + </Files>
>> + <Globals>
>> + </Globals>
>> +</VisualStudioProject>
>> diff --git a/compat/vcbuild/libgit/libgit.vcproj
>> b/compat/vcbuild/libgit/libgit.vcproj
>> new file mode 100644
>> index 0000000..bbc3aed
>> --- /dev/null
>> +++ b/compat/vcbuild/libgit/libgit.vcproj
>> @@ -0,0 +1,1347 @@
>> +<?xml version="1.0" encoding="gb2312"?>
>> +<VisualStudioProject
>> + ProjectType="Visual C++"
>> + Version="9.00"
>> + Name="libgit"
>> + ProjectGUID="{F6DEC8C3-B803-4A86-8848-430F08B499E3}"
>> + RootNamespace="libgit"
>> + Keyword="Win32Proj"
>> + TargetFrameworkVersion="196613"
>> + >
>> + <Platforms>
>> + <Platform
>> + Name="Win32"
>> + />
>> + </Platforms>
>> + <ToolFiles>
>> + </ToolFiles>
>> + <Configurations>
>> + <Configuration
>> + Name="Debug|Win32"
>> +
>> OutputDirectory="$(SolutionDir)$(ConfigurationName)"
>> + IntermediateDirectory="$(ConfigurationName)"
>> + ConfigurationType="4"
>> + CharacterSet="0"
>> + >
>> + <Tool
>> + Name="VCPreBuildEventTool"
>> + />
>> + <Tool
>> + Name="VCCustomBuildTool"
>> + />
>> + <Tool
>> + Name="VCXMLDataGeneratorTool"
>> + />
>> + <Tool
>> + Name="VCWebServiceProxyGeneratorTool"
>> + />
>> + <Tool
>> + Name="VCMIDLTool"
>> + />
>> + <Tool
>> + Name="VCCLCompilerTool"
>> + Optimization="0"
>> + InlineFunctionExpansion="1"
>> +
>> AdditionalIncludeDirectories="..\..\..;..\..\..\..\zlib;..\..;..\;..\include;..\..\..\compat;..\..\..\compat\fnmatch;..\..\..\compat\regex;.\"
>> +
>> PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
>> + MinimalRebuild="true"
>> + BasicRuntimeChecks="3"
>> + RuntimeLibrary="3"
>> + UsePrecompiledHeader="0"
>> + WarningLevel="3"
>> + DebugInformationFormat="3"
>> + />
>> + <Tool
>> + Name="VCManagedResourceCompilerTool"
>> + />
>> + <Tool
>> + Name="VCResourceCompilerTool"
>> + />
>> + <Tool
>> + Name="VCPreLinkEventTool"
>> + />
>> + <Tool
>> + Name="VCLibrarianTool"
>> + />
>> + <Tool
>> + Name="VCALinkTool"
>> + />
>> + <Tool
>> + Name="VCXDCMakeTool"
>> + />
>> + <Tool
>> + Name="VCBscMakeTool"
>> + />
>> + <Tool
>> + Name="VCFxCopTool"
>> + />
>> + <Tool
>> + Name="VCPostBuildEventTool"
>> + />
>> + </Configuration>
>> + <Configuration
>> + Name="Release|Win32"
>> +
>> OutputDirectory="$(SolutionDir)$(ConfigurationName)"
>> + IntermediateDirectory="$(ConfigurationName)"
>> + ConfigurationType="4"
>> + CharacterSet="0"
>> + WholeProgramOptimization="1"
>> + >
>> + <Tool
>> + Name="VCPreBuildEventTool"
>> + />
>> + <Tool
>> + Name="VCCustomBuildTool"
>> + />
>> + <Tool
>> + Name="VCXMLDataGeneratorTool"
>> + />
>> + <Tool
>> + Name="VCWebServiceProxyGeneratorTool"
>> + />
>> + <Tool
>> + Name="VCMIDLTool"
>> + />
>> + <Tool
>> + Name="VCCLCompilerTool"
>> + Optimization="2"
>> + InlineFunctionExpansion="1"
>> + EnableIntrinsicFunctions="true"
>> +
>> AdditionalIncludeDirectories="..\..\..;..\..\..\..\zlib;..\..;..\;..\include;..\..\..\compat;..\..\..\compat\fnmatch;..\..\..\compat\regex;.\"
>> +
>> PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
>> + RuntimeLibrary="2"
>> + EnableFunctionLevelLinking="true"
>> + UsePrecompiledHeader="0"
>> + WarningLevel="3"
>> + DebugInformationFormat="3"
>> + />
>> + <Tool
>> + Name="VCManagedResourceCompilerTool"
>> + />
>> + <Tool
>> + Name="VCResourceCompilerTool"
>> + />
>> + <Tool
>> + Name="VCPreLinkEventTool"
>> + />
>> + <Tool
>> + Name="VCLibrarianTool"
>> + />
>> + <Tool
>> + Name="VCALinkTool"
>> + />
>> + <Tool
>> + Name="VCXDCMakeTool"
>> + />
>> + <Tool
>> + Name="VCBscMakeTool"
>> + />
>> + <Tool
>> + Name="VCFxCopTool"
>> + />
>> + <Tool
>> + Name="VCPostBuildEventTool"
>> + />
>> + </Configuration>
>> + </Configurations>
>> + <References>
>> + </References>
>> + <Files>
>> + <Filter
>> + Name="Source Files"
>> + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
>> +
>> UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>> + >
>> + <File
>> + RelativePath="..\..\msvc.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\mozilla-sha1\sha1.c"
>> + >
>> + </File>
>> + </Filter>
>> + <Filter
>> + Name="Header Files"
>> + Filter="h;hpp;hxx;hm;inl;inc;xsd"
>> +
>> UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>> + >
>> + <File
>> + RelativePath="..\..\..\archive.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\attr.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\blob.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\branch.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\bundle.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\cache-tree.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\cache.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\color.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\commit.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\csum-file.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\decorate.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\delta.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diff.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diffcore.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\dir.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\exec_cmd.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\fetch-pack.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\fsck.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\git-compat-util.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\graph.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\grep.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\hash.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\help.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\http.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\levenshtein.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\list-objects.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\ll-merge.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\log-tree.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\mailmap.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\merge-recursive.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\notes.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\object.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pack-refs.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pack-revindex.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pack.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\parse-options.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\patch-ids.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pkt-line.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\progress.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\quote.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\reachable.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\reflog-walk.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\refs.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\remote.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\rerere.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\revision.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\run-command.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\send-pack.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\sha1-lookup.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\shortlog.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\sideband.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\sigchain.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\strbuf.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\string-list.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\tag.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\tar.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\thread-utils.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\transport.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\tree-walk.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\tree.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\unpack-trees.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\userdiff.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\utf8.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\walker.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\wt-status.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff-interface.h"
>> + >
>> + </File>
>> + </Filter>
>> + <Filter
>> + Name="Resource Files"
>> +
>> Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
>> +
>> UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>> + >
>> + </Filter>
>> + <Filter
>> + Name="compat"
>> + >
>> + <File
>> + RelativePath="..\..\..\compat\basename.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\cygwin.h"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\compat\fnmatch\fnmatch.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\compat\fnmatch\fnmatch.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\fopen.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\memmem.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\mingw.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\mingw.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\mkdtemp.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\mkstemps.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\pread.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\qsort.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\compat\regex\regex.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\compat\regex\regex.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\setenv.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\snprintf.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\compat\strcasestr.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\strlcpy.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\strtoumax.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\unsetenv.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\win32.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\win32mmap.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\compat\winansi.c"
>> + >
>> + </File>
>> + </Filter>
>> + <Filter
>> + Name="git"
>> + >
>> + <File
>> + RelativePath="..\..\..\abspath.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\alias.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\alloc.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\archive-tar.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\archive-zip.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\archive.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\attr.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\base85.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\bisect.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\blob.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\branch.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-add.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-annotate.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-apply.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-archive.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-bisect--helper.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-blame.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-branch.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-bundle.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-cat-file.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-check-attr.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-check-ref-format.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-checkout-index.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-checkout.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-clean.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-clone.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-commit-tree.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-commit.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-config.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-count-objects.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-describe.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-diff-files.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-diff-index.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-diff-tree.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-diff.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-fast-export.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-fetch--tool.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-fetch-pack.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-fetch.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-fmt-merge-msg.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-for-each-ref.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-fsck.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-gc.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-grep.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-help.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-init-db.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-log.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-ls-files.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-ls-remote.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-ls-tree.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-mailinfo.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-mailsplit.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-merge-base.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-merge-file.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-merge-ours.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-merge-recursive.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-merge.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-mktree.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-mv.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-name-rev.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-pack-objects.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-pack-refs.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-prune-packed.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-prune.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-push.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-read-tree.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-receive-pack.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-reflog.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-remote.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-rerere.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-reset.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-rev-list.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-rev-parse.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-revert.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-rm.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-send-pack.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-shortlog.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-show-branch.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-show-ref.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-stripspace.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-symbolic-ref.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-tag.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\builtin-tar-tree.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-unpack-objects.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-update-index.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-update-ref.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-upload-archive.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-verify-pack.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-verify-tag.c"
>> + >
>> + </File>
>> + <File
>> +
>> RelativePath="..\..\..\builtin-write-tree.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\bundle.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\cache-tree.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\color.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\combine-diff.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\commit.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\config.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\connect.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\convert.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\copy.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\csum-file.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\ctype.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\date.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\decorate.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diff-delta.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diff-lib.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diff-no-index.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diff.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diffcore-break.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diffcore-delta.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diffcore-order.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diffcore-pickaxe.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\diffcore-rename.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\dir.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\editor.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\entry.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\environment.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\exec_cmd.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\fsck.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\graph.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\grep.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\hash.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\help.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\ident.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\levenshtein.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\list-objects.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\ll-merge.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\lockfile.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\log-tree.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\mailmap.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\match-trees.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\merge-file.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\merge-recursive.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\merge-tree.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\name-hash.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\object.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pack-check.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pack-refs.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pack-revindex.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pack-write.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pager.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\parse-options.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\patch-delta.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\patch-ids.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\path.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pkt-line.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\preload-index.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\pretty.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\progress.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\quote.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\reachable.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\read-cache.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\reflog-walk.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\refs.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\remote.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\rerere.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\revision.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\run-command.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\server-info.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\setup.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\sha1-lookup.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\sha1_file.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\sha1_name.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\shallow.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\sideband.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\sigchain.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\strbuf.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\string-list.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\symlinks.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\tag.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\thread-utils.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\trace.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\transport.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\tree-diff.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\tree-walk.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\tree.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\unpack-trees.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\usage.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\userdiff.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\utf8.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\walker.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\wrapper.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\write_or_die.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\ws.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\wt-status.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff-interface.c"
>> + >
>> + </File>
>> + </Filter>
>> + <Filter
>> + Name="xdiff"
>> + >
>> + <File
>> + RelativePath="..\..\..\xdiff\xdiff.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xdiffi.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xdiffi.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xemit.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xemit.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xinclude.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xmacros.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xmerge.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xpatience.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xprepare.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xprepare.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xtypes.h"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xutils.c"
>> + >
>> + </File>
>> + <File
>> + RelativePath="..\..\..\xdiff\xutils.h"
>> + >
>> + </File>
>> + </Filter>
>> + </Files>
>> + <Globals>
>> + </Globals>
>> +</VisualStudioProject>
>> --
>> 1.6.4.msysgit.0
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe git" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>
>
[-- Attachment #2: Type: text/html, Size: 81711 bytes --]
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Thiago Farina @ 2009-08-17 22:27 UTC (permalink / raw)
To: Frank Li; +Cc: git, msysgit, Johannes.Schindelin
In-Reply-To: <1250525103-5184-5-git-send-email-lznuaa@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 67139 bytes --]
What about the common-cmds.h that is included in builtin-help.c? How it will
be generated?
I followed the instructions in ReadMe, then I can't compile because of this
"missing" file.
On Mon, Aug 17, 2009 at 1:05 PM, Frank Li <lznuaa@gmail.com> wrote:
> Add libgit.vcproj to build common library.
> Add git.vcproj to build git program.
>
> Signed-off-by: Frank Li <lznuaa@gmail.com>
> ---
> compat/vcbuild/git/git.vcproj | 197 +++++
> compat/vcbuild/libgit/libgit.vcproj | 1347
> +++++++++++++++++++++++++++++++++++
> 2 files changed, 1544 insertions(+), 0 deletions(-)
> create mode 100644 compat/vcbuild/git/git.vcproj
> create mode 100644 compat/vcbuild/libgit/libgit.vcproj
>
> diff --git a/compat/vcbuild/git/git.vcproj b/compat/vcbuild/git/git.vcproj
> new file mode 100644
> index 0000000..6f85de3
> --- /dev/null
> +++ b/compat/vcbuild/git/git.vcproj
> @@ -0,0 +1,197 @@
> +<?xml version="1.0" encoding="gb2312"?>
> +<VisualStudioProject
> + ProjectType="Visual C++"
> + Version="9.00"
> + Name="git"
> + ProjectGUID="{E3E30E51-C5AD-407B-AB43-985E4111474A}"
> + RootNamespace="git"
> + Keyword="Win32Proj"
> + TargetFrameworkVersion="196613"
> + >
> + <Platforms>
> + <Platform
> + Name="Win32"
> + />
> + </Platforms>
> + <ToolFiles>
> + </ToolFiles>
> + <Configurations>
> + <Configuration
> + Name="Debug|Win32"
> +
> OutputDirectory="$(SolutionDir)$(ConfigurationName)\bin"
> + IntermediateDirectory="$(ConfigurationName)"
> + ConfigurationType="1"
> + CharacterSet="0"
> + >
> + <Tool
> + Name="VCPreBuildEventTool"
> + />
> + <Tool
> + Name="VCCustomBuildTool"
> + />
> + <Tool
> + Name="VCXMLDataGeneratorTool"
> + />
> + <Tool
> + Name="VCWebServiceProxyGeneratorTool"
> + />
> + <Tool
> + Name="VCMIDLTool"
> + />
> + <Tool
> + Name="VCCLCompilerTool"
> + Optimization="0"
> +
> AdditionalIncludeDirectories="..\..\..;..\..\..\..\zlib;..\..;..\;..\include;..\..\..\compat;..\..\..\compat\fnmatch;..\..\..\compat\regex;.\"
> +
> PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
> + MinimalRebuild="true"
> + BasicRuntimeChecks="3"
> + RuntimeLibrary="3"
> + UsePrecompiledHeader="0"
> + WarningLevel="3"
> + DebugInformationFormat="4"
> + />
> + <Tool
> + Name="VCManagedResourceCompilerTool"
> + />
> + <Tool
> + Name="VCResourceCompilerTool"
> + />
> + <Tool
> + Name="VCPreLinkEventTool"
> + />
> + <Tool
> + Name="VCLinkerTool"
> + AdditionalDependencies="wininet.lib
> ws2_32.lib "
> + LinkIncremental="2"
> + GenerateDebugInformation="true"
> + SubSystem="1"
> + TargetMachine="1"
> + />
> + <Tool
> + Name="VCALinkTool"
> + />
> + <Tool
> + Name="VCManifestTool"
> + />
> + <Tool
> + Name="VCXDCMakeTool"
> + />
> + <Tool
> + Name="VCBscMakeTool"
> + />
> + <Tool
> + Name="VCFxCopTool"
> + />
> + <Tool
> + Name="VCAppVerifierTool"
> + />
> + <Tool
> + Name="VCPostBuildEventTool"
> + />
> + </Configuration>
> + <Configuration
> + Name="Release|Win32"
> +
> OutputDirectory="$(SolutionDir)$(ConfigurationName)\bin"
> + IntermediateDirectory="$(ConfigurationName)"
> + ConfigurationType="1"
> + CharacterSet="0"
> + WholeProgramOptimization="1"
> + >
> + <Tool
> + Name="VCPreBuildEventTool"
> + />
> + <Tool
> + Name="VCCustomBuildTool"
> + />
> + <Tool
> + Name="VCXMLDataGeneratorTool"
> + />
> + <Tool
> + Name="VCWebServiceProxyGeneratorTool"
> + />
> + <Tool
> + Name="VCMIDLTool"
> + />
> + <Tool
> + Name="VCCLCompilerTool"
> + Optimization="2"
> + EnableIntrinsicFunctions="true"
> +
> AdditionalIncludeDirectories="..\..\..;..\..\..\..\zlib;..\..;..\;..\include;..\..\..\compat;..\..\..\compat\fnmatch;..\..\..\compat\regex;.\"
> +
> PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
> + RuntimeLibrary="2"
> + EnableFunctionLevelLinking="true"
> + UsePrecompiledHeader="0"
> + WarningLevel="3"
> + DebugInformationFormat="3"
> + />
> + <Tool
> + Name="VCManagedResourceCompilerTool"
> + />
> + <Tool
> + Name="VCResourceCompilerTool"
> + />
> + <Tool
> + Name="VCPreLinkEventTool"
> + />
> + <Tool
> + Name="VCLinkerTool"
> + AdditionalDependencies="wininet.lib
> ws2_32.lib "
> + LinkIncremental="1"
> + GenerateDebugInformation="true"
> + SubSystem="1"
> + OptimizeReferences="2"
> + EnableCOMDATFolding="2"
> + TargetMachine="1"
> + />
> + <Tool
> + Name="VCALinkTool"
> + />
> + <Tool
> + Name="VCManifestTool"
> + />
> + <Tool
> + Name="VCXDCMakeTool"
> + />
> + <Tool
> + Name="VCBscMakeTool"
> + />
> + <Tool
> + Name="VCFxCopTool"
> + />
> + <Tool
> + Name="VCAppVerifierTool"
> + />
> + <Tool
> + Name="VCPostBuildEventTool"
> + />
> + </Configuration>
> + </Configurations>
> + <References>
> + </References>
> + <Files>
> + <Filter
> + Name="Source Files"
> + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
> +
> UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
> + >
> + <File
> + RelativePath="..\..\..\git.c"
> + >
> + </File>
> + </Filter>
> + <Filter
> + Name="Header Files"
> + Filter="h;hpp;hxx;hm;inl;inc;xsd"
> +
> UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
> + >
> + </Filter>
> + <Filter
> + Name="Resource Files"
> +
> Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
> +
> UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
> + >
> + </Filter>
> + </Files>
> + <Globals>
> + </Globals>
> +</VisualStudioProject>
> diff --git a/compat/vcbuild/libgit/libgit.vcproj
> b/compat/vcbuild/libgit/libgit.vcproj
> new file mode 100644
> index 0000000..bbc3aed
> --- /dev/null
> +++ b/compat/vcbuild/libgit/libgit.vcproj
> @@ -0,0 +1,1347 @@
> +<?xml version="1.0" encoding="gb2312"?>
> +<VisualStudioProject
> + ProjectType="Visual C++"
> + Version="9.00"
> + Name="libgit"
> + ProjectGUID="{F6DEC8C3-B803-4A86-8848-430F08B499E3}"
> + RootNamespace="libgit"
> + Keyword="Win32Proj"
> + TargetFrameworkVersion="196613"
> + >
> + <Platforms>
> + <Platform
> + Name="Win32"
> + />
> + </Platforms>
> + <ToolFiles>
> + </ToolFiles>
> + <Configurations>
> + <Configuration
> + Name="Debug|Win32"
> +
> OutputDirectory="$(SolutionDir)$(ConfigurationName)"
> + IntermediateDirectory="$(ConfigurationName)"
> + ConfigurationType="4"
> + CharacterSet="0"
> + >
> + <Tool
> + Name="VCPreBuildEventTool"
> + />
> + <Tool
> + Name="VCCustomBuildTool"
> + />
> + <Tool
> + Name="VCXMLDataGeneratorTool"
> + />
> + <Tool
> + Name="VCWebServiceProxyGeneratorTool"
> + />
> + <Tool
> + Name="VCMIDLTool"
> + />
> + <Tool
> + Name="VCCLCompilerTool"
> + Optimization="0"
> + InlineFunctionExpansion="1"
> +
> AdditionalIncludeDirectories="..\..\..;..\..\..\..\zlib;..\..;..\;..\include;..\..\..\compat;..\..\..\compat\fnmatch;..\..\..\compat\regex;.\"
> + PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
> + MinimalRebuild="true"
> + BasicRuntimeChecks="3"
> + RuntimeLibrary="3"
> + UsePrecompiledHeader="0"
> + WarningLevel="3"
> + DebugInformationFormat="3"
> + />
> + <Tool
> + Name="VCManagedResourceCompilerTool"
> + />
> + <Tool
> + Name="VCResourceCompilerTool"
> + />
> + <Tool
> + Name="VCPreLinkEventTool"
> + />
> + <Tool
> + Name="VCLibrarianTool"
> + />
> + <Tool
> + Name="VCALinkTool"
> + />
> + <Tool
> + Name="VCXDCMakeTool"
> + />
> + <Tool
> + Name="VCBscMakeTool"
> + />
> + <Tool
> + Name="VCFxCopTool"
> + />
> + <Tool
> + Name="VCPostBuildEventTool"
> + />
> + </Configuration>
> + <Configuration
> + Name="Release|Win32"
> +
> OutputDirectory="$(SolutionDir)$(ConfigurationName)"
> + IntermediateDirectory="$(ConfigurationName)"
> + ConfigurationType="4"
> + CharacterSet="0"
> + WholeProgramOptimization="1"
> + >
> + <Tool
> + Name="VCPreBuildEventTool"
> + />
> + <Tool
> + Name="VCCustomBuildTool"
> + />
> + <Tool
> + Name="VCXMLDataGeneratorTool"
> + />
> + <Tool
> + Name="VCWebServiceProxyGeneratorTool"
> + />
> + <Tool
> + Name="VCMIDLTool"
> + />
> + <Tool
> + Name="VCCLCompilerTool"
> + Optimization="2"
> + InlineFunctionExpansion="1"
> + EnableIntrinsicFunctions="true"
> +
> AdditionalIncludeDirectories="..\..\..;..\..\..\..\zlib;..\..;..\;..\include;..\..\..\compat;..\..\..\compat\fnmatch;..\..\..\compat\regex;.\"
> + PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
> + RuntimeLibrary="2"
> + EnableFunctionLevelLinking="true"
> + UsePrecompiledHeader="0"
> + WarningLevel="3"
> + DebugInformationFormat="3"
> + />
> + <Tool
> + Name="VCManagedResourceCompilerTool"
> + />
> + <Tool
> + Name="VCResourceCompilerTool"
> + />
> + <Tool
> + Name="VCPreLinkEventTool"
> + />
> + <Tool
> + Name="VCLibrarianTool"
> + />
> + <Tool
> + Name="VCALinkTool"
> + />
> + <Tool
> + Name="VCXDCMakeTool"
> + />
> + <Tool
> + Name="VCBscMakeTool"
> + />
> + <Tool
> + Name="VCFxCopTool"
> + />
> + <Tool
> + Name="VCPostBuildEventTool"
> + />
> + </Configuration>
> + </Configurations>
> + <References>
> + </References>
> + <Files>
> + <Filter
> + Name="Source Files"
> + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
> +
> UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
> + >
> + <File
> + RelativePath="..\..\msvc.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\mozilla-sha1\sha1.c"
> + >
> + </File>
> + </Filter>
> + <Filter
> + Name="Header Files"
> + Filter="h;hpp;hxx;hm;inl;inc;xsd"
> +
> UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
> + >
> + <File
> + RelativePath="..\..\..\archive.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\attr.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\blob.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\branch.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\bundle.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\cache-tree.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\cache.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\color.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\commit.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\csum-file.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\decorate.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\delta.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diff.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diffcore.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\dir.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\exec_cmd.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\fetch-pack.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\fsck.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\git-compat-util.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\graph.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\grep.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\hash.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\help.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\http.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\levenshtein.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\list-objects.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\ll-merge.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\log-tree.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\mailmap.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\merge-recursive.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\notes.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\object.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pack-refs.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pack-revindex.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pack.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\parse-options.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\patch-ids.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pkt-line.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\progress.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\quote.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\reachable.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\reflog-walk.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\refs.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\remote.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\rerere.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\revision.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\run-command.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\send-pack.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\sha1-lookup.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\shortlog.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\sideband.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\sigchain.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\strbuf.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\string-list.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\tag.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\tar.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\thread-utils.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\transport.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\tree-walk.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\tree.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\unpack-trees.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\userdiff.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\utf8.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\walker.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\wt-status.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff-interface.h"
> + >
> + </File>
> + </Filter>
> + <Filter
> + Name="Resource Files"
> +
> Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
> +
> UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
> + >
> + </Filter>
> + <Filter
> + Name="compat"
> + >
> + <File
> + RelativePath="..\..\..\compat\basename.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\cygwin.h"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\compat\fnmatch\fnmatch.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\compat\fnmatch\fnmatch.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\fopen.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\memmem.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\mingw.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\mingw.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\mkdtemp.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\mkstemps.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\pread.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\qsort.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\compat\regex\regex.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\compat\regex\regex.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\setenv.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\snprintf.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\strcasestr.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\strlcpy.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\strtoumax.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\unsetenv.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\win32.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\win32mmap.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\compat\winansi.c"
> + >
> + </File>
> + </Filter>
> + <Filter
> + Name="git"
> + >
> + <File
> + RelativePath="..\..\..\abspath.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\alias.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\alloc.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\archive-tar.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\archive-zip.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\archive.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\attr.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\base85.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\bisect.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\blob.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\branch.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-add.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-annotate.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-apply.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-archive.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-bisect--helper.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-blame.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-branch.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-bundle.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-cat-file.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-check-attr.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-check-ref-format.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-checkout-index.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-checkout.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-clean.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-clone.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-commit-tree.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-commit.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-config.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-count-objects.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-describe.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-diff-files.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-diff-index.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-diff-tree.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-diff.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-fast-export.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-fetch--tool.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-fetch-pack.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-fetch.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-fmt-merge-msg.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-for-each-ref.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-fsck.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-gc.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-grep.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-help.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-init-db.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-log.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-ls-files.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-ls-remote.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-ls-tree.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-mailinfo.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-mailsplit.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-merge-base.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-merge-file.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-merge-ours.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-merge-recursive.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-merge.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-mktree.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-mv.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-name-rev.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-pack-objects.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-pack-refs.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-prune-packed.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-prune.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-push.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-read-tree.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-receive-pack.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-reflog.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-remote.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-rerere.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-reset.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-rev-list.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-rev-parse.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-revert.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-rm.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-send-pack.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-shortlog.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-show-branch.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-show-ref.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-stripspace.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-symbolic-ref.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-tag.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\builtin-tar-tree.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-unpack-objects.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-update-index.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-update-ref.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-upload-archive.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-verify-pack.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-verify-tag.c"
> + >
> + </File>
> + <File
> +
> RelativePath="..\..\..\builtin-write-tree.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\bundle.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\cache-tree.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\color.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\combine-diff.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\commit.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\config.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\connect.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\convert.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\copy.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\csum-file.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\ctype.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\date.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\decorate.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diff-delta.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diff-lib.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diff-no-index.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diff.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diffcore-break.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diffcore-delta.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diffcore-order.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diffcore-pickaxe.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\diffcore-rename.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\dir.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\editor.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\entry.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\environment.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\exec_cmd.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\fsck.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\graph.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\grep.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\hash.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\help.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\ident.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\levenshtein.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\list-objects.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\ll-merge.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\lockfile.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\log-tree.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\mailmap.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\match-trees.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\merge-file.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\merge-recursive.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\merge-tree.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\name-hash.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\object.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pack-check.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pack-refs.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pack-revindex.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pack-write.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pager.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\parse-options.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\patch-delta.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\patch-ids.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\path.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pkt-line.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\preload-index.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\pretty.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\progress.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\quote.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\reachable.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\read-cache.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\reflog-walk.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\refs.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\remote.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\rerere.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\revision.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\run-command.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\server-info.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\setup.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\sha1-lookup.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\sha1_file.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\sha1_name.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\shallow.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\sideband.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\sigchain.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\strbuf.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\string-list.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\symlinks.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\tag.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\thread-utils.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\trace.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\transport.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\tree-diff.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\tree-walk.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\tree.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\unpack-trees.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\usage.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\userdiff.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\utf8.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\walker.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\wrapper.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\write_or_die.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\ws.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\wt-status.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff-interface.c"
> + >
> + </File>
> + </Filter>
> + <Filter
> + Name="xdiff"
> + >
> + <File
> + RelativePath="..\..\..\xdiff\xdiff.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xdiffi.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xdiffi.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xemit.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xemit.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xinclude.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xmacros.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xmerge.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xpatience.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xprepare.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xprepare.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xtypes.h"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xutils.c"
> + >
> + </File>
> + <File
> + RelativePath="..\..\..\xdiff\xutils.h"
> + >
> + </File>
> + </Filter>
> + </Files>
> + <Globals>
> + </Globals>
> +</VisualStudioProject>
> --
> 1.6.4.msysgit.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
[-- Attachment #2: Type: text/html, Size: 81034 bytes --]
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Thiago Farina @ 2009-08-17 22:32 UTC (permalink / raw)
To: Frank Li
Cc: Pau Garcia i Quiles, Johannes Schindelin, Reece Dunn,
Erik Faye-Lund, git, msysgit
In-Reply-To: <4A89D807.1080202@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 178 bytes --]
What about the common-cmds.h that is in the builtin-help.c? How it will be
generated?I followed the instruction in ReadMe, but I couldn't compile
because of this "missing" file.
[-- Attachment #2: Type: text/html, Size: 203 bytes --]
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Thiago Farina @ 2009-08-17 22:33 UTC (permalink / raw)
To: Frank Li
Cc: Pau Garcia i Quiles, Johannes Schindelin, Reece Dunn,
Erik Faye-Lund, git, msysgit
In-Reply-To: <4A89D807.1080202@gnu.org>
What about the common-cmds.h that is in the builtin-help.c? How it will be
generated? I followed the instruction in ReadMe, but I couldn't compile
because of this "missing" file.
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Johan 't Hart @ 2009-08-17 22:26 UTC (permalink / raw)
To: Johannes Schindelin
Cc: Pau Garcia i Quiles, Erik Faye-Lund, Paolo Bonzini, Frank Li, git,
msysgit
In-Reply-To: <alpine.DEB.1.00.0908172306080.8306@pacific.mpi-cbg.de>
Johannes Schindelin schreef:
> Having said that, a CMake-based system _in addition_ to what is
> tried-and-tested to be able to support all those different kinds of
> Microsoft Visual Studio (took me 3 attempts to write that without a
> Freudian) would be welcome, _if_ you succeed in making it compile out of
> the box on msysGit.
That would require (I think) that CMake is build by the msysgit gcc
tools available in msysgit, since CMake can't be build by VS right? Pau
do you think that is possible?
It would be fun. Download the msysgit netinstaller, set it up, install
it, and after that, CMake is bootstrapped, and the visual studio .vcproj
files are generated and everyone (VS developers and msys developers) are
ready to go!
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Paolo Bonzini @ 2009-08-17 22:21 UTC (permalink / raw)
To: Pau Garcia i Quiles
Cc: Johannes Schindelin, Reece Dunn, Erik Faye-Lund, Frank Li, git,
msysgit
In-Reply-To: <3af572ac0908171519h7b72427lba7536506d44460e@mail.gmail.com>
>> This is exactly what I mean by burden. Why do I have to learn a new
>> system, and suffer the hassle of integrating it into the current build
>> system, which works quite well thankyouverymuch?
>
> Because it works for every platform, including Visual C++, where a
> Bourne shell is not available and where you currently need to maintain
> a different built system.
But it comes with its own share of idiosyncracies. There are as many
CMake haters as there are autotools haters.
I don't see CMake being used by git.git before hell freezes over. For
msysgit, however, it may be an interesting approach.
> Let's see what I can do.
I'm also curious.
Paolo
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Pau Garcia i Quiles @ 2009-08-17 22:19 UTC (permalink / raw)
To: Johannes Schindelin
Cc: Reece Dunn, Erik Faye-Lund, Paolo Bonzini, Frank Li, git, msysgit
In-Reply-To: <alpine.DEB.1.00.0908180005250.8306@pacific.mpi-cbg.de>
On Tue, Aug 18, 2009 at 12:10 AM, Johannes
Schindelin<Johannes.Schindelin@gmx.de> wrote:
> Hi,
>
> On Mon, 17 Aug 2009, Pau Garcia i Quiles wrote:
>
>> On Mon, Aug 17, 2009 at 11:05 PM, Johannes
>> Schindelin<Johannes.Schindelin@gmx.de> wrote:
>>
>> > You are putting an undue burden on the already overloaded maintainer.
>>
>> Sorry, but I'm a bit lost now. What maintainer are we talking about now?
>> Junio?
>
> I was talking about me, as maintainer of msysGit.
>
>> As I would be providing a turn-key CMake build system, the only burden I
>> would be putting on the maintainer would be learning CMake.
>>
>> Given that I'm providing a comprehensive (100+ slides) CMake tutorial
>> ( http://www.elpauer.org/stuff/learning_cmake.pdf ) , which I use in
>> my CMake workshops, I think I'm making that burden a bit lighter.
>>
>> If the next git conference is somewhere in Europe, I could also fly
>> there and we'd have a CMake tutorial, if people would feel more
>> comfortable that way.
>
> This is exactly what I mean by burden. Why do I have to learn a new
> system, and suffer the hassle of integrating it into the current build
> system, which works quite well thankyouverymuch?
Because it works for every platform, including Visual C++, where a
Bourne shell is not available and where you currently need to maintain
a different built system.
> Never run a changing system.
>
>> > Well, let's see if you can provide a /src/cmake/release.sh that
>> > compiles CMake from scratch, and _then_ I'll look into CMake again.
>>
>> Again, I'm a bit lost. What '/src/cmake/release.sh' are we talking about
>> now? Would that be part of CMake or git ?
>
> Maybe this:
>
> http://article.gmane.org/gmane.comp.version-control.git/126286
>
> and this:
>
> http://repo.or.cz/w/msysgit.git?a=blob;f=src/curl/release.sh;h=d7516cbf6e92af4de138ce405d88561fbe1e92a8;hb=968336eddac1874c56cd934d10783566af5a3e26
>
> helps.
>
> To quote myself (as you appear to have missed that):
>
> Having said that, a CMake-based system _in addition_ to what is
> tried-and-tested to be able to support all those different kinds of
> Microsoft Visual Studio (took me 3 attempts to write that without a
> Freudian) would be welcome, _if_ you succeed in making it compile out
> of the box on msysGit.
>
> By out-of-the-box I mean: you send a patch that adds
> /src/cmake/release.sh, I apply the patch (after briefly scanning
> that it does not install a backdoor on a machine that is not even
> mine, and therefore will never see even a single of my passwords
> typed in), run it, it compiles installs and commits cmake and cmake
> works.
Hmmm indeed I have missed a lot, thanks. A lot of what you had written
in other e-mails was being hidden by GMail as "quoted" text :-/
It seems we are talking about two different things here. I'm talking
about getting the CMake-based build system in git.git, you are talking
about msysgit. If getting into msysgit is the first step to getting
into git.git, I'll start from msysgit. Are the differences between
both branches so big they cannot be merged into a single branch yet ?
> Short form: if you make it easy for me, I will look at it again, if you
> make it hard on me, you will just have done to me what you now try
> to avoid yourself: wasted time.
Let's see what I can do.
--
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)
^ permalink raw reply
* Re: [PATCH] read-tree: Fix regression with creation of a new index file.
From: Johannes Schindelin @ 2009-08-17 22:19 UTC (permalink / raw)
To: Alexandre Julliard; +Cc: git, Stephen Boyd
In-Reply-To: <877hx25u7j.fsf@wine.dyndns.org>
Hi,
On Mon, 17 Aug 2009, Alexandre Julliard wrote:
> diff --git a/builtin-read-tree.c b/builtin-read-tree.c
> index 9c2d634..14c836b 100644
> --- a/builtin-read-tree.c
> +++ b/builtin-read-tree.c
> @@ -113,13 +113,15 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
> argc = parse_options(argc, argv, unused_prefix, read_tree_options,
> read_tree_usage, 0);
>
> - if (read_cache_unmerged() && (opts.prefix || opts.merge))
> - die("You need to resolve your current index first");
> -
> prefix_set = opts.prefix ? 1 : 0;
> if (1 < opts.merge + opts.reset + prefix_set)
> die("Which one? -m, --reset, or --prefix?");
> - stage = opts.merge = (opts.reset || opts.merge || prefix_set);
> +
> + if (opts.reset || opts.merge || opts.prefix) {
> + if (read_cache_unmerged() && (opts.prefix || opts.merge))
> + die("You need to resolve your current index first");
> + stage = opts.merge = 1;
> + }
Actually, this should be enough:
-- snipsnap --
diff --git a/builtin-read-tree.c b/builtin-read-tree.c
index 9c2d634..d649c56 100644
--- a/builtin-read-tree.c
+++ b/builtin-read-tree.c
@@ -113,14 +113,14 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
argc = parse_options(argc, argv, unused_prefix, read_tree_options,
read_tree_usage, 0);
- if (read_cache_unmerged() && (opts.prefix || opts.merge))
- die("You need to resolve your current index first");
-
prefix_set = opts.prefix ? 1 : 0;
if (1 < opts.merge + opts.reset + prefix_set)
die("Which one? -m, --reset, or --prefix?");
stage = opts.merge = (opts.reset || opts.merge || prefix_set);
+ if (opts.merge && (read_cache_unmerged() && !prefix_set && !opts.reset))
+ die("You need to resolve your current index first");
+
for (i = 0; i < argc; i++) {
const char *arg = argv[i];
--
1.6.4.313.g3d9e3
^ permalink raw reply related
* Re: [PATCH 10/11] Add MSVC Project file
From: Johan 't Hart @ 2009-08-17 22:17 UTC (permalink / raw)
To: Reece Dunn
Cc: Pau Garcia i Quiles, Johannes Schindelin, Erik Faye-Lund,
Paolo Bonzini, Frank Li, git, msysgit
In-Reply-To: <3f4fd2640908171405g46aa1d09t5169a3c8bcb1c49c@mail.gmail.com>
Reece Dunn schreef:
> Note that I said that people who use Visual Studio are more likely to
> build and develop things through the Visual Studio IDE. Unless there
> is IDE integration for it, they are not likely to use it.
CMake generates a .vcproj file for visual studio, so users who want to
use the IDE let CMake generate the .vcproj file and then use the IDE to
debug git.
There could be a batchfile like /vc_build/make_vs_files.bat or something
to make it easy for VS users using the IDE.
^ permalink raw reply
* Re: [PATCH 10/11] Add MSVC Project file
From: Johannes Schindelin @ 2009-08-17 22:10 UTC (permalink / raw)
To: Pau Garcia i Quiles
Cc: Reece Dunn, Erik Faye-Lund, Paolo Bonzini, Frank Li, git, msysgit
In-Reply-To: <3af572ac0908171423ye08efa8m6666ddb922d5ee92@mail.gmail.com>
Hi,
On Mon, 17 Aug 2009, Pau Garcia i Quiles wrote:
> On Mon, Aug 17, 2009 at 11:05 PM, Johannes
> Schindelin<Johannes.Schindelin@gmx.de> wrote:
>
> > You are putting an undue burden on the already overloaded maintainer.
>
> Sorry, but I'm a bit lost now. What maintainer are we talking about now?
> Junio?
I was talking about me, as maintainer of msysGit.
> As I would be providing a turn-key CMake build system, the only burden I
> would be putting on the maintainer would be learning CMake.
>
> Given that I'm providing a comprehensive (100+ slides) CMake tutorial
> ( http://www.elpauer.org/stuff/learning_cmake.pdf ) , which I use in
> my CMake workshops, I think I'm making that burden a bit lighter.
>
> If the next git conference is somewhere in Europe, I could also fly
> there and we'd have a CMake tutorial, if people would feel more
> comfortable that way.
This is exactly what I mean by burden. Why do I have to learn a new
system, and suffer the hassle of integrating it into the current build
system, which works quite well thankyouverymuch?
Never run a changing system.
> > Well, let's see if you can provide a /src/cmake/release.sh that
> > compiles CMake from scratch, and _then_ I'll look into CMake again.
>
> Again, I'm a bit lost. What '/src/cmake/release.sh' are we talking about
> now? Would that be part of CMake or git ?
Maybe this:
http://article.gmane.org/gmane.comp.version-control.git/126286
and this:
http://repo.or.cz/w/msysgit.git?a=blob;f=src/curl/release.sh;h=d7516cbf6e92af4de138ce405d88561fbe1e92a8;hb=968336eddac1874c56cd934d10783566af5a3e26
helps.
To quote myself (as you appear to have missed that):
Having said that, a CMake-based system _in addition_ to what is
tried-and-tested to be able to support all those different kinds of
Microsoft Visual Studio (took me 3 attempts to write that without a
Freudian) would be welcome, _if_ you succeed in making it compile out
of the box on msysGit.
By out-of-the-box I mean: you send a patch that adds
/src/cmake/release.sh, I apply the patch (after briefly scanning
that it does not install a backdoor on a machine that is not even
mine, and therefore will never see even a single of my passwords
typed in), run it, it compiles installs and commits cmake and cmake
works.
Short form: if you make it easy for me, I will look at it again, if you
make it hard on me, you will just have done to me what you now try
to avoid yourself: wasted time.
Ciao,
Dscho
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox