Commit Graph

94191 Commits

Author SHA1 Message Date
Johannes Schindelin
5738a2342c 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>
2019-02-07 14:46:12 +01:00
Johannes Schindelin
c9f9663052 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>
2019-02-07 14:46:12 +01:00
Johannes Schindelin
0145e87a02 Merge 'fix-externals' into HEAD 2019-02-07 14:46:12 +01:00
Johannes Schindelin
9739cba26c 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>
2019-02-07 14:46:12 +01:00
Johannes Schindelin
32147506d1 Merge branch 'add-e-truncate'
This patch teaches `git add -e` to truncate the patch file first (in
case that there is a left-over one from a previous, failed attempt).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:46:11 +01:00
Johannes Schindelin
465b347658 Merge branch 'cvsexportcommit-crlf'
This used to be "Merge pull request #938 from virtuald/patch-1"

git-cvsexportcommit.perl: Force crlf translation

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:46:11 +01:00
Johannes Schindelin
28add3908c Merge branch 'reset-stdin'
This topic branch adds the (experimental) --stdin/-z options to `git
reset`. Those patches are still under review in the upstream Git project,
but are already merged in their experimental form into Git for Windows'
`master` branch, in preparation for a MinGit-only release.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:46:11 +01:00
Johannes Schindelin
1430db02d9 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>
2019-02-07 14:46:11 +01:00
İsmail Dönmez
1eb58562b6 Enable DEP and ASLR
Enable DEP (Data Execution Prevention) and ASLR (Address Space Layout
Randomization) support. This applies to both 32bit and 64bit builds
and makes it substantially harder to exploit security holes in Git by
offering a much more unpredictable attack surface.

ASLR interferes with GDB's ability to set breakpoints. A similar issue
holds true when compiling with -O2 (in which case single-stepping is
messed up because GDB cannot map the code back to the original source
code properly). Therefore we simply enable ASLR only when an
optimization flag is present in the CFLAGS, using it as an indicator
that the developer does not want to debug in GDB anyway.

Signed-off-by: İsmail Dönmez <ismail@i10z.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:46:06 +01:00
Thomas Braun
75e1936b22 Config option to disable side-band-64k for transport
Since commit 0c499ea60f the send-pack builtin uses the side-band-64k
capability if advertised by the server.

Unfortunately this breaks pushing over the dump git protocol if used
over a network connection.

The detailed reasons for this breakage are (by courtesy of Jeff Preshing,
quoted from ttps://groups.google.com/d/msg/msysgit/at8D7J-h7mw/eaLujILGUWoJ):
----------------------------------------------------------------------------
MinGW wraps Windows sockets in CRT file descriptors in order to mimic the
functionality of POSIX sockets. This causes msvcrt.dll to treat sockets as
Installable File System (IFS) handles, calling ReadFile, WriteFile,
DuplicateHandle and CloseHandle on them. This approach works well in simple
cases on recent versions of Windows, but does not support all usage patterns.
In particular, using this approach, any attempt to read & write concurrently
on the same socket (from one or more processes) will deadlock in a scenario
where the read waits for a response from the server which is only invoked after
the write. This is what send_pack currently attempts to do in the use_sideband
codepath.
----------------------------------------------------------------------------

The new config option "sendpack.sideband" allows to override the side-band-64k
capability of the server, and thus makes the dump git protocol work.

Other transportation methods like ssh and http/https still benefit from
the sideband channel, therefore the default value of "sendpack.sideband"
is still true.

[jes: split out the documentation into Documentation/config/]

Signed-off-by: Thomas Braun <thomas.braun@byte-physics.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:46:06 +01:00
Adam Roben
e109b59bb8 Make non-.exe externals work again
7ebac8cb94 made launching of .exe
externals work when installed in Unicode paths. But it broke launching
of non-.exe externals, no matter where they were installed. We now
correctly maintain the UTF-8 and UTF-16 paths in tandem in lookup_prog.

This fixes t5526, among others.

Signed-off-by: Adam Roben <adam@roben.org>
2019-02-07 14:46:06 +01:00
Johannes Schindelin
5706dd0720 Always auto-gc after calling a fast-import transport
After importing anything with fast-import, we should always let the
garbage collector do its job, since the objects are written to disk
inefficiently.

This brings down an initial import of http://selenic.com/hg from about
230 megabytes to about 14.

In the future, we may want to make this configurable on a per-remote
basis, or maybe teach fast-import about it in the first place.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:46:06 +01:00
Johannes Schindelin
1585e0e914 add --edit: truncate the patch file
If there is already a .git/ADD_EDIT.patch file, we fail to truncate it
properly, which could result in very funny errors.

Let's just truncate it and not worry about it too much.

Reported by J Wyman.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:46:06 +01:00
İsmail Dönmez
2467062fe5 Don't let ld strip relocations
This is the first step for enabling ASLR (Address Space Layout
Randomization) support. We want to enable ASLR for better protection
against exploiting security holes in Git.

The problem fixed by this commit is that `ld.exe` seems to be stripping
relocations which in turn will break ASLR support. We just make sure
it's not stripping the main executable entry.

Signed-off-by: İsmail Dönmez <ismail@i10z.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:46:06 +01:00
Adam Roben
a33ae662b2 Fix launching of externals from Unicode paths
If Git were installed in a path containing non-ASCII characters,
commands such as git-am and git-submodule, which are implemented as
externals, would fail to launch with the following error:

> fatal: 'am' appears to be a git command, but we were not
> able to execute it. Maybe git-am is broken?

This was due to lookup_prog not being Unicode-aware. It was somehow
missed in 2ee5a1a14a.

Note that the only problem in this function was calling
GetFileAttributes instead of GetFileAttributesW. The calls to access()
were fine because access() is a macro which resolves to mingw_access,
which already handles Unicode correctly. But I changed lookup_prog to
use _waccess directly so that we only convert the path to UTF-16 once.

Signed-off-by: Adam Roben <adam@roben.org>
2019-02-07 14:46:06 +01:00
Sverre Rabbelier
1a7a745968 remote-helper: check helper status after import/export
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
2019-02-07 14:46:06 +01:00
Sverre Rabbelier
52b763e371 transport-helper: add trailing --
[PT: ensure we add an additional element to the argv array]
2019-02-07 14:46:06 +01:00
Johannes Schindelin
e11bf89c09 fast-export: do not refer to non-existing marks
When calling `git fast-export a..a b` when a and b refer to the same
commit, nothing would be exported, and an incorrect reset line would
be printed for b ('from :0').

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
2019-02-07 14:46:06 +01:00
Sverre Rabbelier
fb01d0287c t9350: point out that refs are not updated correctly
This happens only when the corresponding commits are not exported in
the current fast-export run. This can happen either when the relevant
commit is already marked, or when the commit is explicitly marked
as UNINTERESTING with a negative ref by another argument.

This breaks fast-export basec remote helpers.

Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
2019-02-07 14:46:06 +01:00
Dustin Spicuzza
f3d42947a2 cvsexportcommit: force crlf translation
When using cvsnt + msys + git, it seems like the output of cvs status
had \r\n in it, and caused the command to fail.

This fixes that.

Signed-off-by: Dustin Spicuzza <dustin@virtualroadside.com>
2019-02-07 14:46:05 +01:00
Johannes Schindelin
c4634f76e8 reset: support the experimental --stdin option
Just like with other Git commands, this option makes it read the paths
from the standard input. It comes in handy when resetting many, many
paths at once and wildcards are not an option (e.g. when the paths are
generated by a tool).

Note: we first parse the entire list and perform the actual reset action
only in a second phase. Not only does this make things simpler, it also
helps performance, as do_diff_cache() traverses the index and the
(sorted) pathspecs in simultaneously to avoid unnecessary lookups.

This feature is marked experimental because it is still under review in
the upstream Git project.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:46:05 +01:00
Johannes Schindelin
e249be4e79 mingw: respect core.hidedotfiles = false in git-init again
This is a brown paper bag. When adding the tests, we actually failed
to verify that the config variable is heeded in git-init at all. And
when changing the original patch that marked the .git/ directory as
hidden after reading the config, it was lost on this developer that
the new code would use the hide_dotfiles variable before the config
was read.

The fix is obvious: read the (limited, pre-init) config *before*
creating the .git/ directory.

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

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:46:05 +01:00
Johannes Schindelin
27e3e78d7b Start the merging-rebase to v2.20.1
In preparation for rebasing onto v2.21.0-rc, this janitorial
merging-rebase juggles a few things around and updates others:

- The `case-insensitive-abspath`, `unc-path-w-backslashes`,
  `azure-pipelines` and `stash-in-c` branches were updated to reflect
  the versions that made it into v2.21.0-rc0.

- As the patch in `kraai/2006` was folded into `stash-in-c` upstream, we
  did the same here.

- The branches `status-no-lock-index` and
  `phase-out-show-ignored-directory-gracefully`, intended to help with
  phasing out two Git for Windows-only features (that made it into core
  Git in different forms), were moved to the bottom of the branch
  thicket.

- The `funny-cased-cwd`, `remove-ipv6-fallback`, `open-in-gdb`,
  `mingw-build-options-fix`, `http-version`, `builtin-rebase-perf-fix`,
  `test-oid-fix-windows` and `external-diff-save-env`
  patches were moved into the `ready-for-upstream` thicket.

- The `rebase-post-checkout-hook` and the `builtin-rebase--am` branch
  was updated to the version that made it into v2.21.0-rc0, and moved to
  the `ready-for-upstream` thicket.

- The FSCache-related topics were moved closer together.

- The commit message of `MinGW: Use MakeMaker to build the Perl
  libraries` was changed to reflect the fact that we do not even use
  MakeMaker anymore.

- The patch `Tests: optionally skip redirecting stdin/stdout/stderr` was
  dropped, as the `debug` function learned to un-redirect the streams.

- The commit message of `Skip t9020 with MSys2`, `t9116: work around
  hard-to-debug hangs` and `t9001: work around hard-to-debug hangs` were
  improved to be a lot more informative, the latter two were also
  combined into a single patch.

- The patch `mingw: support spawning programs containing spaces in their
  names` was augmented with a regression test, and the commit message
  now mentions that this is needed for older Windows versions.

This commit starts the rebase of 4c87c4e2e3 to 7a95a1cd08

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-02-07 14:45:35 +01:00
Johannes Schindelin
9f16cdd421 Merge pull request #2044 from dscho/fscache-gfw
Fix a network drive related bug in the new, fast FSCache
2019-01-29 20:05:21 +01:00
Johannes Schindelin
32e6742eaf squash! fscache: teach fscache to use NtQueryDirectoryFile
The NtQueryDirectoryFile() call works best (and on Windows 8.1 and
earlier, it works *only*) with buffer sizes up to 64kB. Which is 32k
wide characters, so let's use that as our buffer size.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-29 14:12:48 +01:00
Johannes Schindelin
9e107c96c0 Merge pull request #1991 from dscho/azure-pipelines-g4w
Improve Azure Pipelines support
2019-01-16 14:38:17 +01:00
Johannes Schindelin
3346fdcbb5 ci: parallelize testing on Windows
The fact that Git's test suite is implemented in Unix shell script that
is as portable as we can muster, combined with the fact that Unix shell
scripting is foreign to Windows (and therefore has to be emulated),
results in pretty abysmal speed of the test suite on that platform, for
pretty much no other reason than that language choice.

For comparison: while the Linux build & test is typically done within
about 8 minutes, the Windows build & test typically lasts about 80
minutes in Azure Pipelines.

To help with that, let's use the Azure Pipeline feature where you can
parallelize jobs, make jobs depend on each other, and pass artifacts
between them.

The tests are distributed using the following heuristic: listing all
test scripts ordered by size in descending order (as a cheap way to
estimate the overall run time), every Nth script is run (where N is the
total number of parallel jobs), starting at the index corresponding to
the parallel job. This slicing is performed by a new function that is
added to the `test-tool`.

To optimize the overall runtime of the entire Pipeline, we need to move
the Windows jobs to the beginning (otherwise there would be a very
decent chance for the Pipeline to be run only the Windows build, while
all the parallel Windows test jobs wait for this single one).

We use Azure Pipelines Artifacts for both the minimal Git for Windows
SDK as well as the built executables, as deduplication and caching close
to the agents makes that really fast. For comparison: while downloading
and unpacking the minimal Git for Windows SDK via PowerShell takes only
one minute (down from anywhere between 2.5 to 7 when using a shallow
clone), uploading it as Pipeline Artifact takes less than 30s and
downloading and unpacking less than 20s (sometimes even as little as
only twelve seconds).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-16 13:48:13 +01:00
Johannes Schindelin
dd3edb09d0 fixup! travis: fix skipping tagged releases
Add the comment that we added to the patch series intended for upstream
git.git.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-16 13:45:59 +01:00
Johannes Schindelin
1b512ad99f fixup! tests: include detailed trace logs with --write-junit-xml upon failure
Let's use the new `test-tool path-utils file-size` command in the new
JUnit XML feature.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-16 13:45:59 +01:00
Johannes Schindelin
898de195f5 tests: avoid calling Perl just to determine file sizes
It is a bit ridiculous to spin up a full-blown Perl instance (especially
on Windows, where that means spinning up a full POSIX emulation layer,
AKA the MSYS2 runtime) just to tell how large a given file is.

So let's just use the test-tool to do that job instead.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-16 13:45:58 +01:00
Johannes Schindelin
3ee87b31c9 fixup! tests: optionally write results as JUnit-style .xml
Make sure to write the .xml in UTF-8 encoding.

We also need to make sure that invalid UTF-8 encoding is turned into
valid UTF-8 (using the Replacement Character, \uFFFD) because t9902's
trace contains such invalid byte sequences, and the task that uploads
the test results would refuse to do anything if it was asked to parse an
.xml file with invalid UTF-8 in it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-16 13:45:58 +01:00
Johannes Schindelin
3036485ddb fixup! mingw: special-case arguments to sh
While working on parallelizing the tests in Azure Pipelines, an issue
was discovered with the `is_msys2_sh()` function: it expects the path
components to be separated by exactly one dir separator. That does not
need to be the case, though, e.g. when the components in the `PATH`
variable have trailing slashes.

Let's make the code much more robust in this respect.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-16 13:45:58 +01:00
Johannes Schindelin
a7f8b0d0ee mingw: be more generous when wrapping up the setitimer() emulation
Every once in a while, the Azure Pipeline fails with some semi-random

	error: timer thread did not terminate timely

This error message means that the thread that is used to emulate the
setitimer() function did not terminate within 1,000 milliseconds.

The most likely explanation (and therefore the one we should assume to
be true, according to Occam's Razor) is that the timeout of one second
is simply not enough because we try to run so many tasks in parallel.

So let's give it ten seconds instead of only one. That should be enough.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-16 13:45:58 +01:00
Johannes Schindelin
e241605ef3 ci: use git-sdk-64-minimal build artifact
Instead of a shallow fetch followed by a sparse checkout, we are
better off by using a separate, dedicated Pipeline that bundles
the SDK as a build artifact, and then consuming that build artifact
here.

In fact, since this artifact will be used a lot, we spent substantial
time on figuring out a minimal subset of the Git for Windows SDK, just
enough to build and test Git. The result is a size reduction from around
1GB (compressed) to around 55MB (compressed). This also comes with the
change where we now call `usr\bin\bash.exe` directly, as `git-cmd.exe`
is not included in the minimal SDK.

That reduces the time to initialize Git for Windows' SDK from anywhere
between 2m30s-7m to a little over 1m.

Note: in theory, we could also use the DownloadBuildArtifacts@0 task
here. However, restricted permissions that are in effect when building
from forks would let this fail for PR builds, defeating the whole
purpose of the Azure Pipelines support for git.git.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-16 13:45:56 +01:00
Johannes Schindelin
4d3be1d845 Merge pull request #2026 from gitster/kg/external-diff-save-env
diff: ensure correct lifetime of external_diff_cmd
2019-01-16 10:21:16 +01:00
Johannes Schindelin
f6fb98bdd2 ci: move the Windows job to the top
The Windows job currently takes a whopping ~1h20m to complete. Which is
*far* longer than the next-longest job takes (linux-gcc, ~35m). As such,
it makes sense to start the Windows job first, to minimize the overall
run time (which is now pretty safely the run time of the Windows job).

This affects only the Azure Pipelines configuration, not the Travis one,
of course, as Travis cannot run our Windows job: 1h20m is distinctly
longer than the 50 minute timeout of Travis' free tier.

This commit is best viewed with `--color-moved`.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-16 10:06:49 +01:00
Johannes Schindelin
a4c8e46019 fixup! Add a build definition for Azure DevOps
It is not strictly necessary to start a command in PowerShell with `&`,
but it is safer.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-16 10:06:02 +01:00
Johannes Schindelin
02451caa3c fixup! Add a build definition for Azure DevOps
We do not need build-extra. So let's not clone it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-15 19:47:58 +01:00
Johannes Schindelin
6934fe7046 fixup! Add a build definition for Azure DevOps
Some improvements (suggested via review on the Git mailing list) have
not been incorporated into Git for Windows' `master` yet, other changes
were left-overs from debugging that need reverting.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-15 19:47:18 +01:00
Johannes Schindelin
760ff732cb fixup! Add a build definition for Azure DevOps
Let's use the new YAML schema. See
https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-15 19:47:18 +01:00
Johannes Schindelin
e1a2142157 fixup! Add a build definition for Azure DevOps
Remove a trailing empty line.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-15 19:47:18 +01:00
Johannes Schindelin
ca997ef3e9 fixup! Add a build definition for Azure DevOps
At some point we switched from Hosted Linux Preview to Ubuntu 16.04, at
which point it became unnecessary to install the `docker` package for
the Linux-32 job.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-15 19:47:18 +01:00
Johannes Schindelin
a2379f7031 fixup! Add a build definition for Azure DevOps
For some reason, the indentation of the PowerShell tasks got all messed
up. Fix that.

While at it, do not define `c()` for only one user, and do not
initialize `/etc/passwd` (it does not seem to have a noticeable effect).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-15 19:46:29 +01:00
Johannes Schindelin
82d81f2a8b fixup! ci/lib.sh: add support for Azure Pipelines
TASKDEFINITIONSURI is not set in parallel tasks... And COLLECTIONURI is
not set in the Linux32 job...

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-01-15 19:30:54 +01:00
Kim Gybels
6776a84dae diff: ensure correct lifetime of external_diff_cmd
According to getenv(3)'s notes:

    The implementation of getenv() is not required to be reentrant.  The
    string pointed to by the return value of getenv() may be statically
    allocated, and can be modified by a subsequent call to getenv(),
    putenv(3), setenv(3), or unsetenv(3).

Since strings returned by getenv() are allowed to change on subsequent
calls to getenv(), make sure to duplicate when caching external_diff_cmd
from environment.

This problem becomes apparent on Git for Windows since fe21c6b285
(mingw: reencode environment variables on the fly (UTF-16 <-> UTF-8)),
when the getenv() implementation provided in compat/mingw.c was changed
to keep a certain amount of alloc'ed strings and freeing them on
subsequent calls.

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

    $ yes n | git -c difftool.prompt=yes difftool fe21c6b285 fe21c6b285df~100

    Viewing (1/404): '.gitignore'
    Launch 'bc3' [Y/n]?
    Viewing (2/404): 'Documentation/.gitignore'
    Launch 'bc3' [Y/n]?
    Viewing (3/404): 'Documentation/Makefile'
    Launch 'bc3' [Y/n]?
    Viewing (4/404): 'Documentation/RelNotes/2.14.5.txt'
    Launch 'bc3' [Y/n]?
    Viewing (5/404): 'Documentation/RelNotes/2.15.3.txt'
    Launch 'bc3' [Y/n]?
    Viewing (6/404): 'Documentation/RelNotes/2.16.5.txt'
    Launch 'bc3' [Y/n]?
    Viewing (7/404): 'Documentation/RelNotes/2.17.2.txt'
    Launch 'bc3' [Y/n]?
    Viewing (8/404): 'Documentation/RelNotes/2.18.1.txt'
    Launch 'bc3' [Y/n]?
    Viewing (9/404): 'Documentation/RelNotes/2.19.0.txt'
    Launch 'bc3' [Y/n]? error: cannot spawn ¦?: No such file or directory
    fatal: external diff died, stopping at Documentation/RelNotes/2.19.1.txt

Signed-off-by: Kim Gybels <kgybels@infogroep.be>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-01-11 18:32:38 -08:00
Johannes Schindelin
6b286585b1 Merge pull request #2008 from kraai/2006
Initialize rev before using &rev.pending
2019-01-09 12:37:19 +01:00
Matthew Kraai
8149e4f8d5 Initialize rev before using &rev.pending
If reset_tree returns a non-zero value, stash_working_tree calls
object_array_clear with &rev.pending before rev is initialized.  This
causes a segmentation fault.  Prevent this by initializing rev before
calling reset_tree.

This fixes #2006.

Signed-off-by: Matthew Kraai <mkraai@its.jnj.com>
2019-01-04 13:06:09 -08:00
Johannes Schindelin
7b95654d1c Merge pull request #1992 from orgads/rebase-post-checkout-hook
Rebase: Run post-checkout hook on checkout
2018-12-21 12:57:57 +01:00
Orgad Shaneh
93f54842f5 Rebase: Run post-checkout hook on checkout
Signed-off-by: Orgad Shaneh <orgads@gmail.com>
2018-12-20 23:59:14 +02:00
Orgad Shaneh
cd63940eff t5403: Refactor
* Replace multiple clones and commits by test_commits.
* Replace 3 invocations of awk by read.

Signed-off-by: Orgad Shaneh <orgads@gmail.com>
2018-12-20 23:57:34 +02:00