<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/contrib, branch v2.23.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.23.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.23.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2019-08-02T20:12:02Z</updated>
<entry>
<title>Merge branch 'js/visual-studio'</title>
<updated>2019-08-02T20:12:02Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-08-02T20:12:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c62bc49139f1d18e922fc98e35bb08b1aadbcafc'/>
<id>urn:sha1:c62bc49139f1d18e922fc98e35bb08b1aadbcafc</id>
<content type='text'>
Support building Git with Visual Studio

The bits about .git/branches/* have been dropped from the series.
We may want to drop the support for it, but until that happens, the
tests should rely on the existence of the support to pass.

* js/visual-studio: (23 commits)
  git: avoid calling aliased builtins via their dashed form
  bin-wrappers: append `.exe` to target paths if necessary
  .gitignore: ignore Visual Studio's temporary/generated files
  .gitignore: touch up the entries regarding Visual Studio
  vcxproj: also link-or-copy builtins
  msvc: add a Makefile target to pre-generate the Visual Studio solution
  contrib/buildsystems: add a backend for modern Visual Studio versions
  contrib/buildsystems: handle options starting with a slash
  contrib/buildsystems: also handle -lexpat
  contrib/buildsystems: handle libiconv, too
  contrib/buildsystems: handle the curl library option
  contrib/buildsystems: error out on unknown option
  contrib/buildsystems: optionally capture the dry-run in a file
  contrib/buildsystems: redirect errors of the dry run into a log file
  contrib/buildsystems: ignore gettext stuff
  contrib/buildsystems: handle quoted spaces in filenames
  contrib/buildsystems: fix misleading error message
  contrib/buildsystems: ignore irrelevant files in Generators/
  contrib/buildsystems: ignore invalidcontinue.obj
  Vcproj.pm: urlencode '&lt;' and '&gt;' when generating VC projects
  ...
</content>
</entry>
<entry>
<title>vcxproj: also link-or-copy builtins</title>
<updated>2019-07-29T21:51:43Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2019-07-29T20:08:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b18ae14a8f6da9a04d0a6e4698d8ccea4afb546d'/>
<id>urn:sha1:b18ae14a8f6da9a04d0a6e4698d8ccea4afb546d</id>
<content type='text'>
The default location for `.exe` files linked by Visual Studio depends on
the mode (debug vs release) and the architecture. Meaning: after a full
build, there is a `git.exe` in the top-level directory, but none of the
built-ins are linked..

When running a test script in Git Bash, it therefore would pick up the
wrong, say, `git-receive-pack.exe`: the one installed at the same time
as the Git Bash.

Absolutely not what we want. We want to have confidence that our test
covers the MSVC-built Git executables, and not some random stuff.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>msvc: add a Makefile target to pre-generate the Visual Studio solution</title>
<updated>2019-07-29T21:51:43Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2019-07-29T20:08:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=976aaedca0c6f64b37f4241bf06fa7ab06095986'/>
<id>urn:sha1:976aaedca0c6f64b37f4241bf06fa7ab06095986</id>
<content type='text'>
The entire idea of generating the VS solution makes only sense if we
generate it via Continuous Integration; otherwise potential users would
still have to download the entire Git for Windows SDK.

If we pre-generate the Visual Studio solution, Git can be built entirely
within Visual Studio, and the test scripts can be run in a regular Git
for Windows (e.g. the Portable Git flavor, which does not include a full
GCC toolchain and therefore weighs only about a tenth of Git for
Windows' SDK).

So let's just add a target in the Makefile that can be used to generate
said solution; The generated files will then be committed so that they
can be pushed to a branch ready to check out by Visual Studio users.

To make things even more useful, we also generate and commit other files
that are required to run the test suite, such as templates and
bin-wrappers: with this, developers can run the test suite in a regular
Git Bash after building the solution in Visual Studio.

Note: for this build target, we do not actually need to initialize the
`vcpkg` system, so we don't.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>contrib/buildsystems: add a backend for modern Visual Studio versions</title>
<updated>2019-07-29T21:51:43Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2019-07-29T20:08:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=384a61bc6a8e6dc241d685acf4fb7b5a15003dbb'/>
<id>urn:sha1:384a61bc6a8e6dc241d685acf4fb7b5a15003dbb</id>
<content type='text'>
Based on the previous patches in this patch series that fixed the
generator for `.vcproj` files (which were used by Visual Studio prior to
2015 to define projects), this patch offers to generate project
definitions for neweer versions of Visual Studio (which use `.vcxproj`
files).

To that end, this patch copy-edits the generator of the `.vcproj`.

In addition, we now use the `vcpkg` system which allows us to build
Git's dependencies (e.g. curl, libexpat) conveniently. The support
scripts were introduced in the `jh/msvc` patch series, and with this
patch we initialize the `vcpkg` conditionally, in the `libgit` project's
`PreBuildEvent`. To allow for parallel building of the projects, we
therefore put `libgit` at the bottom of the project hierarchy.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>contrib/buildsystems: handle options starting with a slash</title>
<updated>2019-07-29T21:51:43Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2019-07-29T20:08:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4553f9de23f8d451bf801b566247bf987570626a'/>
<id>urn:sha1:4553f9de23f8d451bf801b566247bf987570626a</id>
<content type='text'>
With the recent changes to allow building with MSVC=1, we now pass the
/OPT:REF option to the compiler. This confuses the parser that wants to
turn the output of a dry run into project definitions for QMake and Visual
Studio:

	Unhandled link option @ line 213: /OPT:REF at [...]

Let's just extend the code that passes through options that start with a
dash, so that it passes through options that start with a slash, too.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>contrib/buildsystems: also handle -lexpat</title>
<updated>2019-07-29T21:51:43Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2019-07-29T20:08:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=6e500217f99ee6c3a314cb15766aa5dce99f55ca'/>
<id>urn:sha1:6e500217f99ee6c3a314cb15766aa5dce99f55ca</id>
<content type='text'>
This is a dependency required for the non-smart HTTP backend.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>contrib/buildsystems: handle libiconv, too</title>
<updated>2019-07-29T21:51:43Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2019-07-29T20:08:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1a537ecfbb9640744b6e8e523e13abf4e2641a3d'/>
<id>urn:sha1:1a537ecfbb9640744b6e8e523e13abf4e2641a3d</id>
<content type='text'>
Git's test suite shows tons of breakages unless Git is compiled
*without* NO_ICONV. That means, in turn, that we need to generate
build definitions *with* libiconv, which in turn implies that we
have to handle the -liconv option properly.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>contrib/buildsystems: handle the curl library option</title>
<updated>2019-07-29T21:51:42Z</updated>
<author>
<name>Philip Oakley</name>
<email>philipoakley@iee.org</email>
</author>
<published>2019-07-29T20:08:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9103a75c584dd6edddfcb3004974a1bb48d9214c'/>
<id>urn:sha1:9103a75c584dd6edddfcb3004974a1bb48d9214c</id>
<content type='text'>
Upon seeing the '-lcurl' option, point to the libcurl.lib.

While there, fix the elsif indentation.

Signed-off-by: Philip Oakley &lt;philipoakley@iee.org&gt;
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>contrib/buildsystems: error out on unknown option</title>
<updated>2019-07-29T21:51:42Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2019-07-29T20:08:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=66697467f8256bbc45e413fd2c5022898b0b01c0'/>
<id>urn:sha1:66697467f8256bbc45e413fd2c5022898b0b01c0</id>
<content type='text'>
One time too many did this developer call the `generate` script passing
a `--make-out=&lt;PATH&gt;` option that was happily ignored (because there
should be a space, not an equal sign, between `--make-out` and the
path).

And one time too many, this script not only ignored it but did not even
complain. Let's fix that.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>contrib/buildsystems: optionally capture the dry-run in a file</title>
<updated>2019-07-29T21:51:42Z</updated>
<author>
<name>Philip Oakley</name>
<email>philipoakley@iee.org</email>
</author>
<published>2019-07-29T20:08:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a530a59a6f6298622460805e28dfb2b49dd1cf11'/>
<id>urn:sha1:a530a59a6f6298622460805e28dfb2b49dd1cf11</id>
<content type='text'>
Add an option for capturing the output of the make dry-run used in
determining the msvc-build structure for easy debugging.

You can use the output of `--make-out &lt;path&gt;` in subsequent runs via the
`--in &lt;path&gt;` option.

Signed-off-by: Philip Oakley &lt;philipoakley@iee.org&gt;
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
