msysgit/git — pull request #231 by kblees (2014-08-16 03:49:04+00:00)
Title: msysgit 2.1.0

I just did a merging-rebase to the newly released v2.1.0. The test suite ran without failures. And with all the Unicode patches out of the way (thanks to Stepan), the history looks really neat and simple.

Notable changes to current master:
* removed patches / branches that are in upstream
* simplified dependencies between branches
* picked missing patches from maint-1.9
* dropped the getenv("HOME") patch (HOME is set by all calling shells in a more fault-tolerant way)
* dropped the symlink branch (causes ~30 test failures and breaks long paths support and fscache)
* dropped the fixes for issue https://github.com/msysgit/msysgit/issues/227 in favor of the upstream / maint-1.9 versions

Here's what I did to the rebase script to get there:
```diff
--- git-rebase-todo-v2.1.0-org.txt	Fri Aug 15 23:39:25 2014
+++ git-rebase-todo-v2.1.0-final.txt	Sat Aug 16 00:57:05 2014
@@ -2,17 +2,7 @@
mark onto

# Branch: refs/rewritten/junio/next
-bud
-pick 1e9a108 git tag --contains: avoid stack overflow
-pick d574dd2 SVN.pm::parse_svn_date: allow timestamps with a single-digit hour
-pick ea5f4e2 compat/poll: sleep 1 millisecond to avoid busy wait
-pick cd4f75f MSVC: link dynamically to the CRT
-pick 7bf15ca Revert "submodules: fix ambiguous absolute paths under Windows"
-pick b5abaf8 wincred: add install target
-pick 841ca04 wincred: avoid overwriting configured variables
-pick c896851 git grep -O -i: if the pager is 'less', pass the '-I' option
-pick 6c536a9 Windows: Allow using UNC path for git repository
-mark refs/rewritten/junio/next
+# all in upstream

# Branch: refs/rewritten/junio/notyet
bud
@@ -20,60 +10,20 @@
mark refs/rewritten/junio/notyet

# Branch: unicode
+# all in upstream except gitk/git-gui
bud
-pick bdf69b2 Support Unicode console output on Windows
-pick 2fde3e0 Detect console streams more reliably on Windows
-pick 11a11d1 Warn if the Windows console font doesn't support Unicode
-pick 08e61ee Win32 dirent: remove unused dirent.d_ino member
-pick 166b5bf Win32 dirent: remove unused dirent.d_reclen member
-pick 8c44fd4 Win32 dirent: change FILENAME_MAX to MAX_PATH
-pick 17b9a46 Win32 dirent: clarify #include directives
-pick d5356f5 Win32 dirent: improve dirent implementation
-pick 70878a7 Win32: fix potential multi-threading issue
-pick 0b710a0 Win32: move main macro to a function
-pick f0a875b MinGW: disable CRT command line globbing
-pick 981aa53 Unicode console: fix font warning on Vista and Win7
-pick 93c1c5b Revert "Windows: teach getenv to do a case-sensitive search"
-pick 5654a6c Revert "mingw.c: move definition of mingw_getenv down"
-pick 08684f9 Enable color output in Windows cmd.exe
-pick 3abcb04 MSVC: fix winansi.c compile errors
-pick 3833abc Win32: Thread-safe windows console output
-pick 018c94a Win32: add Unicode conversion functions
-pick 9abb9b4 Win32: Unicode file name support (except dirent)
-pick ca865b5 Win32: Unicode file name support (dirent)
pick 6b25d49 Unicode file name support (gitk and git-gui)
-pick 63f092d Win32: Unicode arguments (outgoing)
-pick 7dc61f5 Win32: Unicode arguments (incoming)
-pick 45e28a4 Win32: sync Unicode console output and file system
-pick 7a3c448 Win32: Unicode environment (outgoing)
-pick 50cd615 Win32: Unicode environment (incoming)
-pick 10e1987 Win32: fix environment memory leaks
-pick 946ba29 Win32: unify environment case-sensitivity
-pick 75f1827 Let mingw_execve() return an int
-pick 45f09a0 Win32: simplify internal mingw_spawn* APIs
-pick fbe6bfc Win32: move environment functions
-pick 851e9bb Win32: unify environment function names
-pick c6f9aae Win32: factor out environment block creation
-pick e6e3f76 Win32: don't copy the environment twice when spawning child processes
-pick 10f5056 Win32: reduce environment array reallocations
-pick f0ad399 Win32: use low-level memory allocation during initialization
-pick 7f7675e Win32: keep the environment sorted
-pick 80e6f0f Win32: patch Windows environment on startup
-pick 94948aa Win32: fix detection of empty directories in is_dir_empty
-pick 67934f9 Win32: fix broken pipe detection
-pick cd0792a Win32: fix segfault in WriteConsoleW when debugging in gdb
mark unicode

# Branch: hide-dotgit
-rewind unicode # Win32: fix segfault in WriteConsoleW when debugging in gdb
+# no longer needs unicode
+bud
pick 0cdb44c core.hidedotfiles: hide '.git' dir by default
pick 94519d4 When initializing .git/, record the current setting of core.hideDotFiles
pick 4620246 mingw: add tests for the hidden attribute on the git directory
mark hide-dotgit

-rewind hide-dotgit # mingw: add tests for the hidden attribute on the git directory
-pick 8dfd8dc Add a Windows-specific fallback to getenv("HOME");
-mark 8dfd8dc
+# Branch 8dfd8dc dropped - HOME is set correctly by all callers (with exists check)

# Branch: am-submodules
bud
@@ -88,6 +38,8 @@
# Branch: deny-current-branch
bud
pick 528a03f Add a few more values for receive.denyCurrentBranch
+# DIE_ON_ERROR -> UPDATE_REFS_DIE_ON_ERR
+fixup e209843 fixup! Add a few more values for receive.denyCurrentBranch
pick 620d6e9 Let deny.currentBranch=updateInstead ignore submodules
mark deny-current-branch

@@ -121,10 +73,7 @@
mark jberezanski/wincred-sso-r2

# Branch: send-email
-bud
-pick 775b1e2 send-email: accept absolute path even on Windows
-pick 2d6fc09 send-email: handle Windows paths for display just like we do for processing
-mark send-email
+# all in upstream

# Branch: pull-rebase-interactive
bud
@@ -143,26 +92,24 @@
mark some-CR-fixes

# Branch: win-tests-fixes
+# some in upstream
bud
pick 230d511 work around misdetection of stdin attached to a tty
pick 79bf6bd Handle new t1501 test case properly with MinGW
-pick f7af204 MinGW: Skip test redirecting to fd 4
pick 6b1282f t3102: Windows filesystems may not use a literal asterisk in filenames.
pick 480cd59 t9350: point out that refs are not updated correctly
-pick 0c28f80 MinGW: disable legacy encoding tests
pick 0a8629c t1050: Fix invalid call to dd(1)
pick e2e62ce Work around a problem identified by BuildHive
pick 9f3afbc t0008: avoid absolute path on Windows as colon is used in the tests
-pick 566b373 t4210: skip command-line encoding tests on mingw
pick e4aba7b t800[12]: work around MSys limitation
-pick 0ece80f t9902: mingw-specific fix for gitfile link files
-pick 5b682f1 Disable t0110's high-bit test on Windows
-pick 1ad487c tests: do not pass iso8859-1 encoded parameter
+# from kasal/msysgit-2.0.0
+pick 4e64cd8 tests: turn off git-daemon tests if FIFOs are not available
mark win-tests-fixes

# Branch: remote-hg-prerequisites
bud
pick b1a3988 fast-export: do not refer to non-existing marks
+# fixed conflict: fastexport->argv[argc++] = "--"; -> argv_array_push(&fastexport->args, "--");
pick df8dfa3 transport-helper: add trailing --
pick e32da27 remote-helper: check helper status after import/export
pick 635328c Always auto-gc after calling a fast-import transport
@@ -174,7 +121,8 @@
mark http-msys-paths

# Branch: fix-externals
-rewind unicode # Win32: fix segfault in WriteConsoleW when debugging in gdb
+# no longer needs unicode
+bud
pick 5868bd1 Fixed wrong path delimiter in exe finding
pick 7ed7c52 Fix launching of externals from Unicode paths
pick 1b8301f Make non-.exe externals work again
@@ -183,6 +131,8 @@
# Branch: fix-is-exe
bud
pick a1d1b71 help: correct behavior for is_executable on Windows
+# has_extension -> ends_with
+fixup aced039 fixup! help: correct behavior for is_executable on Windows
mark fix-is-exe

# Branch: msysgit/tip4commit
@@ -201,29 +151,32 @@
mark kasal/tests-no-posix

# Branch: kblees/kb/fscache-v4-tentative-1.8.5
-rewind unicode # Win32: fix segfault in WriteConsoleW when debugging in gdb
+# rebase on hide-dotgit instead of merging in the middle
+rewind hide-dotgit # mingw: add tests for the hidden attribute on the git directory
pick 52fa661 Win32: make FILETIME conversion functions public
pick 1262469 Win32: dirent.c: Move opendir down
pick bab7936 Win32: Make the dirent implementation pluggable
pick 5e96acf Win32: make the lstat implementation pluggable
-merge refs/rewritten/8dfd8dc -C 0ac3c91 # Merge 'home' into HEAD
pick e462944 add infrastructure for read-only file system level caches
pick 1823b88 Win32: add a cache below mingw's lstat and dirent implementations
+# from maint-1.9 PR #205 kblees/kb/fscache-load-directories-once
+pick c8a51b4 fscache: load directories only once
mark kblees/kb/fscache-v4-tentative-1.8.5

# Branch: kblees/kb/long-paths-v2
-rewind kblees/kb/fscache-v4-tentative-1.8.5 # Win32: add a cache below mingw's lstat and dirent implementations
+rewind kblees/kb/fscache-v4-tentative-1.8.5 # fscache: load directories only once
pick 393fd17 Add a test demonstrating a problem with long submodule paths
pick a0e78a5 Win32: support long paths
+# from maint-1.9 PR #212 kblees/kb/fix-checkout-with-long-directories
+# (the other patches of that branch are in upstream)
+pick bb4df80 Win32: fix 'lstat("dir/")' with long paths
mark kblees/kb/long-paths-v2

-# Branch: kasal/msysgit-2.0.0
+# Branch: kb/msysgit-2.1.0
bud
-merge refs/rewritten/refs/rewritten/junio/next -C 674dd13 # Merge 'refs/rewritten/junio/next' into HEAD
merge refs/rewritten/refs/rewritten/junio/notyet -C 6ac4a73 # Merge 'refs/rewritten/junio/notyet' into HEAD
merge refs/rewritten/unicode -C dc63934 # Merge 'unicode' into HEAD
merge refs/rewritten/hide-dotgit -C 9e8817c # Merge 'hide-dotgit' into HEAD
-merge refs/rewritten/8dfd8dc -C 2e69421 # Merge 'home' into HEAD
merge refs/rewritten/am-submodules -C 82c8da7 # Merge 'am-submodules' into HEAD
merge refs/rewritten/criss-cross-merge -C fb0f5d1 # Merge 'criss-cross-merge' into HEAD
merge refs/rewritten/deny-current-branch -C 32143d9 # Merge 'deny-current-branch' into HEAD
@@ -231,7 +184,6 @@
merge refs/rewritten/gitk -C 83d825b # Merge 'gitk' into HEAD
merge refs/rewritten/gitweb-syntax -C 146e000 # Merge 'gitweb-syntax' into HEAD
merge refs/rewritten/jberezanski/wincred-sso-r2 -C 9dd0c91 # Merge 'jberezanski/wincred-sso-r2' into HEAD
-merge refs/rewritten/send-email -C cd247ad # Merge 'send-email' into HEAD
merge refs/rewritten/pull-rebase-interactive -C 8746a0e # Merge 'pull-rebase-interactive' into HEAD
merge refs/rewritten/some-CR-fixes -C 5fc80b7 # Merge branch 'some-CR-fixes'
merge refs/rewritten/win-tests-fixes -C d9608ec # Merge 'win-tests-fixes' into HEAD
@@ -244,38 +196,15 @@
merge refs/rewritten/kasal/tests-no-posix -C 0346eed # Merge pull request #181 from kasal/tests-no-posix
merge refs/rewritten/kblees/kb/fscache-v4-tentative-1.8.5 -C 44806b0 # Merge remote-tracking branch 'kblees/kb/fscache-v4-tentative-1.8.5' into thicket-1.8.5.2
merge refs/rewritten/kblees/kb/long-paths-v2 -C 2a37bdc # Merge pull request #122 from kblees/kb/long-paths-v2
-pick 4e64cd8 tests: turn off git-daemon tests if FIFOs are not available
-mark kasal/msysgit-2.0.0
+mark kb/msysgit-2.1.0

# Branch: frogonwheels/mrg/symlink-v6
-bud
-merge refs/rewritten/kasal/msysgit-2.0.0 -C 7e872d2 # Merge pull request #196 from kasal/msysgit-2.0.0
-mark 7e872d2
+# dropped because it doesn't work

-pick 82cc187 MinGW: Add symlink support for NTFS on windows
-pick 75b8a67 MinGW: Allow passing the symlink target type from index information.
-pick eabcbcc mingw: Create directory/file symlink from information available
-pick 4d733b9 test: Work around lack of windows native symlink support in current msys
-pick dda0d3d test: Don't have dangling symlinks in tests (for msys)
-pick 4a83680 test: Factor abspath_of_dir for testing 'absolute paths'
-pick a662ef7 test: Implement mingw abspath_of_dir
-pick 2fa9eca test: Factor out 'check_symlink' for stash tests
-pick 3259ff9 test: Override 'check_symlink' to work with incomplete mingw
-pick 1919ecf contrib: make git-new-workdir work with windows symlinks.
-pick 0a77793 test: Differentiate ability for gnu utils to handle symlinks from git
-pick 1930ec6 test: Fixup 3900 i38n quoting
-pick db19ecf test: Introduce binary compare function
-pick 3e5df5d test: Fix remote failure test to use correct env variable
-mark frogonwheels/mrg/symlink-v6
-
-rewind 7e872d2 # Merge pull request #196 from kasal/msysgit-2.0.0
-merge refs/rewritten/frogonwheels/mrg/symlink-v6 -C 840d1f9 # Merge pull request #172 from frogonwheels/mrg/symlink-v6
-pick d49a708 Win32: fix checkout problem with directories exceeding MAX_PATH
-fixup dc371d1 Win32: fix checkout problem with directories exceeding MAX_PATH
-fixup d147b44 Win32: fix checkout problem with directories exceeding MAX_PATH
-pick b31f626 Use a strbuf in symlink
+# "Win32: fix checkout problem with directories exceeding MAX_PATH"
+# has been replaced with upstream fixes and "Win32: fix 'lstat("dir/")' with long paths" above

-cleanup refs/rewritten/junio/next refs/rewritten/junio/notyet unicode hide-dotgit 8dfd8dc am-submodules criss-cross-merge deny-current-branch git-gui gitk gitweb-syntax jberezanski/wincred-sso-r2 send-email pull-rebase-interactive some-CR-fixes win-tests-fixes remote-hg-prerequisites http-msys-paths fix-externals fix-is-exe msysgit/tip4commit t-b/sideband-bug kasal/tests-no-posix kblees/kb/fscache-v4-tentative-1.8.5 kblees/kb/long-paths-v2 kasal/msysgit-2.0.0 frogonwheels/mrg/symlink-v6 7e872d2
+cleanup refs/rewritten/junio/notyet unicode hide-dotgit am-submodules criss-cross-merge deny-current-branch git-gui gitk gitweb-syntax jberezanski/wincred-sso-r2 pull-rebase-interactive some-CR-fixes win-tests-fixes remote-hg-prerequisites http-msys-paths fix-externals fix-is-exe msysgit/tip4commit t-b/sideband-bug kasal/tests-no-posix kblees/kb/fscache-v4-tentative-1.8.5 kblees/kb/long-paths-v2 kb/msysgit-2.1.0

# Rebase b31f626..b31f626 onto 6c4ab27
#
```