Commit Graph

65870 Commits

Author SHA1 Message Date
Johannes Schindelin
29bcd1a3ff Merge branch 'interactive-rebase'
This series of branches introduces the git-rebase--helper, a builtin
helping to accelerate the interactive rebase dramatically.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:11:01 +01:00
Johannes Schindelin
718dae2676 Merge branch 'unhidden-git'
It has been reported that core.hideDotFiles=false stopped working...
This topic branch fixes it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:11:00 +01:00
Johannes Schindelin
7ba775a22e Merge branch 'status-no-lock-index'
This branch allows third-party tools to call `git status
--no-lock-index` to avoid lock contention with the interactive Git usage
of the actual human user.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:59 +01:00
Johannes Schindelin
c9b76ac281 Merge pull request #797 from glhez/master
`git bundle create <bundle>` leaks handle the revlist is empty.
2016-11-24 22:10:58 +01:00
Johannes Schindelin
707f86684d Merge 'release-gc-repack' into HEAD 2016-11-24 22:10:56 +01:00
Johannes Schindelin
1be6fd2c5a Merge branch 'spawn-with-spaces'
This change lets us spawn .bat scripts whose paths contain spaces.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:55 +01:00
Johannes Schindelin
ea292b51b8 mingw: support spawning programs containing spaces in their names
The CreateProcessW() function does not really support spaces in its
first argument, lpApplicationName. But it supports passing NULL as
lpApplicationName, which makes it figure out the application from the
(possibly quoted) first argument of lpCommandLine.

Let's use that trick (if we are certain that the first argument matches
the executable's path) to support launching programs whose path contains
spaces.

This fixes https://github.com/git-for-windows/git/issue/692

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:52 +01:00
Johannes Schindelin
bfe52cfdd7 Merge pull request #677 from yaras/fix-git-675
Fixed masking username with asterisks when reading credentials
2016-11-24 22:10:51 +01:00
Johannes Schindelin
763e325fe8 Merge 'git-gui-add-2nd-line' into HEAD 2016-11-24 22:10:50 +01:00
Johannes Schindelin
70ff6f3b23 Merge branch 'clean-long-paths'
This addresses https://github.com/git-for-windows/git/issues/521

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:48 +01:00
Johannes Schindelin
c2213ca59b Merge 'aslr' into HEAD
Address Space Layout Randomization (ASLR) allows executables' memory
layout to change at random between runs, and therefore offers a quite
decent protection against many attacks.

We enable ASLR because MSYS2's C compiler offers support for ASLR, and
whatever performance impact it has is neglible, according to
https://insights.sei.cmu.edu/cert/2014/02/differences-between-aslr-on-windows-and-linux.html

This merges the part of https://github.com/git-for-windows/git/pull/612
that does not break Git ;-)

This fixes https://github.com/git-for-windows/git/issues/608

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:47 +01:00
Johannes Schindelin
60b60cfd75 Merge 'unc-alternates' into HEAD 2016-11-24 22:10:46 +01:00
Johannes Schindelin
954b2ba8ef Merge pull request #552 from duncansmart/fix-vcproj-gen
Fix Visual Studio .sln/.vcproj generation.
2016-11-24 22:10:45 +01:00
Johannes Schindelin
d42571973b Merge pull request #773 from jeffhostetler/vs2015
Build with VS2015
2016-11-24 22:10:44 +01:00
Johannes Schindelin
b6b58ce1d1 Merge pull request #305 from dscho/msysgit_issues_182
Allow `add -p` and `add -i` with a large number of files
2016-11-24 22:10:42 +01:00
Johannes Schindelin
edddff8a15 Merge branch 'program-data-config'
This branch introduces support for reading the "Windows-wide" Git
configuration from `%PROGRAMDATA%\Git\config`. As these settings are
intended to be shared between *all* Git-related software, that config
file takes an even lower precedence than `$(prefix)/etc/gitconfig`.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:41 +01:00
Johannes Schindelin
9908a38f3a Merge pull request #159 from dscho/vagrant
Add Vagrant support (easy Linux VM setup)
2016-11-24 22:10:40 +01:00
Johannes Schindelin
b4458812f1 Merge 'mingw-getcwd' into HEAD 2016-11-24 22:10:39 +01:00
Johannes Schindelin
fa39c208c7 Merge pull request #443 from kblees/kb/nanosecond-file-times-v2.5.3
nanosecond file times for v2.5.3
2016-11-24 22:10:37 +01:00
Johannes Schindelin
d98ee5d10d Merge pull request #156 from kblees/kb/symlinks
Symlink support
2016-11-24 22:10:36 +01:00
Johannes Schindelin
e82cdd0206 Merge 'sideband-bug' into HEAD
This works around the push-over-git-protocol issues pointed out in
https://github.com/msysgit/git/issues/101.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:35 +01:00
Johannes Schindelin
92c84f109d Merge 'fix-is-exe' into HEAD 2016-11-24 22:10:34 +01:00
Johannes Schindelin
7a54e15c85 Merge 'fix-externals' into HEAD 2016-11-24 22:10:33 +01:00
Johannes Schindelin
f3c2525785 Merge 'remote-hg-prerequisites' into HEAD
These fixes were necessary for Sverre Rabbelier's remote-hg to work,
but for some magic reason they are not necessary for the current
remote-hg. Makes you wonder how that one gets away with it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:31 +01:00
Johannes Schindelin
bd64a95022 Merge 'win-tests-fixes' into HEAD 2016-11-24 22:10:30 +01:00
Johannes Schindelin
65ca3b36d6 Merge 'msys2' into HEAD
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:29 +01:00
Johannes Schindelin
b9b82386c0 Merge 'resource-version' into HEAD 2016-11-24 22:10:28 +01:00
Johannes Schindelin
77295001ba Merge 'jberezanski/wincred-sso-r2' into HEAD 2016-11-24 22:10:27 +01:00
Johannes Schindelin
e16e0643b7 Merge 'gitk' into HEAD 2016-11-24 22:10:25 +01:00
Johannes Schindelin
902ddd22df Merge branch 'msys2-git-gui'
This topic branch addresses the bug where Git for Windows 2.x' Git GUI
failed to generate a working shortcut via Repository>Create Desktop
Shortcut.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:24 +01:00
Johannes Schindelin
0e0ef7fb2d Merge 'git-gui' into HEAD 2016-11-24 22:10:23 +01:00
Johannes Schindelin
65322b0647 Merge 'readme' into HEAD
Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:22 +01:00
Johannes Schindelin
d191a642ab compat/vcbuild: possibly reuse Git for Windows' SDK's NuGet
In Git for Windows' SDK, there is already a script to package Git for
Windows as a NuGet package, downloading nuget.exe if needed.

Let's just fall back to using that executable (if it is there) if
nuget.exe was not found in the PATH.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:21 +01:00
Jeff Hostetler
30c5bbd78c vs2015: remove todo list item from README_vs2015.txt
Remove todo list item for vs2015 build notes regarding
the third party DLLs.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:21 +01:00
Jeff Hostetler
0d617c9d63 vs2015: teach 'make clean' to delete PDBs
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
22728d91e1 vs2015: turn on optimize-for-speed in release build
Set -O2 (maximize speed) rather than -Os (favor small code)
for non-debug builds.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00
Johannes Schindelin
5441686327 t7800: fix quoting
When passing a command-line to call an external diff command to the
difftool, we must be prepared for paths containing special characters,
e.g. backslashes in the temporary directory's path on Windows.

This has been caught by running the test suite with an MSVC-built Git:
in contrast to the MINGW one, it does not rewrite `$TMP` to use forward
slashes instead of backslashes.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:20 +01:00
Johannes Schindelin
196ee7ceb8 msvc: work around iconv() not setting errno
When compiling with MSVC, we rely on NuPkgs to provide the binaries of
dependencies such as libiconv. The libiconv 1.14.0.11 package available
from https://www.nuget.org/packages/libiconv seems to have a bug where
it does not set errno (when we would expect it to be E2BIG).

Let's simulate the error condition by taking less than 16 bytes
remaining in the out buffer as an indicator that we ran out of space.
While 16 might seem a bit excessive (when converting from, say, any
encoding to UTF-8, 8 bytes should be fine), it is designed to be a safe
margin.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:20 +01:00
Johannes Schindelin
088f98c8bc msvc: use libiconv
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
2436223945 msvc: use OpenSSL's SHA-1 routines
Just like 1e2ce1d (sha1: Use OpenSSL SHA1 routines on MINGW, 2016-10-12),
we now use OpenSSL's SHA-1 routines instead of Git's own because OpenSSL
is substantially faster as of version 1.0.2: it now uses hardware
acceleration on Intel processors much more effectively.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:20 +01:00
Johannes Schindelin
3a96e5e4c0 msvc: respect the quiet-by-default output
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
2ddc2b9b0a msvc: release mode PDBs and library DLLs
Install required third-party DLLs next to EXEs.

Build and install release mode PDBs for git
executables allowing detailed stack traces
in the event of crash.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
95631c510e msvc: fix setvbuf() call
The VS2015 version of the CRT asserts when you
pass a zero buffer length and request line buffering.
This fix sets it to the default BUFSIZ.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
9c17b62aab cache-tree.c: avoid reusing the DEBUG constant
In MSVC, the DEBUG constant is set automatically whenever compiling with
debug information.

This is clearly not what was intended in cache-tree.c, so let's use a less
ambiguous constant there.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
aaef21f01c msvc: fix isatty()
The hack that works in MINGW does not work with MSVC's CRT. Add MSVC
versions of isatty() and swap_osfhnd().

The MINGW versions attempt to replace the underlying OS HANDLE in an
existing file descriptor (fd) by writing to some undocumented fields in
the "ioinfo" structures inside the CRT. These structures changed size
and shape with the new UCRT in VS2015. The new MSVC versions of these
routines work without touching private fields. In theory, we should be
able to replace the ming versions with
this one.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
aaf088e63e msvc: define ftello()
It is just called different in MSVC's headers.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
3c53df5b3b msvc: do not re-declare the timespec struct
VS2015's headers already declare that struct.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
c13deaed07 msvc: provide a main() wrapper similar to mingw_main()
The MINGW version of the main() wrapper gets away with declaring symbols
that were intentionally not exported. However, some of these symbols do
not actually exist in MSVC's UCRT.

So let's add an MSVC version of the main() wrapper that uses wmain() and
imports the UNICODE argv and environment. While at it, we pass our UTF-8
version of ARGV to the real main -- rather than overwriting __argv as is
done in the MINGW Version.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
eb31aa00d0 msvc: do not pretend to support all signals
This special-cases various signals that are not supported on Windows,
such as SIGPIPE. These cause the UCRT to throw asserts (at least in
debug mode).

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00
Jeff Hostetler
452cfeab54 msvc: mark a variable as non-const
VS2015 complains when using a const pointer in memcpy()/free().

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-24 22:10:20 +01:00