<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git-sonar, branch master</title>
<subtitle>A heads up display for git</subtitle>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/'/>
<entry>
<title>Fix default gray prompt color</title>
<updated>2026-05-26T06:12:36+00:00</updated>
<author>
<name>Matt Hunter</name>
<email>m@lfurio.us</email>
</author>
<published>2026-05-24T23:04:01+00:00</published>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/commit/?id=33b795656240bbcfa9e9548307c2087fb14b92d1'/>
<id>33b795656240bbcfa9e9548307c2087fb14b92d1</id>
<content type='text'>
The gray color for 'git:(' ')' which surrounds the branch information in
the default prompt was originally chosen for its appearance in the macos
terminal, which I believe renders bold colors as bright.  My own
terminal emulator also renders bold colors this way.

"Bold bright black" is the intended color for this value, but on many
other terminals it appears as a very dark and unreadable bit of text.
So make the correct color explicit by using black from the bright range
of colors (90).

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The gray color for 'git:(' ')' which surrounds the branch information in
the default prompt was originally chosen for its appearance in the macos
terminal, which I believe renders bold colors as bright.  My own
terminal emulator also renders bold colors this way.

"Bold bright black" is the intended color for this value, but on many
other terminals it appears as a very dark and unreadable bit of text.
So make the correct color explicit by using black from the bright range
of colors (90).

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add configuration variables for default unprintable markers</title>
<updated>2026-05-26T06:12:36+00:00</updated>
<author>
<name>Matt Hunter</name>
<email>m@lfurio.us</email>
</author>
<published>2026-05-19T04:12:42+00:00</published>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/commit/?id=990756613eb965164025a47caf39893541577c80'/>
<id>990756613eb965164025a47caf39893541577c80</id>
<content type='text'>
Add GIT_SONAR_COLOR_PREFIX and GIT_SONAR_COLOR_SUFFIX, which control the
shell prompt unprintable character markers used by default color codes
in git-sonar.  These are added as a convenience so that a user on zsh,
for example, doesn't need to redefine every color setting when the only
thing they need to replace is the \001 and \002.

This is similar to the old shell options (--bash, --zsh, --fish) from
git-radar, but is open-ended so that the user may configure exactly what
is needed for any old shell, without the need to teach git-sonar
specific details in advance.  See also c4da5e91d053 ("Merge
bash/zsh/fish color modes together").

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add GIT_SONAR_COLOR_PREFIX and GIT_SONAR_COLOR_SUFFIX, which control the
shell prompt unprintable character markers used by default color codes
in git-sonar.  These are added as a convenience so that a user on zsh,
for example, doesn't need to redefine every color setting when the only
thing they need to replace is the \001 and \002.

This is similar to the old shell options (--bash, --zsh, --fish) from
git-radar, but is open-ended so that the user may configure exactly what
is needed for any old shell, without the need to teach git-sonar
specific details in advance.  See also c4da5e91d053 ("Merge
bash/zsh/fish color modes together").

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright years</title>
<updated>2026-05-16T22:12:40+00:00</updated>
<author>
<name>Matt Hunter</name>
<email>m@lfurio.us</email>
</author>
<published>2026-05-16T22:12:40+00:00</published>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/commit/?id=20f9ba83c20ad27c1b24f1b48e2f4c1ad38ef9ac'/>
<id>20f9ba83c20ad27c1b24f1b48e2f4c1ad38ef9ac</id>
<content type='text'>
Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow custom branch color for detached HEAD</title>
<updated>2026-05-16T22:00:17+00:00</updated>
<author>
<name>Matt Hunter</name>
<email>m@lfurio.us</email>
</author>
<published>2026-05-16T22:00:17+00:00</published>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/commit/?id=0149e7ec00f08486c672e357ac409dbef0858c13'/>
<id>0149e7ec00f08486c672e357ac409dbef0858c13</id>
<content type='text'>
Add an additional config variable 'GIT_SONAR_DETACHED_COLOR', which is
used to color the %{branch} element when on a detached HEAD.  Both
"branch color" and "detached color" default to uncolored, but may now be
configured independently.

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add an additional config variable 'GIT_SONAR_DETACHED_COLOR', which is
used to color the %{branch} element when on a detached HEAD.  Both
"branch color" and "detached color" default to uncolored, but may now be
configured independently.

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow configurable color reset code</title>
<updated>2026-05-16T21:47:48+00:00</updated>
<author>
<name>Matt Hunter</name>
<email>m@lfurio.us</email>
</author>
<published>2026-05-16T21:47:48+00:00</published>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/commit/?id=c607f9c93c0ecb41994a91b4cfebda4efcce7d9e'/>
<id>c607f9c93c0ecb41994a91b4cfebda4efcce7d9e</id>
<content type='text'>
I found the original context behind why git-radar had custom color reset
codes.  It sums up to playing more nicely with a background color, such
as something used in a "power line" style prompt.  This use-case makes
sense, so re-introduce a config variable to control this.

We still don't need an individual reset value for each prompt element,
so keep it to the single general one, defaulted to \033[0m.

Link: https://github.com/michaeldfallen/git-radar/issues/14
Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I found the original context behind why git-radar had custom color reset
codes.  It sums up to playing more nicely with a background color, such
as something used in a "power line" style prompt.  This use-case makes
sense, so re-introduce a config variable to control this.

We still don't need an individual reset value for each prompt element,
so keep it to the single general one, defaulted to \033[0m.

Link: https://github.com/michaeldfallen/git-radar/issues/14
Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Escape backslashes for \001 and \002 bytes</title>
<updated>2026-05-13T12:57:21+00:00</updated>
<author>
<name>Matt Hunter</name>
<email>m@lfurio.us</email>
</author>
<published>2026-05-13T12:57:21+00:00</published>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/commit/?id=f8eaa83cb1ee52ae742e15d91d863247cc37e48a'/>
<id>f8eaa83cb1ee52ae742e15d91d863247cc37e48a</id>
<content type='text'>
There are some contexts/shells in which the extra escape character is
necessary, so fixup the color constants in git-sonar.  Doing so doesn't
break any current use-cases.

User overrides may or may not need to do the same.

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are some contexts/shells in which the extra escape character is
necessary, so fixup the color constants in git-sonar.  Doing so doesn't
break any current use-cases.

User overrides may or may not need to do the same.

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Reword some comments</title>
<updated>2026-05-13T12:48:42+00:00</updated>
<author>
<name>Matt Hunter</name>
<email>m@lfurio.us</email>
</author>
<published>2026-05-13T12:48:42+00:00</published>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/commit/?id=b41a90b58fe974cf3e2418c1b19c505d8d187371'/>
<id>b41a90b58fe974cf3e2418c1b19c505d8d187371</id>
<content type='text'>
Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>precheck: Improve bisect detection</title>
<updated>2026-05-10T08:47:01+00:00</updated>
<author>
<name>Matt Hunter</name>
<email>m@lfurio.us</email>
</author>
<published>2026-05-10T07:08:00+00:00</published>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/commit/?id=2fb1cc17f0c57f3f482791390e6c81eb5f906bc9'/>
<id>2fb1cc17f0c57f3f482791390e6c81eb5f906bc9</id>
<content type='text'>
After a bisect session begins and up until the first 'bad' and 'good'
revisions are identified, BISECT_EXPECTED_REV is undefined, and the
freshly started session goes undetected by git-precheck.

Among a few potential alternatives, BISECT_START is a better signal, as
it covers this gap and exists for the entire duration of a session -
from 'git bisect start' to 'git bisect reset'.

The file-based detection paradigm makes this choice more obvious.

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After a bisect session begins and up until the first 'bad' and 'good'
revisions are identified, BISECT_EXPECTED_REV is undefined, and the
freshly started session goes undetected by git-precheck.

Among a few potential alternatives, BISECT_START is a better signal, as
it covers this gap and exists for the entire duration of a session -
from 'git bisect start' to 'git bisect reset'.

The file-based detection paradigm makes this choice more obvious.

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>precheck: Always use lower-case messages</title>
<updated>2026-05-10T08:47:01+00:00</updated>
<author>
<name>Matt Hunter</name>
<email>m@lfurio.us</email>
</author>
<published>2026-05-10T07:05:00+00:00</published>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/commit/?id=1f17dcae1373968bed8c6e904c905566a45204ec'/>
<id>1f17dcae1373968bed8c6e904c905566a45204ec</id>
<content type='text'>
Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>precheck: Switch to file-based detection and report all conditions</title>
<updated>2026-05-10T08:47:01+00:00</updated>
<author>
<name>Matt Hunter</name>
<email>m@lfurio.us</email>
</author>
<published>2026-05-10T04:55:48+00:00</published>
<link rel='alternate' type='text/html' href='http://normalmode.org/malf/x/git-sonar/commit/?id=e20e27ffa8a048068fd8d66b2b6a5bc90d91452b'/>
<id>e20e27ffa8a048068fd8d66b2b6a5bc90d91452b</id>
<content type='text'>
Detect all ongoing git conditions by checking for the existence of some
file or directory within the .git folder.  This eliminates the previous
git rev-parse --verify commands, which should be a slight boost to
performance.  Furthermore, the implementation of rebase detection is no
longer a special case.

Also, restructure the script such that all applicable conditions are
reported when run, not just the first we detect.  The script exit code
reflects the highest value of the active conditions.  Though, as an
optimization, still exit on the first found when --quiet is in effect.

The script is cleaned up as well.  In some cases style is changed to
better match the current state of git-sonar.  git-status is now only
called once and cached for both dirty and untracked detection.

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Detect all ongoing git conditions by checking for the existence of some
file or directory within the .git folder.  This eliminates the previous
git rev-parse --verify commands, which should be a slight boost to
performance.  Furthermore, the implementation of rebase detection is no
longer a special case.

Also, restructure the script such that all applicable conditions are
reported when run, not just the first we detect.  The script exit code
reflects the highest value of the active conditions.  Though, as an
optimization, still exit on the first found when --quiet is in effect.

The script is cleaned up as well.  In some cases style is changed to
better match the current state of git-sonar.  git-status is now only
called once and cached for both dirty and untracked detection.

Signed-off-by: Matt Hunter &lt;m@lfurio.us&gt;
</pre>
</div>
</content>
</entry>
</feed>
