Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Weekly Digest (18 November, 2018 - 25 November, 2018) #1950

Closed
weekly-digest bot opened this issue Nov 25, 2018 · 0 comments
Closed

Weekly Digest (18 November, 2018 - 25 November, 2018) #1950

weekly-digest bot opened this issue Nov 25, 2018 · 0 comments

Comments

@weekly-digest
Copy link

weekly-digest bot commented Nov 25, 2018

Here's the Weekly Digest for git-for-windows/git:

ISSUES

This week, 27 issues were created. Of these, 22 issues have been closed and 5 issues are still open.

OPEN ISSUES

💚 #1944 Cannot init a git repository because I do not have access to one folder in the specified path: fatal: unable to get current working directory: No such file or directory, by rvignolo
💚 #1940 fscache: 3 tests in t7063-status-untracked-cache.sh fail with fscache enabled, by benpeart
💚 #1934 fscache: make fscache_enable() thread safe, by benpeart
💚 #1912 Feature Request: Supported way to use Git for Windows with full MSYS2 features, by MikeBeaton
💚 #1666 mingw: Fix unlink for open files, by orgads

CLOSED ISSUES

❤️ #1949 can not fetch from git://, by eworm-de
❤️ #1948 Where does installer store default core.autocrlf value?, by mloskot
❤️ #1947 Installer 2.19.2 does not offer experimental options, by mloskot
❤️ #1946 Windows git-worktree cannot read the /c/path syntax (a worktree created by cygwin git), by lefth
❤️ #1945 An idea to prevent CMD from picking up any git.exe in the current directory, by gdh1995
❤️ #1943 add release notes to published RC releases , by shiftkey
❤️ #1942 Git Bash 2.20.0-rc0 opens two consoles, by mloskot
❤️ #1941 sources for xxd, by antmak
❤️ #1939 [DO NOT MERGE YET] Rebase to v2.20.0-rc0, by dscho
❤️ #1938 Clean up before 2.20.0 rc0, by dscho
❤️ #1937 fscache: teach fscache to use NtQueryDirectoryFile, by benpeart
❤️ #1936 Update ready-for-upstream, by dscho
❤️ #1930 Spurious Carriage Return breaks diff tool, by stravant
❤️ #1905 Git failed when build on /std:c++latest + MSVC on windows, by QuellaZhang
❤️ #1899 git not working after setting http.sslBackend = schannel, by tianpomin
❤️ #1895 Git clone of curl repository stuck inside Windows container, by mback2k
❤️ #1894 [Good First Contribution] remove pre-XP fall-back for IPv6 functions, by dscho
❤️ #1891 [Outreachy] New test in t3903-stash.sh : execute git stash without author, by slavicaDj
❤️ #1888 Take 2: ci(mingw): speed up, by disabling the chain lint, by dscho
❤️ #1691 Please upgrade to OpenSSL to 1.1.0, by skid9000
❤️ #1416 File is always marked as modified in git status, by geotavros
❤️ #1074 Install fails when previous installation drive is missing, by kc22033

LIKED ISSUE

The issue most liked this week has been:
👍 #1939 [DO NOT MERGE YET] Rebase to v2.20.0-rc0, by dscho
It received 👍 x1, 😄 x0, 🎉 x0 and ❤️ x0.

NOISY ISSUE

The issue most discussed this week has been:
🔈 #1666 mingw: Fix unlink for open files, by orgads
It received 25 comments.

PULL REQUESTS

This week, 4 pull requests were proposed. Of these, 0 pull requests have been merged and 0 are still open.

CONTRIBUTORS

This week, 19 users have contributed to this repository.
They are eworm-de, mloskot, lefth, gdh1995, rvignolo, shiftkey, antmak, benpeart, dscho, stravant, MikeBeaton, QuellaZhang, tianpomin, mback2k, slavicaDj, skid9000, orgads, geotavros, and kc22033.

STARGAZERS

This week, no user has starred this repository.

COMMITS

This week, there have been 30 commits in the repository.
These are:
🛠️ [mingw: fix CPU reporting in git version --build-options

We cannot rely on uname -m in Git for Windows' SDK to tell us what
architecture we are compiling for, as we can compile both 32-bit and
64-bit git.exe from a 64-bit SDK, but the uname -m in that SDK will
always report x86_64.

So let's go back to our original design. And make it explicitly
Windows-specific.

Signed-off-by: Johannes Schindelin [email protected]](c6ce1b9) by dscho
🛠️ [fixup! mingw: remove obsolete IPv6-related code

We still need to ensure that sockets are initialized when calling
getaddrinfo(), otherwise git:// URLs cannot be accessed.

This fixes #1949.

Signed-off-by: Johannes Schindelin [email protected]](eca28c6) by dscho
🛠️ [fixup! contrib/buildsystems: add a backend for modern Visual Studio versions

The /Gm flag was deprecated, so let's not use it anymore (nor the
corresponding <MinimalRebuild> tag in the .vcxproj files).

This fixes #1905.

Signed-off-by: Johannes Schindelin [email protected]](49587fd) by dscho
🛠️ [Merge pull request #1900 from tanushree27/remove-ipv6-fallback

[Outreachy] Removed ipv6 fallback](26dcaa1) by dscho
🛠️ [Merge pull request #1915 from dscho/open-in-gdb

Add a helper function to start GDB that was already attached to the current process](140e559) by dscho
🛠️ [mingw: remove obsolete IPv6-related code

To support IPv6, Git provided fall back functions for Windows versions that
did not support IPv6. However, as Git dropped support for Windows XP and
prior, those functions are not needed anymore.

Removed those fallbacks by reverting commit[1] and using the functions
directly (without 'ipv6_' prefix).

[1] fe3b2b7.

Signed-off-by: tanushree27 [email protected]](c495a46) by tanushree27
🛠️ [Merge remote-tracking branch 'benpeart/fscache-per-thread-gfw'

This brings substantial wins in performance because the FSCache is now
per-thread, being merged to the primary thread only at the end, so we do
not have to lock (except while merging).

Signed-off-by: Johannes Schindelin [email protected]](e1dfaac) by dscho
🛠️ [mingw: add a helper function to attach GDB to the current process

When debugging Git, the criss-cross spawning of processes can make
things quite a bit difficult, especially when a Unix shell script is
thrown in the mix that calls a git.exe that then segfaults.

To help debugging such things, we introduce the open_in_gdb() function
which can be called at a code location where the segfault happens (or as
close as one can get); This will open a new MinTTY window with a GDB
that already attached to the current process.

Inspired by Derrick Stolee.

Signed-off-by: Johannes Schindelin [email protected]](7c7e302) by dscho
🛠️ [Merge pull request #1910 from benpeart/fscache_statistics-gfw

fscache: add fscache hit statistics](c2e8fb3) by dscho
🛠️ [Merge pull request #1914 from benpeart/free-fscache-after-add-gfw

At the end of the add command, disable and free the fscache](e70ae99) by dscho
🛠️ [Merge pull request #1911 from benpeart/git_test_fscache-gfw

fscache: add GIT_TEST_FSCACHE support](5dd2e38) by dscho
🛠️ [Merge pull request #1909 from benpeart/free-fscache-after-status-gfw

status: disable and free fscache at the end of the status command](4a2faf8) by dscho
🛠️ [fscache: teach fscache to use mempool

Now that the fscache is single threaded, take advantage of the mem_pool as
the allocator to significantly reduce the cost of allocations and frees.

With the reduced cost of free, in future patches, we can start freeing the
fscache at the end of commands instead of just leaking it.

Signed-off-by: Ben Peart [email protected]](300d90d) by benpeart
🛠️ [Merge pull request #1908 from benpeart/FindFirstFileEx-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name](abb284d) by dscho
🛠️ [fscache: update fscache to be thread specific instead of global

The threading model for fscache has been to have a single, global cache.
This puts requirements on it to be thread safe so that callers like
preload-index can call it from multiple threads. This was implemented
with a single mutex and completion events which introduces contention
between the calling threads.

Simplify the threading model by making fscache thread specific. This allows
us to remove the global mutex and synchronization events entirely and instead
associate a fscache with every thread that requests one. This works well with
the current multi-threading which divides the cache entries into blocks with
a separate thread processing each block.

At the end of each worker thread, if there is a fscache on the primary
thread, merge the cached results from the worker into the primary thread
cache. This enables us to reuse the cache later especially when scanning for
untracked files.

In testing, this reduced the time spent in preload_index() by about 25% and
also reduced the CPU utilization significantly. On a repo with ~200K files,
it reduced overall status times by ~12%.

Signed-off-by: Ben Peart [email protected]](950bfe2) by benpeart
🛠️ [fscache: fscache takes an initial size

Update enable_fscache() to take an optional initial size parameter which is
used to initialize the hashmap so that it can avoid having to rehash as
additional entries are added.

Add a separate disable_fscache() macro to make the code clearer and easier
to read.

Signed-off-by: Ben Peart [email protected]](fdb28f0) by benpeart
🛠️ [mem_pool: add GIT_TRACE_MEMPOOL support

Add tracing around initializing and discarding mempools. In discard report
on the amount of memory unused in the current block to help tune setting
the initial_size.

Signed-off-by: Ben Peart [email protected]](824ea00) by benpeart
🛠️ [fscache: add fscache hit statistics

Track fscache hits and misses for lstat and opendir requests. Reporting of
statistics is done when the cache is disabled for the last time and freed
and is only reported if GIT_TRACE_FSCACHE is set.

Sample output is:

11:33:11.836428 compat/win32/fscache.c:433 fscache: lstat 3775, opendir 263, total requests/misses 4052/269

Signed-off-by: Ben Peart [email protected]](a74290f) by benpeart
🛠️ [At the end of the add command, disable and free the fscache so that we don't
leak the memory and so that we can dump the fscache statistics.

Signed-off-by: Ben Peart [email protected]](4186785) by benpeart
🛠️ [fscache: add GIT_TEST_FSCACHE support

Add support to fscache to enable running the entire test suite with the
fscache enabled.

Signed-off-by: Ben Peart [email protected]](d3cda73) by benpeart
🛠️ [status: disable and free fscache at the end of the status command

At the end of the status command, disable and free the fscache so that we
don't leak the memory and so that we can dump the fscache statistics.

Signed-off-by: Ben Peart [email protected]](ef65290) by benpeart
🛠️ [fscache: use FindFirstFileExW to avoid retrieving the short name

Use FindFirstFileExW with FindExInfoBasic to avoid forcing NTFS to look up
the short name. Also switch to a larger (64K vs 4K) buffer using
FIND_FIRST_EX_LARGE_FETCH to minimize round trips to the kernel.

In a repo with ~200K files, this drops warm cache status times from 3.19
seconds to 2.67 seconds for a 16% savings.

Signed-off-by: Ben Peart [email protected]](807bced) by benpeart
🛠️ [Merge pull request #1859 from dscho/funny-cased-cwd

Fix t0001 when the current working directory differs in case from the canonical form](e323264) by dscho
🛠️ [Merge 'builtin-stash-rebase-v3'

To avoid having to play tricks as in earlier rounds, we bit the sour
apple and rebased the builtin-stash-rebase-v3 branch thicket onto the
commit starting Git for Windows' merging-rebase.

(The merging-rebase pulls in the previous branch thicket via a "fake
merge", i.e. a merge commit that does not actually apply any changes
from the merged commit history. This has the unfortunate side effect of
confusing merge into thinking that any branch that was merged into an
earlier round does not need to be merged again.)

Signed-off-by: Johannes Schindelin [email protected]](e3afc4e) by jamill
🛠️ [Merge 'readme' into HEAD

Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin [email protected]](01d9499) by dscho
🛠️ [Merge branch 'fix-terminal-prompt'

This fixes the issue identified in

https://github.com/git-for-windows/git/issues/1498

where Git would not fall back to reading credentials from a Win32
Console when the credentials could not be read from the terminal via the
Bash hack (that is necessary to support running in a MinTTY).

Tested in a Powershell window.

Signed-off-by: Johannes Schindelin [email protected]](811a963) by dscho
🛠️ [Merge branch 'busybox-w32'

This topic branch brings slightly experimental changes supporting Git
for Windows to use BusyBox-w32 to execute its shell scripts as well as
its test suite.

The test suite can be run by installing the test artifacts into a MinGit
that has busybox.exe (and using Git for Windows' SDK's Perl for now, as
the test suite requires Perl even when NO_PERL is set, go figure) by
using the install-mingit-test-artifacts Makefile target with the
DESTDIR variable pointing to the top-level directory of the MinGit
installation.

To facilitate running the test suite (without having make available,
as make.exe is not part of MinGit), this branch brings an experimental
patch to the test-run-command helper to run Git's test suite. It is
still very experimental, though: in this developer's tests it seemed
that the poll() emulation required for run_parallel_processes() to
work sometimes hiccups on Windows, causing infinite "hangs". It is also
possible that BusyBox itself has problems writing to the pipes opened by
test-run-command (and merging this branch will help investigate
further). Caveat emptor.

Signed-off-by: Johannes Schindelin [email protected]](8195f9a) by dscho
🛠️ [Merge branch 'inherit-only-stdhandles'

When spawning child processes, we do want them to inherit the standard
handles so that we can talk to them. We do not want them to inherit
any other handle, as that would hold a lock to the respective files
(preventing them from being renamed, modified or deleted), and the child
process would not know how to access that handle anyway.

Happily, there is an API to make that happen. It is supported in Windows
Vista and later, which is exactly what we promise to support in Git for
Windows for the time being.

This also means that we lift, at long last, the target Windows version
from Windows XP to Windows Vista.

Signed-off-by: Johannes Schindelin [email protected]](b36526f) by dscho
🛠️ [Merge pull request #1170 from dscho/mingw-kill-process

Handle Ctrl+C in Git Bash nicely

Signed-off-by: Johannes Schindelin [email protected]](6420432) by dscho
🛠️ [Merge branch 'fsync-object-files-always'

Signed-off-by: Johannes Schindelin [email protected]](b70f81d) by dscho

RELEASES

This week, 3 releases were published. These are:
🚀 v2.20.0-rc1.windows.1 v2.20.0-rc1.windows.1
Pre-release: Git v2.20.0-rc1.windows.1

Filename SHA-256
Git-2.20.0.rc1.windows.1-32-bit.exe 62ffb64df00988bb0e136345468ea648ddfd3821fcabd8307056a68ff8a69061
Git-2.20.0.rc1.windows.1-64-bit.exe 2ba14aacd0b2103c071aa7b2927a343ce95b111017ee94c0e57696a4b48e2459
MinGit-2.20.0.rc1.windows.1-32-bit.zip d816c1bea378f1fa786bfc79042f98a47e98ccc615561c95eae667a2c8c26abc
MinGit-2.20.0.rc1.windows.1-64-bit.zip 8b1e52ffec2a7c73cb6d254282b559118f64f011c6e0c4659f5b87fa42498eef
MinGit-2.20.0.rc1.windows.1-BusyBox-32-bit.zip 6da74f1d88b1627d688a7380aa7228197ed4199a6b8ffe2e57a4cc506d039a0c
MinGit-2.20.0.rc1.windows.1-BusyBox-64-bit.zip b01e86dbf26df892c06f6d5ec5e5ccf72283b6ce53a867f35a0bb0fc2bf56b29
mingw-w64-git-2.20.0.rc1.windows.1-1.src.tar.gz bae236d54451bd711bf2efc82336ddcae975b2de1ac973270ed11bb3d40cb66d
mingw-w64-i686-git-2.20.0.rc1.windows.1-1-any.pkg.tar.xz 586385f0f43e0f001aa9d049f344adc1a8f81e41f1cef32437b25a9436fad36c
mingw-w64-i686-git-doc-html-2.20.0.rc1.windows.1-1-any.pkg.tar.xz a77f678a1be3d806215759912e3039441808b85c405dd3e32ea69aee88abb495
mingw-w64-i686-git-pdb-2.20.0.rc1.windows.1-1-any.pkg.tar.xz 4ee75e96a6629801cce19cbe84f225e0237dade5fc0a31ac8dcf121884b200da
mingw-w64-i686-git-test-artifacts-2.20.0.rc1.windows.1-1-any.pkg.tar.xz 39f76ba10de31bf105e28c15e64e27bd34f40d7e9d84944f421f2c8c17e9f8f4
mingw-w64-x86_64-git-2.20.0.rc1.windows.1-1-any.pkg.tar.xz 5534a742de98b1e06a37486203f0a0699784046db7cbccbfb858378235ed0f86
mingw-w64-x86_64-git-doc-html-2.20.0.rc1.windows.1-1-any.pkg.tar.xz c8727ea177de5554a7070f0ba6934339e3c790ed822d35a465144c57b9e86b78
mingw-w64-x86_64-git-pdb-2.20.0.rc1.windows.1-1-any.pkg.tar.xz 11b169810a1f79d7071af3c406856b500c1f0171e084d78d29792c891850eceb
mingw-w64-x86_64-git-test-artifacts-2.20.0.rc1.windows.1-1-any.pkg.tar.xz 6bc7bc2ff91b5da2557863732017d38208e5bb3aa8c24f65b2b9321eaf1ba7ed
PortableGit-2.20.0.rc1.windows.1-32-bit.7z.exe b74e36b680e83cdfcf15e093df9b3f31dd8cd3bd0219a7071b4320ed855fad9d
PortableGit-2.20.0.rc1.windows.1-64-bit.7z.exe 5f51aaee29b389d9b2529c09ae691a91b85b0b9c37b5cfb385913f8707495b7b

🚀 v2.19.2.windows.1 Git for Windows 2.19.2
Changes since Git for Windows v2.19.1 (Oct 5th 2018)

Please note: Git CMD is deprecated as of this Git for Windows version. The default is to have git.exe in the PATH anyway, so there is no noticeable difference between CMD and Git CMD. It is impossible to turn off CMD's behavior where it picks up any git.exe in the current directory, so let's discourage the use of Git CMD. Users who dislike Git Bash should switch to Powershell instead.

New Features

Bug Fixes

Filename SHA-256
Git-2.19.2-64-bit.exe 07954bfdf6e83b0be666d5199ef29edf9ff1835c68eca513ecfac9b2b946786c
Git-2.19.2-32-bit.exe 91f9aaf29bfca648c1b97255e4af6b9c6c3fe1618ed3446d0327eb63fe1a35fe
PortableGit-2.19.2-64-bit.7z.exe 49b2b8bfb84088b22d7618ca4395a53846d5c39a7814554a61b44d753606df4e
PortableGit-2.19.2-32-bit.7z.exe 78ba21de2dddc32030a1f0dc24b3f9f45dd7d08915e84592018157d83bd6e964
MinGit-2.19.2-64-bit.zip 9d260fd4b9cf279491a1cc6762c2f08f7e8ca6c1d6492300cacbc800fe384a0f
MinGit-2.19.2-32-bit.zip a85f4343628e7591a60ced4d54df176dba1c599b9097d1dc86597fd00bc3a5b3
MinGit-2.19.2-busybox-64-bit.zip 25ee4fe5bafd533743bfe743ab2ab4a61ce4d10b61df30cd87b742acc53047e8
MinGit-2.19.2-busybox-32-bit.zip 161deb5f6b80e35fdac7013394f799acf09667d0f9b781080a51d0a47c4a8f58
Git-2.19.2-64-bit.tar.bz2 f8ea2031fde26590120f5c8a8d4e146ad02e1f0bb4d3964edc320477ef4e46ec
Git-2.19.2-32-bit.tar.bz2 4acd569f01a88b99ca3acd0b772498371e0f3735edee401b5983304aae32e8b6
pdbs-for-git-64-bit-2.19.2.1.26dcaa1b6b-1.zip c6920d366e75fce287476a86bb16629b7a8d8e3e8d03570e1d0014cd2078eb0f
pdbs-for-git-32-bit-2.19.2.1.26dcaa1b6b-1.zip 289c8d3c90f661492cd1dae09bd949c0cb9a74e3c44f9072a5959ddc0d7463ba
🚀 v2.20.0-rc0.windows.1 v2.20.0-rc0.windows.1
null

That's all for this week, please watch 👀 and star ⭐ git-for-windows/git to receive next weekly updates. 😃

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant