<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/path.c, branch gitk-resize-error</title>
<subtitle>Fork of git SCM with my patches.</subtitle>
<id>http://git.kilabit.info/git/atom?h=gitk-resize-error</id>
<link rel='self' href='http://git.kilabit.info/git/atom?h=gitk-resize-error'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/'/>
<updated>2021-09-20T22:20:40Z</updated>
<entry>
<title>Merge branch 'lh/systemd-timers'</title>
<updated>2021-09-20T22:20:40Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-09-20T22:20:40Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=ed8794ef7ae9f345ab88c6f1ee728e06fc7b8ce4'/>
<id>urn:sha1:ed8794ef7ae9f345ab88c6f1ee728e06fc7b8ce4</id>
<content type='text'>
"git maintenance" scheduler learned to use systemd timers as a
possible backend.

* lh/systemd-timers:
  maintenance: add support for systemd timers on Linux
  maintenance: `git maintenance run` learned `--scheduler=&lt;scheduler&gt;`
  cache.h: Introduce a generic "xdg_config_home_for(…)" function
</content>
</entry>
<entry>
<title>cache.h: Introduce a generic "xdg_config_home_for(…)" function</title>
<updated>2021-09-07T17:57:04Z</updated>
<author>
<name>Lénaïc Huard</name>
<email>lenaic@lhuard.fr</email>
</author>
<published>2021-09-04T20:54:58Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=cb7db5bbd56f587a35c1861282c46d424fee0b38'/>
<id>urn:sha1:cb7db5bbd56f587a35c1861282c46d424fee0b38</id>
<content type='text'>
Current implementation of `xdg_config_home(filename)` returns
`$XDG_CONFIG_HOME/git/$filename`, with the `git` subdirectory inserted
between the `XDG_CONFIG_HOME` environment variable and the parameter.

This patch introduces a `xdg_config_home_for(subdir, filename)` function
which is more generic. It only concatenates "$XDG_CONFIG_HOME", or
"$HOME/.config" if the former isn’t defined, with the parameters,
without adding `git` in between.

`xdg_config_home(filename)` is now implemented by calling
`xdg_config_home_for("git", filename)` but this new generic function can
be used to compute the configuration directory of other programs.

Signed-off-by: Lénaïc Huard &lt;lenaic@lhuard.fr&gt;
Acked-by: Derrick Stolee &lt;dstolee@microsoft.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>interpolate_path(): allow specifying paths relative to the runtime prefix</title>
<updated>2021-07-26T19:17:16Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2021-07-24T22:06:53Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=e394a16023cbb62784e380f70ad8a833fb960d68'/>
<id>urn:sha1:e394a16023cbb62784e380f70ad8a833fb960d68</id>
<content type='text'>
Ever since Git learned to detect its install location at runtime, there
was the slightly awkward problem that it was impossible to specify paths
relative to said location.

For example, if a version of Git was shipped with custom SSL
certificates to use, there was no portable way to specify
`http.sslCAInfo`.

In Git for Windows, the problem was "solved" for years by interpreting
paths starting with a slash as relative to the runtime prefix.

However, this is not correct: such paths _are_ legal on Windows, and
they are interpreted as absolute paths in the same drive as the current
directory.

After a lengthy discussion, and an even lengthier time to mull over the
problem and its best solution, and then more discussions, we eventually
decided to introduce support for the magic sequence `%(prefix)/`. If a
path starts with this, the remainder is interpreted as relative to the
detected (runtime) prefix. If built without runtime prefix support, Git
will simply interpolate the compiled-in prefix.

If a user _wants_ to specify a path starting with the magic sequence,
they can prefix the magic sequence with `./` and voilà, the path won't
be expanded.

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>Use a better name for the function interpolating paths</title>
<updated>2021-07-26T19:17:16Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2021-07-24T22:06:52Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=a03b097d6307763c6778f5a1f194fbcbd158a5f7'/>
<id>urn:sha1:a03b097d6307763c6778f5a1f194fbcbd158a5f7</id>
<content type='text'>
It is not immediately clear what `expand_user_path()` means, so let's
rename it to `interpolate_path()`. This also opens the path for
interpolating more than just a home directory.

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>expand_user_path(): clarify the role of the `real_home` parameter</title>
<updated>2021-07-26T19:17:16Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2021-07-24T22:06:51Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=644e6b2c0f55fa52de88586d375e03ac7f7914b7'/>
<id>urn:sha1:644e6b2c0f55fa52de88586d375e03ac7f7914b7</id>
<content type='text'>
The `real_home` parameter only has an effect when expanding paths
starting with `~/`, not when expanding paths starting with `~&lt;user&gt;/`.
Let's make that clear.

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>expand_user_path(): remove stale part of the comment</title>
<updated>2021-07-26T19:17:16Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2021-07-24T22:06:50Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=789f6f226b6c7a5b28468044c1705c62aef5eeb9'/>
<id>urn:sha1:789f6f226b6c7a5b28468044c1705c62aef5eeb9</id>
<content type='text'>
In 395de250d9d (Expand ~ and ~user in core.excludesfile,
commit.template, 2009-11-17), the `user_path()` function was refactored
into the `expand_user_path()`. During that refactoring, the `buf`
parameter was lost, but the code comment above said function still talks
about it. Let's remove that stale part of the comment.

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>t0060: test ntfs/hfs-obscured dotfiles</title>
<updated>2021-05-04T02:52:02Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2021-05-03T20:43:22Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=801ed010bf13465bf67608beabbaa1ec2550204f'/>
<id>urn:sha1:801ed010bf13465bf67608beabbaa1ec2550204f</id>
<content type='text'>
We have tests that cover various filesystem-specific spellings of
".gitmodules", because we need to reliably identify that path for some
security checks. These are from dc2d9ba318 (is_{hfs,ntfs}_dotgitmodules:
add tests, 2018-05-12), with the actual code coming from e7cb0b4455
(is_ntfs_dotgit: match other .git files, 2018-05-11) and 0fc333ba20
(is_hfs_dotgit: match other .git files, 2018-05-02).

Those latter two commits also added similar matching functions for
.gitattributes and .gitignore. These ended up not being used in the
final series, and are currently dead code. But in preparation for them
being used in some fsck checks, let's make sure they actually work by
throwing a few basic tests at them. Likewise, let's cover .mailmap
(which does need matching code added).

I didn't bother with the whole battery of tests that we cover for
.gitmodules. These functions are all based on the same generic matcher,
so it's sufficient to test most of the corner cases just once.

Note that the ntfs magic prefix names in the tests come from the
algorithm described in e7cb0b4455 (and are different for each file).

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>merge-ort: write $GIT_DIR/AUTO_MERGE whenever we hit a conflict</title>
<updated>2021-03-20T19:35:40Z</updated>
<author>
<name>Elijah Newren</name>
<email>newren@gmail.com</email>
</author>
<published>2021-03-20T00:03:52Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=5291828df8386ebeb01039d1403d9f845d2f6e20'/>
<id>urn:sha1:5291828df8386ebeb01039d1403d9f845d2f6e20</id>
<content type='text'>
There are a variety of questions users might ask while resolving
conflicts:
  * What changes have been made since the previous (first) parent?
  * What changes are staged?
  * What is still unstaged? (or what is still conflicted?)
  * What changes did I make to resolve conflicts so far?
The first three of these have simple answers:
  * git diff HEAD
  * git diff --cached
  * git diff
There was no way to answer the final question previously.  Adding one
is trivial in merge-ort, since it works by creating a tree representing
what should be written to the working copy complete with conflict
markers.  Simply write that tree to .git/AUTO_MERGE, allowing users to
answer the fourth question with
  * git diff AUTO_MERGE

I avoided using a name like "MERGE_AUTO", because that would be
merge-specific (much like MERGE_HEAD, REBASE_HEAD, REVERT_HEAD,
CHERRY_PICK_HEAD) and I wanted a name that didn't change depending on
which type of operation the merge was part of.

Ensure that paths which clean out other temporary operation-specific
files (e.g. CHERRY_PICK_HEAD, MERGE_MSG, rebase-merge/ state directory)
also clean out this AUTO_MERGE file.

Signed-off-by: Elijah Newren &lt;newren@gmail.com&gt;
Reviewed-by: Derrick Stolee &lt;dstolee@microsoft.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>sequencer: treat REVERT_HEAD as a pseudo ref</title>
<updated>2020-08-21T18:20:11Z</updated>
<author>
<name>Han-Wen Nienhuys</name>
<email>hanwen@google.com</email>
</author>
<published>2020-08-21T16:59:37Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=b8825ef233840136bd01a9619b36af515f498eb2'/>
<id>urn:sha1:b8825ef233840136bd01a9619b36af515f498eb2</id>
<content type='text'>
Signed-off-by: Han-Wen Nienhuys &lt;hanwen@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>sequencer: treat CHERRY_PICK_HEAD as a pseudo ref</title>
<updated>2020-08-21T18:20:10Z</updated>
<author>
<name>Han-Wen Nienhuys</name>
<email>hanwen@google.com</email>
</author>
<published>2020-08-21T16:59:35Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=c8e4159efd226218d827b5da71fc8f95f8172412'/>
<id>urn:sha1:c8e4159efd226218d827b5da71fc8f95f8172412</id>
<content type='text'>
Check for existence and delete CHERRY_PICK_HEAD through ref functions.
This will help cherry-pick work with alternate ref storage backends.

Signed-off-by: Han-Wen Nienhuys &lt;hanwen@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
