Merge branch 'jc/merge-blobs'
authorJunio C Hamano <gitster@pobox.com>
Sat, 12 Jan 2013 02:34:24 +0000 (18:34 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sat, 12 Jan 2013 02:34:24 +0000 (18:34 -0800)
Update the disused merge-tree proof-of-concept code.

* jc/merge-blobs:
merge-tree: fix d/f conflicts
merge-tree: add comments to clarify what these functions are doing
merge-tree: lose unused "resolve_directories"
merge-tree: lose unused "flags" from merge_list
Which merge_file() function do you mean?

1  2 
Makefile
diff --combined Makefile
index 029bf39c9adecb9b5cd69b770a4daaf423ac6a5c,26ec5190806796e3c24aa8464c8de9c2bc51fc23..1b30d7bde301305cde0d3af74c7e478e36bd673b
+++ b/Makefile
@@@ -74,14 -74,10 +74,14 @@@ all:
  # Define NO_D_TYPE_IN_DIRENT if your platform defines DT_UNKNOWN but lacks
  # d_type in struct dirent (Cygwin 1.5, fixed in Cygwin 1.7).
  #
 +# Define HAVE_STRINGS_H if you have strings.h and need it for strcasecmp.
 +#
  # Define NO_STRCASESTR if you don't have strcasestr.
  #
  # Define NO_MEMMEM if you don't have memmem.
  #
 +# Define NO_GETPAGESIZE if you don't have getpagesize.
 +#
  # Define NO_STRLCPY if you don't have strlcpy.
  #
  # Define NO_STRTOUMAX if you don't have both strtoimax and strtoumax in the
  # Define NO_POLL if you do not have or don't want to use poll().
  # This also implies NO_SYS_POLL_H.
  #
 +# Define NEEDS_SYS_PARAM_H if you need to include sys/param.h to compile,
 +# *PLEASE* REPORT to git@vger.kernel.org if your platform needs this;
 +# we want to know more about the issue.
 +#
  # Define NO_PTHREADS if you do not have or do not want to use Pthreads.
  #
  # Define NO_PREAD if you have a problem with pread() system call (e.g.
  #
  # Define NO_REGEX if you have no or inferior regex support in your C library.
  #
 +# Define CYGWIN_V15_WIN32API if you are using Cygwin v1.7.x but are not
 +# using the current w32api packages. The recommended approach, however,
 +# is to update your installation if compilation errors occur.
 +#
  # Define HAVE_DEV_TTY if your system can open /dev/tty to interact with the
  # user.
  #
@@@ -338,6 -326,19 +338,6 @@@ GIT-VERSION-FILE: FORC
        @$(SHELL_PATH) ./GIT-VERSION-GEN
  -include GIT-VERSION-FILE
  
 -uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
 -uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
 -uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
 -uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not')
 -uname_P := $(shell sh -c 'uname -p 2>/dev/null || echo not')
 -uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not')
 -
 -ifdef MSVC
 -      # avoid the MingW and Cygwin configuration sections
 -      uname_S := Windows
 -      uname_O := Windows
 -endif
 -
  # CFLAGS and LDFLAGS are for the users to override from the command line.
  
  CFLAGS = -g -O2 -Wall
@@@ -373,7 -374,7 +373,7 @@@ htmldir = share/doc/git-do
  ETC_GITCONFIG = $(sysconfdir)/gitconfig
  ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes
  lib = lib
 -# DESTDIR=
 +# DESTDIR =
  pathsep = :
  
  export prefix bindir sharedir sysconfdir gitwebdir localedir
@@@ -469,7 -470,7 +469,7 @@@ SCRIPT_PERL += git-relink.per
  SCRIPT_PERL += git-send-email.perl
  SCRIPT_PERL += git-svn.perl
  
 -SCRIPT_PYTHON += git-remote-testgit.py
 +SCRIPT_PYTHON += git-remote-testpy.py
  SCRIPT_PYTHON += git-p4.py
  
  SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
@@@ -523,7 -524,6 +523,7 @@@ TEST_PROGRAMS_NEED_X += test-sigchai
  TEST_PROGRAMS_NEED_X += test-string-list
  TEST_PROGRAMS_NEED_X += test-subprocess
  TEST_PROGRAMS_NEED_X += test-svn-fe
 +TEST_PROGRAMS_NEED_X += test-wildmatch
  
  TEST_PROGRAMS = $(patsubst %,%$X,$(TEST_PROGRAMS_NEED_X))
  
@@@ -575,9 -575,9 +575,9 @@@ endi
  export PERL_PATH
  export PYTHON_PATH
  
 -LIB_FILE=libgit.a
 -XDIFF_LIB=xdiff/lib.a
 -VCSSVN_LIB=vcs-svn/lib.a
 +LIB_FILE = libgit.a
 +XDIFF_LIB = xdiff/lib.a
 +VCSSVN_LIB = vcs-svn/lib.a
  
  LIB_H += xdiff/xinclude.h
  LIB_H += xdiff/xmacros.h
@@@ -696,7 -696,6 +696,7 @@@ LIB_H += userdiff.
  LIB_H += utf8.h
  LIB_H += varint.h
  LIB_H += walker.h
 +LIB_H += wildmatch.h
  LIB_H += wt-status.h
  LIB_H += xdiff-interface.h
  LIB_H += xdiff/xdiff.h
@@@ -766,7 -765,7 +766,7 @@@ LIB_OBJS += log-tree.
  LIB_OBJS += mailmap.o
  LIB_OBJS += match-trees.o
  LIB_OBJS += merge.o
- LIB_OBJS += merge-file.o
+ LIB_OBJS += merge-blobs.o
  LIB_OBJS += merge-recursive.o
  LIB_OBJS += mergesort.o
  LIB_OBJS += name-hash.o
@@@ -831,7 -830,6 +831,7 @@@ LIB_OBJS += utf8.
  LIB_OBJS += varint.o
  LIB_OBJS += version.o
  LIB_OBJS += walker.o
 +LIB_OBJS += wildmatch.o
  LIB_OBJS += wrapper.o
  LIB_OBJS += write_or_die.o
  LIB_OBJS += ws.o
@@@ -939,7 -937,518 +939,7 @@@ EXTLIBS 
  
  GIT_USER_AGENT = git/$(GIT_VERSION)
  
 -#
 -# Platform specific tweaks
 -#
 -
 -# We choose to avoid "if .. else if .. else .. endif endif"
 -# because maintaining the nesting to match is a pain.  If
 -# we had "elif" things would have been much nicer...
 -
 -ifeq ($(uname_M),x86_64)
 -      XDL_FAST_HASH = YesPlease
 -endif
 -ifeq ($(uname_S),OSF1)
 -      # Need this for u_short definitions et al
 -      BASIC_CFLAGS += -D_OSF_SOURCE
 -      SOCKLEN_T = int
 -      NO_STRTOULL = YesPlease
 -      NO_NSEC = YesPlease
 -endif
 -ifeq ($(uname_S),Linux)
 -      NO_STRLCPY = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      HAVE_PATHS_H = YesPlease
 -      LIBC_CONTAINS_LIBINTL = YesPlease
 -      HAVE_DEV_TTY = YesPlease
 -endif
 -ifeq ($(uname_S),GNU/kFreeBSD)
 -      NO_STRLCPY = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      HAVE_PATHS_H = YesPlease
 -      DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
 -      LIBC_CONTAINS_LIBINTL = YesPlease
 -endif
 -ifeq ($(uname_S),UnixWare)
 -      CC = cc
 -      NEEDS_SOCKET = YesPlease
 -      NEEDS_NSL = YesPlease
 -      NEEDS_SSL_WITH_CRYPTO = YesPlease
 -      NEEDS_LIBICONV = YesPlease
 -      SHELL_PATH = /usr/local/bin/bash
 -      NO_IPV6 = YesPlease
 -      NO_HSTRERROR = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      BASIC_CFLAGS += -Kthread
 -      BASIC_CFLAGS += -I/usr/local/include
 -      BASIC_LDFLAGS += -L/usr/local/lib
 -      INSTALL = ginstall
 -      TAR = gtar
 -      NO_STRCASESTR = YesPlease
 -      NO_MEMMEM = YesPlease
 -endif
 -ifeq ($(uname_S),SCO_SV)
 -      ifeq ($(uname_R),3.2)
 -              CFLAGS = -O2
 -      endif
 -      ifeq ($(uname_R),5)
 -              CC = cc
 -              BASIC_CFLAGS += -Kthread
 -      endif
 -      NEEDS_SOCKET = YesPlease
 -      NEEDS_NSL = YesPlease
 -      NEEDS_SSL_WITH_CRYPTO = YesPlease
 -      NEEDS_LIBICONV = YesPlease
 -      SHELL_PATH = /usr/bin/bash
 -      NO_IPV6 = YesPlease
 -      NO_HSTRERROR = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      BASIC_CFLAGS += -I/usr/local/include
 -      BASIC_LDFLAGS += -L/usr/local/lib
 -      NO_STRCASESTR = YesPlease
 -      NO_MEMMEM = YesPlease
 -      INSTALL = ginstall
 -      TAR = gtar
 -endif
 -ifeq ($(uname_S),Darwin)
 -      NEEDS_CRYPTO_WITH_SSL = YesPlease
 -      NEEDS_SSL_WITH_CRYPTO = YesPlease
 -      NEEDS_LIBICONV = YesPlease
 -      ifeq ($(shell expr "$(uname_R)" : '[15678]\.'),2)
 -              OLD_ICONV = UnfortunatelyYes
 -      endif
 -      ifeq ($(shell expr "$(uname_R)" : '[15]\.'),2)
 -              NO_STRLCPY = YesPlease
 -      endif
 -      NO_MEMMEM = YesPlease
 -      USE_ST_TIMESPEC = YesPlease
 -      HAVE_DEV_TTY = YesPlease
 -      COMPAT_OBJS += compat/precompose_utf8.o
 -      BASIC_CFLAGS += -DPRECOMPOSE_UNICODE
 -endif
 -ifeq ($(uname_S),SunOS)
 -      NEEDS_SOCKET = YesPlease
 -      NEEDS_NSL = YesPlease
 -      SHELL_PATH = /bin/bash
 -      SANE_TOOL_PATH = /usr/xpg6/bin:/usr/xpg4/bin
 -      NO_STRCASESTR = YesPlease
 -      NO_MEMMEM = YesPlease
 -      NO_MKDTEMP = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      NO_REGEX = YesPlease
 -      NO_FNMATCH_CASEFOLD = YesPlease
 -      NO_MSGFMT_EXTENDED_OPTIONS = YesPlease
 -      HAVE_DEV_TTY = YesPlease
 -      ifeq ($(uname_R),5.6)
 -              SOCKLEN_T = int
 -              NO_HSTRERROR = YesPlease
 -              NO_IPV6 = YesPlease
 -              NO_SOCKADDR_STORAGE = YesPlease
 -              NO_UNSETENV = YesPlease
 -              NO_SETENV = YesPlease
 -              NO_STRLCPY = YesPlease
 -              NO_STRTOUMAX = YesPlease
 -              GIT_TEST_CMP = cmp
 -      endif
 -      ifeq ($(uname_R),5.7)
 -              NEEDS_RESOLV = YesPlease
 -              NO_IPV6 = YesPlease
 -              NO_SOCKADDR_STORAGE = YesPlease
 -              NO_UNSETENV = YesPlease
 -              NO_SETENV = YesPlease
 -              NO_STRLCPY = YesPlease
 -              NO_STRTOUMAX = YesPlease
 -              GIT_TEST_CMP = cmp
 -      endif
 -      ifeq ($(uname_R),5.8)
 -              NO_UNSETENV = YesPlease
 -              NO_SETENV = YesPlease
 -              NO_STRTOUMAX = YesPlease
 -              GIT_TEST_CMP = cmp
 -      endif
 -      ifeq ($(uname_R),5.9)
 -              NO_UNSETENV = YesPlease
 -              NO_SETENV = YesPlease
 -              NO_STRTOUMAX = YesPlease
 -              GIT_TEST_CMP = cmp
 -      endif
 -      INSTALL = /usr/ucb/install
 -      TAR = gtar
 -      BASIC_CFLAGS += -D__EXTENSIONS__ -D__sun__ -DHAVE_ALLOCA_H
 -endif
 -ifeq ($(uname_O),Cygwin)
 -      ifeq ($(shell expr "$(uname_R)" : '1\.[1-6]\.'),4)
 -              NO_D_TYPE_IN_DIRENT = YesPlease
 -              NO_D_INO_IN_DIRENT = YesPlease
 -              NO_STRCASESTR = YesPlease
 -              NO_MEMMEM = YesPlease
 -              NO_MKSTEMPS = YesPlease
 -              NO_SYMLINK_HEAD = YesPlease
 -              NO_IPV6 = YesPlease
 -              OLD_ICONV = UnfortunatelyYes
 -              CYGWIN_V15_WIN32API = YesPlease
 -      endif
 -      NO_THREAD_SAFE_PREAD = YesPlease
 -      NEEDS_LIBICONV = YesPlease
 -      NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes
 -      NO_TRUSTABLE_FILEMODE = UnfortunatelyYes
 -      NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
 -      # There are conflicting reports about this.
 -      # On some boxes NO_MMAP is needed, and not so elsewhere.
 -      # Try commenting this out if you suspect MMAP is more efficient
 -      NO_MMAP = YesPlease
 -      X = .exe
 -      COMPAT_OBJS += compat/cygwin.o
 -      UNRELIABLE_FSTAT = UnfortunatelyYes
 -      SPARSE_FLAGS = -isystem /usr/include/w32api -Wno-one-bit-signed-bitfield
 -endif
 -ifeq ($(uname_S),FreeBSD)
 -      NEEDS_LIBICONV = YesPlease
 -      OLD_ICONV = YesPlease
 -      NO_MEMMEM = YesPlease
 -      BASIC_CFLAGS += -I/usr/local/include
 -      BASIC_LDFLAGS += -L/usr/local/lib
 -      DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
 -      USE_ST_TIMESPEC = YesPlease
 -      ifeq ($(shell expr "$(uname_R)" : '4\.'),2)
 -              PTHREAD_LIBS = -pthread
 -              NO_UINTMAX_T = YesPlease
 -              NO_STRTOUMAX = YesPlease
 -      endif
 -      PYTHON_PATH = /usr/local/bin/python
 -      HAVE_PATHS_H = YesPlease
 -endif
 -ifeq ($(uname_S),OpenBSD)
 -      NO_STRCASESTR = YesPlease
 -      NO_MEMMEM = YesPlease
 -      USE_ST_TIMESPEC = YesPlease
 -      NEEDS_LIBICONV = YesPlease
 -      BASIC_CFLAGS += -I/usr/local/include
 -      BASIC_LDFLAGS += -L/usr/local/lib
 -      HAVE_PATHS_H = YesPlease
 -endif
 -ifeq ($(uname_S),NetBSD)
 -      ifeq ($(shell expr "$(uname_R)" : '[01]\.'),2)
 -              NEEDS_LIBICONV = YesPlease
 -      endif
 -      BASIC_CFLAGS += -I/usr/pkg/include
 -      BASIC_LDFLAGS += -L/usr/pkg/lib $(CC_LD_DYNPATH)/usr/pkg/lib
 -      USE_ST_TIMESPEC = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      HAVE_PATHS_H = YesPlease
 -endif
 -ifeq ($(uname_S),AIX)
 -      DEFAULT_PAGER = more
 -      NO_STRCASESTR=YesPlease
 -      NO_MEMMEM = YesPlease
 -      NO_MKDTEMP = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      NO_STRLCPY = YesPlease
 -      NO_NSEC = YesPlease
 -      FREAD_READS_DIRECTORIES = UnfortunatelyYes
 -      INTERNAL_QSORT = UnfortunatelyYes
 -      NEEDS_LIBICONV=YesPlease
 -      BASIC_CFLAGS += -D_LARGE_FILES
 -      ifeq ($(shell expr "$(uname_V)" : '[1234]'),1)
 -              NO_PTHREADS = YesPlease
 -      else
 -              PTHREAD_LIBS = -lpthread
 -      endif
 -      ifeq ($(shell expr "$(uname_V).$(uname_R)" : '5\.1'),3)
 -              INLINE=''
 -      endif
 -      GIT_TEST_CMP = cmp
 -endif
 -ifeq ($(uname_S),GNU)
 -      # GNU/Hurd
 -      NO_STRLCPY=YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      HAVE_PATHS_H = YesPlease
 -      LIBC_CONTAINS_LIBINTL = YesPlease
 -endif
 -ifeq ($(uname_S),IRIX)
 -      NO_SETENV = YesPlease
 -      NO_UNSETENV = YesPlease
 -      NO_STRCASESTR = YesPlease
 -      NO_MEMMEM = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      NO_MKDTEMP = YesPlease
 -      # When compiled with the MIPSpro 7.4.4m compiler, and without pthreads
 -      # (i.e. NO_PTHREADS is set), and _with_ MMAP (i.e. NO_MMAP is not set),
 -      # git dies with a segmentation fault when trying to access the first
 -      # entry of a reflog.  The conservative choice is made to always set
 -      # NO_MMAP.  If you suspect that your compiler is not affected by this
 -      # issue, comment out the NO_MMAP statement.
 -      NO_MMAP = YesPlease
 -      NO_REGEX = YesPlease
 -      NO_FNMATCH_CASEFOLD = YesPlease
 -      SNPRINTF_RETURNS_BOGUS = YesPlease
 -      SHELL_PATH = /usr/gnu/bin/bash
 -      NEEDS_LIBGEN = YesPlease
 -endif
 -ifeq ($(uname_S),IRIX64)
 -      NO_SETENV=YesPlease
 -      NO_UNSETENV = YesPlease
 -      NO_STRCASESTR=YesPlease
 -      NO_MEMMEM = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      NO_MKDTEMP = YesPlease
 -      # When compiled with the MIPSpro 7.4.4m compiler, and without pthreads
 -      # (i.e. NO_PTHREADS is set), and _with_ MMAP (i.e. NO_MMAP is not set),
 -      # git dies with a segmentation fault when trying to access the first
 -      # entry of a reflog.  The conservative choice is made to always set
 -      # NO_MMAP.  If you suspect that your compiler is not affected by this
 -      # issue, comment out the NO_MMAP statement.
 -      NO_MMAP = YesPlease
 -      NO_REGEX = YesPlease
 -      NO_FNMATCH_CASEFOLD = YesPlease
 -      SNPRINTF_RETURNS_BOGUS = YesPlease
 -      SHELL_PATH=/usr/gnu/bin/bash
 -      NEEDS_LIBGEN = YesPlease
 -endif
 -ifeq ($(uname_S),HP-UX)
 -      INLINE = __inline
 -      NO_IPV6=YesPlease
 -      NO_SETENV=YesPlease
 -      NO_STRCASESTR=YesPlease
 -      NO_MEMMEM = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      NO_STRLCPY = YesPlease
 -      NO_MKDTEMP = YesPlease
 -      NO_UNSETENV = YesPlease
 -      NO_HSTRERROR = YesPlease
 -      NO_SYS_SELECT_H = YesPlease
 -      NO_FNMATCH_CASEFOLD = YesPlease
 -      SNPRINTF_RETURNS_BOGUS = YesPlease
 -      NO_NSEC = YesPlease
 -      ifeq ($(uname_R),B.11.00)
 -              NO_INET_NTOP = YesPlease
 -              NO_INET_PTON = YesPlease
 -      endif
 -      ifeq ($(uname_R),B.10.20)
 -              # Override HP-UX 11.x setting:
 -              INLINE =
 -              SOCKLEN_T = size_t
 -              NO_PREAD = YesPlease
 -              NO_INET_NTOP = YesPlease
 -              NO_INET_PTON = YesPlease
 -      endif
 -      GIT_TEST_CMP = cmp
 -endif
 -ifeq ($(uname_S),Windows)
 -      GIT_VERSION := $(GIT_VERSION).MSVC
 -      pathsep = ;
 -      NO_PREAD = YesPlease
 -      NEEDS_CRYPTO_WITH_SSL = YesPlease
 -      NO_LIBGEN_H = YesPlease
 -      NO_POLL = YesPlease
 -      NO_SYMLINK_HEAD = YesPlease
 -      NO_IPV6 = YesPlease
 -      NO_UNIX_SOCKETS = YesPlease
 -      NO_SETENV = YesPlease
 -      NO_UNSETENV = YesPlease
 -      NO_STRCASESTR = YesPlease
 -      NO_STRLCPY = YesPlease
 -      NO_STRTOK_R = YesPlease
 -      NO_FNMATCH = YesPlease
 -      NO_MEMMEM = YesPlease
 -      # NEEDS_LIBICONV = YesPlease
 -      NO_ICONV = YesPlease
 -      NO_STRTOUMAX = YesPlease
 -      NO_STRTOULL = YesPlease
 -      NO_MKDTEMP = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      SNPRINTF_RETURNS_BOGUS = YesPlease
 -      NO_SVN_TESTS = YesPlease
 -      NO_PERL_MAKEMAKER = YesPlease
 -      RUNTIME_PREFIX = YesPlease
 -      NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
 -      NO_NSEC = YesPlease
 -      USE_WIN32_MMAP = YesPlease
 -      # USE_NED_ALLOCATOR = YesPlease
 -      UNRELIABLE_FSTAT = UnfortunatelyYes
 -      OBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo
 -      NO_REGEX = YesPlease
 -      NO_CURL = YesPlease
 -      NO_PYTHON = YesPlease
 -      BLK_SHA1 = YesPlease
 -      NO_POSIX_GOODIES = UnfortunatelyYes
 -      NATIVE_CRLF = YesPlease
 -      DEFAULT_HELP_FORMAT = html
 -
 -      CC = compat/vcbuild/scripts/clink.pl
 -      AR = compat/vcbuild/scripts/lib.pl
 -      CFLAGS =
 -      BASIC_CFLAGS = -nologo -I. -I../zlib -Icompat/vcbuild -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE
 -      COMPAT_OBJS = compat/msvc.o compat/winansi.o \
 -              compat/win32/pthread.o compat/win32/syslog.o \
 -              compat/win32/dirent.o
 -      COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
 -      BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
 -      EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib
 -      PTHREAD_LIBS =
 -      lib =
 -ifndef DEBUG
 -      BASIC_CFLAGS += -GL -Os -MT
 -      BASIC_LDFLAGS += -LTCG
 -      AR += -LTCG
 -else
 -      BASIC_CFLAGS += -Zi -MTd
 -endif
 -      X = .exe
 -endif
 -ifeq ($(uname_S),Interix)
 -      NO_INITGROUPS = YesPlease
 -      NO_IPV6 = YesPlease
 -      NO_MEMMEM = YesPlease
 -      NO_MKDTEMP = YesPlease
 -      NO_STRTOUMAX = YesPlease
 -      NO_NSEC = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      ifeq ($(uname_R),3.5)
 -              NO_INET_NTOP = YesPlease
 -              NO_INET_PTON = YesPlease
 -              NO_SOCKADDR_STORAGE = YesPlease
 -              NO_FNMATCH_CASEFOLD = YesPlease
 -      endif
 -      ifeq ($(uname_R),5.2)
 -              NO_INET_NTOP = YesPlease
 -              NO_INET_PTON = YesPlease
 -              NO_SOCKADDR_STORAGE = YesPlease
 -              NO_FNMATCH_CASEFOLD = YesPlease
 -      endif
 -endif
 -ifeq ($(uname_S),Minix)
 -      NO_IPV6 = YesPlease
 -      NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
 -      NO_NSEC = YesPlease
 -      NEEDS_LIBGEN =
 -      NEEDS_CRYPTO_WITH_SSL = YesPlease
 -      NEEDS_IDN_WITH_CURL = YesPlease
 -      NEEDS_SSL_WITH_CURL = YesPlease
 -      NEEDS_RESOLV =
 -      NO_HSTRERROR = YesPlease
 -      NO_MMAP = YesPlease
 -      NO_CURL =
 -      NO_EXPAT =
 -endif
 -ifeq ($(uname_S),NONSTOP_KERNEL)
 -      # Needs some C99 features, "inline" is just one of them.
 -      # INLINE='' would just replace one set of warnings with another and
 -      # still not compile in c89 mode, due to non-const array initializations.
 -      CC = cc -c99
 -      # Disable all optimization, seems to result in bad code, with -O or -O2
 -      # or even -O1 (default), /usr/local/libexec/git-core/git-pack-objects
 -      # abends on "git push". Needs more investigation.
 -      CFLAGS = -g -O0
 -      # We'd want it to be here.
 -      prefix = /usr/local
 -      # Our's are in ${prefix}/bin (perl might also be in /usr/bin/perl).
 -      PERL_PATH = ${prefix}/bin/perl
 -      PYTHON_PATH = ${prefix}/bin/python
 -
 -      # As detected by './configure'.
 -      # Missdetected, hence commented out, see below.
 -      #NO_CURL = YesPlease
 -      # Added manually, see above.
 -      NEEDS_SSL_WITH_CURL = YesPlease
 -      HAVE_LIBCHARSET_H = YesPlease
 -      NEEDS_LIBICONV = YesPlease
 -      NEEDS_LIBINTL_BEFORE_LIBICONV = YesPlease
 -      NO_SYS_SELECT_H = UnfortunatelyYes
 -      NO_D_TYPE_IN_DIRENT = YesPlease
 -      NO_HSTRERROR = YesPlease
 -      NO_STRCASESTR = YesPlease
 -      NO_FNMATCH_CASEFOLD = YesPlease
 -      NO_MEMMEM = YesPlease
 -      NO_STRLCPY = YesPlease
 -      NO_SETENV = YesPlease
 -      NO_UNSETENV = YesPlease
 -      NO_MKDTEMP = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      # Currently libiconv-1.9.1.
 -      OLD_ICONV = UnfortunatelyYes
 -      NO_REGEX = YesPlease
 -      NO_PTHREADS = UnfortunatelyYes
 -
 -      # Not detected (nor checked for) by './configure'.
 -      # We don't have SA_RESTART on NonStop, unfortunalety.
 -      COMPAT_CFLAGS += -DSA_RESTART=0
 -      # Apparently needed in compat/fnmatch/fnmatch.c.
 -      COMPAT_CFLAGS += -DHAVE_STRING_H=1
 -      NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
 -      NO_NSEC = YesPlease
 -      NO_PREAD = YesPlease
 -      NO_MMAP = YesPlease
 -      NO_POLL = YesPlease
 -      NO_INTPTR_T = UnfortunatelyYes
 -      # Bug report 10-120822-4477 submitted to HP NonStop development.
 -      MKDIR_WO_TRAILING_SLASH = YesPlease
 -      # RFE 10-120912-4693 submitted to HP NonStop development.
 -      NO_SETITIMER = UnfortunatelyYes
 -      SANE_TOOL_PATH=/usr/coreutils/bin:/usr/local/bin
 -      SHELL_PATH=/usr/local/bin/bash
 -      # as of H06.25/J06.14, we might better use this
 -      #SHELL_PATH=/usr/coreutils/bin/bash
 -endif
 -ifneq (,$(findstring MINGW,$(uname_S)))
 -      pathsep = ;
 -      NO_PREAD = YesPlease
 -      NEEDS_CRYPTO_WITH_SSL = YesPlease
 -      NO_LIBGEN_H = YesPlease
 -      NO_POLL = YesPlease
 -      NO_SYMLINK_HEAD = YesPlease
 -      NO_UNIX_SOCKETS = YesPlease
 -      NO_SETENV = YesPlease
 -      NO_UNSETENV = YesPlease
 -      NO_STRCASESTR = YesPlease
 -      NO_STRLCPY = YesPlease
 -      NO_STRTOK_R = YesPlease
 -      NO_FNMATCH = YesPlease
 -      NO_MEMMEM = YesPlease
 -      NEEDS_LIBICONV = YesPlease
 -      OLD_ICONV = YesPlease
 -      NO_STRTOUMAX = YesPlease
 -      NO_MKDTEMP = YesPlease
 -      NO_MKSTEMPS = YesPlease
 -      NO_SVN_TESTS = YesPlease
 -      NO_PERL_MAKEMAKER = YesPlease
 -      RUNTIME_PREFIX = YesPlease
 -      NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
 -      NO_NSEC = YesPlease
 -      USE_WIN32_MMAP = YesPlease
 -      USE_NED_ALLOCATOR = YesPlease
 -      UNRELIABLE_FSTAT = UnfortunatelyYes
 -      OBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo
 -      NO_REGEX = YesPlease
 -      NO_PYTHON = YesPlease
 -      BLK_SHA1 = YesPlease
 -      ETAGS_TARGET = ETAGS
 -      NO_INET_PTON = YesPlease
 -      NO_INET_NTOP = YesPlease
 -      NO_POSIX_GOODIES = UnfortunatelyYes
 -      COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat -Icompat/win32
 -      COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
 -      COMPAT_OBJS += compat/mingw.o compat/winansi.o \
 -              compat/win32/pthread.o compat/win32/syslog.o \
 -              compat/win32/dirent.o
 -      EXTLIBS += -lws2_32
 -      PTHREAD_LIBS =
 -      X = .exe
 -      SPARSE_FLAGS = -Wno-one-bit-signed-bitfield
 -ifneq (,$(wildcard ../THIS_IS_MSYSGIT))
 -      htmldir=doc/git/html/
 -      prefix =
 -      INSTALL = /bin/install
 -      EXTLIBS += /mingw/lib/libz.a
 -      NO_R_TO_GCC_LINKER = YesPlease
 -      INTERNAL_QSORT = YesPlease
 -      HAVE_LIBCHARSET_H = YesPlease
 -else
 -      NO_CURL = YesPlease
 -endif
 -endif
 -
 +include config.mak.uname
  -include config.mak.autogen
  -include config.mak
  
@@@ -1050,7 -1559,7 +1050,7 @@@ els
                CURL_LIBCURL = -lcurl
        endif
        ifdef NEEDS_SSL_WITH_CURL
 -              CURL_LIBCURL += -lssl
 +              CURL_LIBCURL += -lssl
                ifdef NEEDS_CRYPTO_WITH_SSL
                        CURL_LIBCURL += -lcrypto
                endif
@@@ -1146,9 -1655,6 +1146,9 @@@ endi
  ifdef NO_D_INO_IN_DIRENT
        BASIC_CFLAGS += -DNO_D_INO_IN_DIRENT
  endif
 +ifdef NO_GECOS_IN_PWENT
 +      BASIC_CFLAGS += -DNO_GECOS_IN_PWENT
 +endif
  ifdef NO_ST_BLOCKS_IN_STRUCT_STAT
        BASIC_CFLAGS += -DNO_ST_BLOCKS_IN_STRUCT_STAT
  endif
@@@ -1242,9 -1748,6 +1242,9 @@@ endi
  ifdef NO_SYS_POLL_H
        BASIC_CFLAGS += -DNO_SYS_POLL_H
  endif
 +ifdef NEEDS_SYS_PARAM_H
 +      BASIC_CFLAGS += -DNEEDS_SYS_PARAM_H
 +endif
  ifdef NO_INTTYPES_H
        BASIC_CFLAGS += -DNO_INTTYPES_H
  endif
@@@ -1265,7 -1768,7 +1265,7 @@@ ifdef OBJECT_CREATION_USES_RENAME
  endif
  ifdef NO_STRUCT_ITIMERVAL
        COMPAT_CFLAGS += -DNO_STRUCT_ITIMERVAL
 -      NO_SETITIMER=YesPlease
 +      NO_SETITIMER = YesPlease
  endif
  ifdef NO_SETITIMER
        COMPAT_CFLAGS += -DNO_SETITIMER
@@@ -1356,9 -1859,6 +1356,9 @@@ ifdef NO_MEMME
        COMPAT_CFLAGS += -DNO_MEMMEM
        COMPAT_OBJS += compat/memmem.o
  endif
 +ifdef NO_GETPAGESIZE
 +      COMPAT_CFLAGS += -DNO_GETPAGESIZE
 +endif
  ifdef INTERNAL_QSORT
        COMPAT_CFLAGS += -DINTERNAL_QSORT
        COMPAT_OBJS += compat/qsort.o
@@@ -1384,10 -1884,6 +1384,10 @@@ ifdef HAVE_LIBCHARSET_
        EXTLIBS += $(CHARSET_LIB)
  endif
  
 +ifdef HAVE_STRINGS_H
 +      BASIC_CFLAGS += -DHAVE_STRINGS_H
 +endif
 +
  ifdef HAVE_DEV_TTY
        BASIC_CFLAGS += -DHAVE_DEV_TTY
  endif
@@@ -1424,15 -1920,15 +1424,15 @@@ ifneq (,$(XDL_FAST_HASH)
  endif
  
  ifeq ($(TCLTK_PATH),)
 -NO_TCLTK=NoThanks
 +NO_TCLTK = NoThanks
  endif
  
  ifeq ($(PERL_PATH),)
 -NO_PERL=NoThanks
 +NO_PERL = NoThanks
  endif
  
  ifeq ($(PYTHON_PATH),)
 -NO_PYTHON=NoThanks
 +NO_PYTHON = NoThanks
  endif
  
  QUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
@@@ -1479,13 -1975,13 +1479,13 @@@ PROFILE_DIR := $(CURDIR
  ifeq ("$(PROFILE)","GEN")
        CFLAGS += -fprofile-generate=$(PROFILE_DIR) -DNO_NORETURN=1
        EXTLIBS += -lgcov
 -      export CCACHE_DISABLE=t
 -      V=1
 +      export CCACHE_DISABLE = t
 +      V = 1
  else
  ifneq ("$(PROFILE)","")
        CFLAGS += -fprofile-use=$(PROFILE_DIR) -fprofile-correction -DNO_NORETURN=1
 -      export CCACHE_DISABLE=t
 -      V=1
 +      export CCACHE_DISABLE = t
 +      V = 1
  endif
  endif
  
@@@ -1687,7 -2183,7 +1687,7 @@@ ende
  GIT-SCRIPT-DEFINES: FORCE
        @FLAGS='$(SCRIPT_DEFINES)'; \
            if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \
 -              echo 1>&2 "    * new script parameters"; \
 +              echo >&2 "    * new script parameters"; \
                echo "$$FLAGS" >$@; \
              fi
  
@@@ -1749,7 -2245,7 +1749,7 @@@ $(patsubst %.perl,%,$(SCRIPT_PERL)) git
  endif # NO_PERL
  
  ifndef NO_PYTHON
 -$(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS GIT-PREFIX
 +$(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS GIT-PREFIX GIT-PYTHON-VARS
  $(patsubst %.py,%,$(SCRIPT_PYTHON)): % : %.py
        $(QUIET_GEN)$(RM) $@ $@+ && \
        INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C git_remote_helpers -s \
@@@ -1779,14 -2275,8 +1779,14 @@@ configure: configure.ac GIT-VERSION-FIL
        $(RM) $<+
  
  ifdef AUTOCONFIGURED
 -config.status: configure
 -      $(QUIET_GEN)if test -f config.status; then \
 +# We avoid depending on 'configure' here, because it gets rebuilt
 +# every time GIT-VERSION-FILE is modified, only to update the embedded
 +# version number string, which config.status does not care about.  We
 +# do want to recheck when the platform/environment detection logic
 +# changes, hence this depends on configure.ac.
 +config.status: configure.ac
 +      $(QUIET_GEN)$(MAKE) configure && \
 +      if test -f config.status; then \
          ./config.status --recheck; \
        else \
          ./configure; \
@@@ -2074,7 -2564,7 +2074,7 @@@ TRACK_PREFIX = $(bindir_SQ):$(gitexecdi
  GIT-PREFIX: FORCE
        @FLAGS='$(TRACK_PREFIX)'; \
        if test x"$$FLAGS" != x"`cat GIT-PREFIX 2>/dev/null`" ; then \
 -              echo 1>&2 "    * new prefix flags"; \
 +              echo >&2 "    * new prefix flags"; \
                echo "$$FLAGS" >GIT-PREFIX; \
        fi
  
@@@ -2083,7 -2573,7 +2083,7 @@@ TRACK_CFLAGS = $(CC):$(subst ','\'',$(A
  GIT-CFLAGS: FORCE
        @FLAGS='$(TRACK_CFLAGS)'; \
            if test x"$$FLAGS" != x"`cat GIT-CFLAGS 2>/dev/null`" ; then \
 -              echo 1>&2 "    * new build flags"; \
 +              echo >&2 "    * new build flags"; \
                echo "$$FLAGS" >GIT-CFLAGS; \
              fi
  
@@@ -2092,7 -2582,7 +2092,7 @@@ TRACK_LDFLAGS = $(subst ','\'',$(ALL_LD
  GIT-LDFLAGS: FORCE
        @FLAGS='$(TRACK_LDFLAGS)'; \
            if test x"$$FLAGS" != x"`cat GIT-LDFLAGS 2>/dev/null`" ; then \
 -              echo 1>&2 "    * new link flags"; \
 +              echo >&2 "    * new link flags"; \
                echo "$$FLAGS" >GIT-LDFLAGS; \
              fi
  
@@@ -2134,14 -2624,14 +2134,14 @@@ ifdef GIT_PERF_MAKE_OPT
        @echo GIT_PERF_MAKE_OPTS=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_MAKE_OPTS)))'\' >>$@
  endif
  
 -### Detect Tck/Tk interpreter path changes
 -ifndef NO_TCLTK
 -TRACK_VARS = $(subst ','\'',-DTCLTK_PATH='$(TCLTK_PATH_SQ)')
 +### Detect Python interpreter path changes
 +ifndef NO_PYTHON
 +TRACK_PYTHON = $(subst ','\'',-DPYTHON_PATH='$(PYTHON_PATH_SQ)')
  
 -GIT-GUI-VARS: FORCE
 -      @VARS='$(TRACK_VARS)'; \
 +GIT-PYTHON-VARS: FORCE
 +      @VARS='$(TRACK_PYTHON)'; \
            if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
 -              echo 1>&2 "    * new Tcl/Tk interpreter location"; \
 +              echo >&2 "    * new Python interpreter location"; \
                echo "$$VARS" >$@; \
              fi
  endif
@@@ -2340,7 -2830,7 +2340,7 @@@ git.spec: git.spec.in GIT-VERSION-FIL
        sed -e 's/@@VERSION@@/$(GIT_VERSION)/g' < $< > $@+
        mv $@+ $@
  
 -GIT_TARNAME=git-$(GIT_VERSION)
 +GIT_TARNAME = git-$(GIT_VERSION)
  dist: git.spec git-archive$(X) configure
        ./git-archive --format=tar \
                --prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar
@@@ -2420,8 -2910,8 +2420,8 @@@ ifndef NO_TCLT
        $(MAKE) -C gitk-git clean
        $(MAKE) -C git-gui clean
  endif
 -      $(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
 -      $(RM) GIT-USER-AGENT GIT-PREFIX GIT-SCRIPT-DEFINES
 +      $(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-BUILD-OPTIONS
 +      $(RM) GIT-USER-AGENT GIT-PREFIX GIT-SCRIPT-DEFINES GIT-PYTHON-VARS
  
  .PHONY: all install profile-clean clean strip
  .PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell