<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/contrib, branch v2.45.3</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.45.3</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.45.3'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2024-04-30T22:24:56Z</updated>
<entry>
<title>completion: zsh: stop leaking local cache variable</title>
<updated>2024-04-30T22:24:56Z</updated>
<author>
<name>D. Ben Knoble</name>
<email>ben.knoble+github@gmail.com</email>
</author>
<published>2024-04-30T21:53:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3c20acdf465ba211978108ca8507d41e62a016fd'/>
<id>urn:sha1:3c20acdf465ba211978108ca8507d41e62a016fd</id>
<content type='text'>
Completing commands like "git rebase" in one repository will leak the
local __git_repo_path into the shell's environment so that completing
commands after changing to a different repository will give the old
repository's references (or none at all).

The bug report on the mailing list [1] suggests one simple way to observe
this yourself:

Enter the following commands from some directory:
  mkdir a b b/c
  for d (a b); git -C $d init &amp;&amp; git -C $d commit --allow-empty -m init
  cd a
  git branch foo
  pushd ../b/c
  git branch bar

Now type these:
  git rebase &lt;TAB&gt;… # completion for bar available; C-c to abort
  declare -p __git_repo_path # outputs /path/to/b/.git
  popd
  git branch # outputs foo, main
  git rebase &lt;TAB&gt;… # completion candidates are bar, main!

Ideally, the last typed &lt;TAB&gt; should be yielding foo, main.

Commit beb6ee7163 (completion: extract repository discovery from
__gitdir(), 2017-02-03) anticipated this problem by marking
__git_repo_path as local in __git_main and __gitk_main for Bash
completion but did not give the same mark to _git for Zsh completion.
Thus make __git_repo_path local for Zsh completion, too.

[1]: https://lore.kernel.org/git/CALnO6CBv3+e2WL6n6Mh7ZZHCX2Ni8GpvM4a-bQYxNqjmgZdwdg@mail.gmail.com/

Signed-off-by: D. Ben Knoble &lt;ben.knoble+github@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ba/osxkeychain-updates'</title>
<updated>2024-04-16T21:50:30Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2024-04-16T21:50:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=51c15ac1b6ab15d8e29651d0bd364d8f62dc6509'/>
<id>urn:sha1:51c15ac1b6ab15d8e29651d0bd364d8f62dc6509</id>
<content type='text'>
Update osxkeychain backend with features required for the recent
credential subsystem.

* ba/osxkeychain-updates:
  osxkeychain: store new attributes
  osxkeychain: erase matching passwords only
  osxkeychain: erase all matching credentials
  osxkeychain: replace deprecated SecKeychain API
</content>
</entry>
<entry>
<title>Merge branch 'rs/apply-lift-path-length-limit'</title>
<updated>2024-04-15T21:11:42Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2024-04-15T21:11:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c7a9ec4728db6f88c0957789f3b77a3e2e8b0ec9'/>
<id>urn:sha1:c7a9ec4728db6f88c0957789f3b77a3e2e8b0ec9</id>
<content type='text'>
"git apply" has been updated to lift the hardcoded pathname length
limit, which in turn allowed a mksnpath() function that is no
longer used.

* rs/apply-lift-path-length-limit:
  path: remove mksnpath()
  apply: avoid fixed-size buffer in create_one_file()
</content>
</entry>
<entry>
<title>Merge branch 'vs/complete-with-set-u-fix'</title>
<updated>2024-04-10T17:00:08Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2024-04-10T17:00:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a4a1453ad173c61663dceed2452d21616ee46b44'/>
<id>urn:sha1:a4a1453ad173c61663dceed2452d21616ee46b44</id>
<content type='text'>
Another "set -u" fix for the bash prompt (in contrib/) script.

* vs/complete-with-set-u-fix:
  completion: protect prompt against unset SHOWUPSTREAM in nounset mode
  completion: fix prompt with unset SHOWCONFLICTSTATE in nounset mode
</content>
</entry>
<entry>
<title>path: remove mksnpath()</title>
<updated>2024-04-05T16:49:38Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2024-04-05T10:56:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=708f7e05907ba7d4acd08bf87f51474471a16f43'/>
<id>urn:sha1:708f7e05907ba7d4acd08bf87f51474471a16f43</id>
<content type='text'>
Remove the function mksnpath(), which has become unused.

Signed-off-by: René Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>osxkeychain: store new attributes</title>
<updated>2024-04-01T22:38:20Z</updated>
<author>
<name>Bo Anderson</name>
<email>mail@boanderson.me</email>
</author>
<published>2024-02-17T23:34:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d5b35bba86e6fdf0484ea71bf5b8ef1167f14015'/>
<id>urn:sha1:d5b35bba86e6fdf0484ea71bf5b8ef1167f14015</id>
<content type='text'>
d208bfdfef (credential: new attribute password_expiry_utc, 2023-02-18)
and a5c76569e7 (credential: new attribute oauth_refresh_token,
2023-04-21) introduced new credential attributes but support was missing
from git-credential-osxkeychain.

Support these attributes by appending the data to the password in the
keychain, separated by line breaks. Line breaks cannot appear in a git
credential password so it is an appropriate separator.

Fixes the remaining test failures with osxkeychain:

    18 - helper (osxkeychain) gets password_expiry_utc
    19 - helper (osxkeychain) overwrites when password_expiry_utc
    changes
    21 - helper (osxkeychain) gets oauth_refresh_token

Signed-off-by: Bo Anderson &lt;mail@boanderson.me&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>osxkeychain: erase matching passwords only</title>
<updated>2024-04-01T22:38:20Z</updated>
<author>
<name>Bo Anderson</name>
<email>mail@boanderson.me</email>
</author>
<published>2024-02-17T23:34:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e3cef40db89f5a7c91f4e9d6c4959ca1e41f4647'/>
<id>urn:sha1:e3cef40db89f5a7c91f4e9d6c4959ca1e41f4647</id>
<content type='text'>
Other credential helpers support deleting credentials that match a
specified password. See 7144dee3ec (credential/libsecret: erase matching
creds only, 2023-07-26) and cb626f8e5c (credential/wincred: erase
matching creds only, 2023-07-26).

Support this in osxkeychain too by extracting, decrypting and comparing
the stored password before deleting.

Fixes the following test failure with osxkeychain:

    11 - helper (osxkeychain) does not erase a password distinct from
    input

Signed-off-by: Bo Anderson &lt;mail@boanderson.me&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>osxkeychain: erase all matching credentials</title>
<updated>2024-04-01T22:38:20Z</updated>
<author>
<name>Bo Anderson</name>
<email>mail@boanderson.me</email>
</author>
<published>2024-02-17T23:34:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9032bcad82f45a403e4a8de86e1fcb4bfd1ab282'/>
<id>urn:sha1:9032bcad82f45a403e4a8de86e1fcb4bfd1ab282</id>
<content type='text'>
Other credential managers erased all matching credentials, as indicated
by a test case that osxkeychain failed:

    15 - helper (osxkeychain) erases all matching credentials

Signed-off-by: Bo Anderson &lt;mail@boanderson.me&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>osxkeychain: replace deprecated SecKeychain API</title>
<updated>2024-04-01T22:38:19Z</updated>
<author>
<name>Bo Anderson</name>
<email>mail@boanderson.me</email>
</author>
<published>2024-02-17T23:34:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9abe31f5f161be4d69118bdfae00103cd6efa510'/>
<id>urn:sha1:9abe31f5f161be4d69118bdfae00103cd6efa510</id>
<content type='text'>
The SecKeychain API was deprecated in macOS 10.10, nearly 10 years ago.
The replacement SecItem API however is available as far back as macOS
10.6.

While supporting older macOS was perhaps prevously a concern,
git-credential-osxkeychain already requires a minimum of macOS 10.7
since 5747c8072b (contrib/credential: avoid fixed-size buffer in
osxkeychain, 2023-05-01) so using the newer API should not regress the
range of macOS versions supported.

Adapting to use the newer SecItem API also happens to fix two test
failures in osxkeychain:

    8 - helper (osxkeychain) overwrites on store
    9 - helper (osxkeychain) can forget host

The new API is compatible with credentials saved with the older API.

Signed-off-by: Bo Anderson &lt;mail@boanderson.me&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>completion: protect prompt against unset SHOWUPSTREAM in nounset mode</title>
<updated>2024-04-01T19:38:23Z</updated>
<author>
<name>Ville Skyttä</name>
<email>ville.skytta@iki.fi</email>
</author>
<published>2024-04-01T19:07:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d7805bc74351e61126e587a7470e3fbf843caf8a'/>
<id>urn:sha1:d7805bc74351e61126e587a7470e3fbf843caf8a</id>
<content type='text'>
As it stands, the only call site of `__git_ps1_show_upstream` checks
that the `GIT_PS1_SHOWUPSTREAM` variable is set, so this is effectively
a no-op. However, that might change, and chances of noticing the
unprotected use might not be that high when it does.

Signed-off-by: Ville Skyttä &lt;ville.skytta@iki.fi&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
