<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git, branch v2.35.7</title>
<subtitle>Fork of git SCM with my patches.</subtitle>
<id>http://git.kilabit.info/git/atom?h=v2.35.7</id>
<link rel='self' href='http://git.kilabit.info/git/atom?h=v2.35.7'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/'/>
<updated>2023-02-06T08:29:45Z</updated>
<entry>
<title>Git 2.35.7</title>
<updated>2023-02-06T08:29:45Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2023-02-06T08:29:45Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=b7a92d078b9b9a39553623815699eb029074e39d'/>
<id>urn:sha1:b7a92d078b9b9a39553623815699eb029074e39d</id>
<content type='text'>
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
</content>
</entry>
<entry>
<title>Sync with 2.34.7</title>
<updated>2023-02-06T08:29:44Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2023-02-06T08:29:44Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=6a53a59bf9986f99c1a8dd0f36e2b9d6033e89f2'/>
<id>urn:sha1:6a53a59bf9986f99c1a8dd0f36e2b9d6033e89f2</id>
<content type='text'>
* maint-2.34:
  Git 2.34.7
  http: support CURLOPT_PROTOCOLS_STR
  http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
  http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
  Git 2.33.7
  Git 2.32.6
  Git 2.31.7
  Git 2.30.8
  apply: fix writing behind newly created symbolic links
  dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS
  clone: delay picking a transport until after get_repo_path()
  t5619: demonstrate clone_local() with ambiguous transport
</content>
</entry>
<entry>
<title>Git 2.34.7</title>
<updated>2023-02-06T08:29:17Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2023-02-06T08:29:17Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=91da4a29e168ab465beb713fca4d389193f8f16c'/>
<id>urn:sha1:91da4a29e168ab465beb713fca4d389193f8f16c</id>
<content type='text'>
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
</content>
</entry>
<entry>
<title>Sync with 2.33.7</title>
<updated>2023-02-06T08:29:16Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2023-02-06T08:29:16Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=a7237f5ae981c7b3ac9898970813e4ec01987ee3'/>
<id>urn:sha1:a7237f5ae981c7b3ac9898970813e4ec01987ee3</id>
<content type='text'>
* maint-2.33:
  Git 2.33.7
  Git 2.32.6
  Git 2.31.7
  Git 2.30.8
  apply: fix writing behind newly created symbolic links
  dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS
  clone: delay picking a transport until after get_repo_path()
  t5619: demonstrate clone_local() with ambiguous transport
</content>
</entry>
<entry>
<title>Merge branch 'jk/curl-avoid-deprecated-api'</title>
<updated>2023-02-06T08:27:41Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2023-01-20T23:36:21Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=bd6d3de01fdc6fcf040a22718673766e754631b5'/>
<id>urn:sha1:bd6d3de01fdc6fcf040a22718673766e754631b5</id>
<content type='text'>
Deal with a few deprecation warning from cURL library.

* jk/curl-avoid-deprecated-api:
  http: support CURLOPT_PROTOCOLS_STR
  http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
  http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
</content>
</entry>
<entry>
<title>http: support CURLOPT_PROTOCOLS_STR</title>
<updated>2023-02-06T08:27:09Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2023-01-17T03:04:48Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=f44e6a21057b0d8aae7c36f10537353330813f62'/>
<id>urn:sha1:f44e6a21057b0d8aae7c36f10537353330813f62</id>
<content type='text'>
The CURLOPT_PROTOCOLS (and matching CURLOPT_REDIR_PROTOCOLS) flag was
deprecated in curl 7.85.0, and using it generate compiler warnings as of
curl 7.87.0. The path forward is to use CURLOPT_PROTOCOLS_STR, but we
can't just do so unilaterally, as it was only introduced less than a
year ago in 7.85.0.

Until that version becomes ubiquitous, we have to either disable the
deprecation warning or conditionally use the "STR" variant on newer
versions of libcurl. This patch switches to the new variant, which is
nice for two reasons:

  - we don't have to worry that silencing curl's deprecation warnings
    might cause us to miss other more useful ones

  - we'd eventually want to move to the new variant anyway, so this gets
    us set up (albeit with some extra ugly boilerplate for the
    conditional)

There are a lot of ways to split up the two cases. One way would be to
abstract the storage type (strbuf versus a long), how to append
(strbuf_addstr vs bitwise OR), how to initialize, which CURLOPT to use,
and so on. But the resulting code looks pretty magical:

  GIT_CURL_PROTOCOL_TYPE allowed = GIT_CURL_PROTOCOL_TYPE_INIT;
  if (...http is allowed...)
	GIT_CURL_PROTOCOL_APPEND(&amp;allowed, "http", CURLOPT_HTTP);

and you end up with more "#define GIT_CURL_PROTOCOL_TYPE" macros than
actual code.

On the other end of the spectrum, we could just implement two separate
functions, one that handles a string list and one that handles bits. But
then we end up repeating our list of protocols (http, https, ftp, ftp).

This patch takes the middle ground. The run-time code is always there to
handle both types, and we just choose which one to feed to curl.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
</content>
</entry>
<entry>
<title>http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION</title>
<updated>2023-02-06T08:27:09Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2023-01-17T03:04:44Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=4bd481e0ad9c6e78e320288886ffdad8f76dcfc1'/>
<id>urn:sha1:4bd481e0ad9c6e78e320288886ffdad8f76dcfc1</id>
<content type='text'>
The IOCTLFUNCTION option has been deprecated, and generates a compiler
warning in recent versions of curl. We can switch to using SEEKFUNCTION
instead. It was added in 2008 via curl 7.18.0; our INSTALL file already
indicates we require at least curl 7.19.4.

But there's one catch: curl says we should use CURL_SEEKFUNC_{OK,FAIL},
and those didn't arrive until 7.19.5. One workaround would be to use a
bare 0/1 here (or define our own macros).  But let's just bump the
minimum required version to 7.19.5. That version is only a minor version
bump from our existing requirement, and is only a 2 month time bump for
versions that are almost 13 years old. So it's not likely that anybody
cares about the distinction.

Switching means we have to rewrite the ioctl functions into seek
functions. In some ways they are simpler (seeking is the only
operation), but in some ways more complex (the ioctl allowed only a full
rewind, but now we can seek to arbitrary offsets).

Curl will only ever use SEEK_SET (per their documentation), so I didn't
bother implementing anything else, since it would naturally be
completely untested. This seems unlikely to change, but I added an
assertion just in case.

Likewise, I doubt curl will ever try to seek outside of the buffer sizes
we've told it, but I erred on the defensive side here, rather than do an
out-of-bounds read.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
</content>
</entry>
<entry>
<title>http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT</title>
<updated>2023-02-06T08:27:08Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2023-01-17T03:04:38Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=4fab049258a294e375431e07f343d1752994fba3'/>
<id>urn:sha1:4fab049258a294e375431e07f343d1752994fba3</id>
<content type='text'>
The two options do exactly the same thing, but the latter has been
deprecated and in recent versions of curl may produce a compiler
warning. Since the UPLOAD form is available everywhere (it was
introduced in the year 2000 by curl 7.1), we can just switch to it.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
</content>
</entry>
<entry>
<title>Git 2.33.7</title>
<updated>2023-02-06T08:25:58Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2023-02-06T08:25:58Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=ed4404af3c936d87ac2c6ff12cc3da495511bec9'/>
<id>urn:sha1:ed4404af3c936d87ac2c6ff12cc3da495511bec9</id>
<content type='text'>
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
</content>
</entry>
<entry>
<title>Sync with 2.32.6</title>
<updated>2023-02-06T08:25:56Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2023-02-06T08:25:56Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=87248c5933891f20e47ce8153530b8ad76f53098'/>
<id>urn:sha1:87248c5933891f20e47ce8153530b8ad76f53098</id>
<content type='text'>
* maint-2.32:
  Git 2.32.6
  Git 2.31.7
  Git 2.30.8
  apply: fix writing behind newly created symbolic links
  dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS
  clone: delay picking a transport until after get_repo_path()
  t5619: demonstrate clone_local() with ambiguous transport
</content>
</entry>
</feed>
