Skip to content

Commit

Permalink
cli: color author and commiter names yellow
Browse files Browse the repository at this point in the history
When `format_short_signature(signature)` is set to `signature.name()` the author names are not yellow like other signature types (eg email and username). When the commit signatures have no colors, they blend in making it hard to distinguish between signatures and commit messages.

If just `name` were set to `yellow`, just like email and username, it affects the colorization of branch names making them also yellow despite them being designated as magenta. Setting `author` and `committer` to `yellow` is specific enough to allow branches to keep their colors while still coloring signature names. This is known to affect signatures in both 'log' and 'show'.
  • Loading branch information
qubitz committed Sep 29, 2024
1 parent 64e1ae2 commit 3e18d93
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 18 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
to keeping all changes into the first commit while keeping the current commit
description for the second commit (the newly created empty one).

* Color author and committer names yellow

### Fixed bugs

* Update working copy before reporting changes. This prevents errors during reporting
Expand Down
7 changes: 4 additions & 3 deletions cli/src/config/colors.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
"divergent prefix" = { fg = "red", underline = true }
"hidden prefix" = "default"

"email" = "yellow"
"username" = "yellow"
"author" = "yellow"
"committer" = "yellow"
"timestamp" = "cyan"
"working_copies" = "green"
"bookmark" = "magenta"
Expand Down Expand Up @@ -54,7 +54,8 @@
"working_copy change_id" = "bright magenta"
# We do not use bright yellow because of how it looks on xterm's default theme.
# https://github.com/martinvonz/jj/issues/528
"working_copy email" = "yellow"
"working_copy author" = "yellow"
"working_copy committer" = "yellow"
"working_copy timestamp" = "bright cyan"
"working_copy working_copies" = "bright green"
"working_copy bookmark" = "bright magenta"
Expand Down
8 changes: 4 additions & 4 deletions cli/tests/test_commit_template.rs
Original file line number Diff line number Diff line change
Expand Up @@ -346,8 +346,8 @@ fn test_log_builtin_templates_colored() {
○ Commit ID: 230dd059e1b059aefc0da06a2e5a7dbf22362f22
│ Change ID: qpvuntsmwlqtpsluzzsnyyzlmlwvmlnu
│ Author: Test User <[38;5;[email protected][39m> ([38;5;6m2001-02-03 08:05:07[39m)
│ Committer: Test User <[38;5;[email protected][39m> ([38;5;6m2001-02-03 08:05:07[39m)
│ Author: [38;5;3mTest User[39m <[38;5;[email protected][39m> ([38;5;6m2001-02-03 08:05:07[39m)
│ Committer: [38;5;3mTest User[39m <[38;5;[email protected][39m> ([38;5;6m2001-02-03 08:05:07[39m)
│  (no description set)
Expand Down Expand Up @@ -415,8 +415,8 @@ fn test_log_builtin_templates_colored_debug() {
│ <<log::>>
<<node::○>> <<log::Commit ID: >><<log commit_id::230dd059e1b059aefc0da06a2e5a7dbf22362f22>><<log::>>
│ <<log::Change ID: >><<log change_id::qpvuntsmwlqtpsluzzsnyyzlmlwvmlnu>><<log::>>
│ <<log::Author: >><<log author name::Test User>><<log:: <>>[38;5;3m<<log author email::[email protected]>>[39m<<log::> (>>[38;5;6m<<log author timestamp local format::2001-02-03 08:05:07>>[39m<<log::)>>
│ <<log::Committer: >><<log committer name::Test User>><<log:: <>>[38;5;3m<<log committer email::[email protected]>>[39m<<log::> (>>[38;5;6m<<log committer timestamp local format::2001-02-03 08:05:07>>[39m<<log::)>>
│ <<log::Author: >>[38;5;3m<<log author name::Test User>>[39m<<log:: <>>[38;5;3m<<log author email::[email protected]>>[39m<<log::> (>>[38;5;6m<<log author timestamp local format::2001-02-03 08:05:07>>[39m<<log::)>>
│ <<log::Committer: >>[38;5;3m<<log committer name::Test User>>[39m<<log:: <>>[38;5;3m<<log committer email::[email protected]>>[39m<<log::> (>>[38;5;6m<<log committer timestamp local format::2001-02-03 08:05:07>>[39m<<log::)>>
│ <<log::>>
│ <<log empty description placeholder:: (no description set)>><<log::>>
│ <<log::>>
Expand Down
6 changes: 3 additions & 3 deletions cli/tests/test_fix_command.rs
Original file line number Diff line number Diff line change
Expand Up @@ -918,18 +918,18 @@ fn test_fix_file_types() {

let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["fix", "-s", "@"]);
insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(redact(&stderr), @r###"
insta::assert_snapshot!(redact(&stderr), @r#"
Warning: The `fix.tool-command` config option is deprecated and will be removed in a future version.
Hint: Replace it with the following:
[fix.tools.legacy-tool-command]
command = [<redacted formatter path>, "--uppercase"]
patterns = ["all()"]
Fixed 1 commits of 1 checked.
Working copy now at: qpvuntsm 6836a9e4 (no description set)
Working copy now at: qpvuntsm 1f9b1ce4 (no description set)
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
Added 0 files, modified 1 files, removed 0 files
"###);
"#);
let content = test_env.jj_cmd_success(&repo_path, &["file", "show", "file", "-r", "@"]);
insta::assert_snapshot!(content, @"CONTENT");
}
Expand Down
16 changes: 8 additions & 8 deletions cli/tests/test_show_command.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,11 @@ fn test_show_basic() {
"###);

let stdout = test_env.jj_cmd_success(&repo_path, &["show", "--color=debug"]);
insta::assert_snapshot!(stdout, @r###"
insta::assert_snapshot!(stdout, @r#"
Commit ID: <<commit_id::e34f04317a81edc6ba41fef239c0d0180f10656f>>
Change ID: <<change_id::rlvkpnrzqnoowoytxnquwvuryrwnrmlp>>
Author: <<author name::Test User>> <[38;5;3m<<author email::[email protected]>>[39m> ([38;5;6m<<author timestamp local format::2001-02-03 08:05:09>>[39m)
Committer: <<committer name::Test User>> <[38;5;3m<<committer email::[email protected]>>[39m> ([38;5;6m<<committer timestamp local format::2001-02-03 08:05:09>>[39m)
Author: [38;5;3m<<author name::Test User>>[39m <[38;5;3m<<author email::[email protected]>>[39m> ([38;5;6m<<author timestamp local format::2001-02-03 08:05:09>>[39m)
Committer: [38;5;3m<<committer name::Test User>>[39m <[38;5;3m<<committer email::[email protected]>>[39m> ([38;5;6m<<committer timestamp local format::2001-02-03 08:05:09>>[39m)
<<description placeholder:: (no description set)>>
Expand All @@ -93,7 +93,7 @@ fn test_show_basic() {
<<diff:: >><<diff added line_number:: 2>><<diff::: >><<diff added token::bar>>
<<diff removed line_number:: 2>><<diff:: >><<diff added line_number:: 3>><<diff::: baz >><<diff removed token::qux>><<diff added token::quux>><<diff::>>
<<diff header::Modified regular file file3 (file1 => file3):>>
"###);
"#);

let stdout = test_env.jj_cmd_success(&repo_path, &["show", "-s"]);
insta::assert_snapshot!(stdout, @r###"
Expand Down Expand Up @@ -167,11 +167,11 @@ fn test_show_basic() {
"###);

let stdout = test_env.jj_cmd_success(&repo_path, &["show", "--git", "--color=debug"]);
insta::assert_snapshot!(stdout, @r###"
insta::assert_snapshot!(stdout, @r#"
Commit ID: <<commit_id::e34f04317a81edc6ba41fef239c0d0180f10656f>>
Change ID: <<change_id::rlvkpnrzqnoowoytxnquwvuryrwnrmlp>>
Author: <<author name::Test User>> <[38;5;3m<<author email::[email protected]>>[39m> ([38;5;6m<<author timestamp local format::2001-02-03 08:05:09>>[39m)
Committer: <<committer name::Test User>> <[38;5;3m<<committer email::[email protected]>>[39m> ([38;5;6m<<committer timestamp local format::2001-02-03 08:05:09>>[39m)
Author: [38;5;3m<<author name::Test User>>[39m <[38;5;3m<<author email::[email protected]>>[39m> ([38;5;6m<<author timestamp local format::2001-02-03 08:05:09>>[39m)
Committer: [38;5;3m<<committer name::Test User>>[39m <[38;5;3m<<committer email::[email protected]>>[39m> ([38;5;6m<<committer timestamp local format::2001-02-03 08:05:09>>[39m)
<<description placeholder:: (no description set)>>
Expand All @@ -187,7 +187,7 @@ fn test_show_basic() {
<<diff file_header::diff --git a/file1 b/file3>>
<<diff file_header::rename from file1>>
<<diff file_header::rename to file3>>
"###);
"#);

let stdout = test_env.jj_cmd_success(&repo_path, &["show", "-s", "--git"]);
insta::assert_snapshot!(stdout, @r###"
Expand Down

0 comments on commit 3e18d93

Please sign in to comment.