Notes start with a quieter mark; a spinner's last line prints once (closes #55) c07406bcc237
ui::note() prints a dimmed › (> in ASCII) instead of ℹ, which many terminal fonts draw as a boxed or emoji-style i. Spinner::done clears the spinner and prints the line as given: it used to add its own tick before callers' own, and left the cursor on that line, so the next line ran on. Deepened and Sparse filter set now carry their own tick, like the rest.
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-10-01 18:10 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
c07406bcc237fbf163579e502e8ee0e23a863060ce903c012072402f6a5ea500- Depends on
- 135212de5370 75167672ebcd 8fd78eb52ad2 94084087a876 b0461604ed98 fce44ae9ad29
- Depended on by
- 579afd107b9b 7026bd7dc5b8 d069701a4997 454236d1108d 33be24095b4b d45dab0484ea 614f55e14eee c71a5777509a 6a0008781d5e a46f3e4f50b1 bea00d4177c6 b35df36b7dc5 fddf64baa3d2 33472ccc08cc e226a6cc2f71 10b4fd430eab 1ec3f008e96a 3604179679eb
- In bookmarks
- agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
- In tags
- v0.10.0 v0.11.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
- Edits
- 11 atoms, 0 tree operations, 4 files
Browse the tree at this change
modified CHANGELOG.md +4 −0
| 1 | 1 | # Changelog |
|
| 2 | 2 | ||
| 3 | + | ## Unreleased |
|
| 4 | + | ||
| 5 | + | - **Quieter notes (#55).** Notes start with a dimmed `›` instead of `ℹ`, which many terminal fonts draw as a boxed or emoji-style "i". A spinner's final line no longer shows two ticks or runs into the next line. |
|
| 6 | + | ||
| 3 | 7 | ## 0.2.0 (2026-10-01) |
|
| 4 | 8 | ||
| 5 | 9 | Measured on the Linux kernel's tree (95 943 files); `docs/benchmarks.md` has the tables. |
|
| … | 30 unchanged lines |
modified src/cli/sync.rs +1 −1
| … | 608 unchanged lines |
||
| 609 | 609 | let n = repo.deepen(remote, depth)?; |
|
| 610 | 610 | sp.done(&format!( |
|
| 611 | 611 | "{} {}; {}", |
|
| 612 | - | ui::ok("Deepened by"), |
|
| 612 | + | ui::done("Deepened by"), |
|
| 613 | 613 | plural(n, "change"), |
|
| 614 | 614 | if repo.is_shallow() { |
|
| 615 | 615 | "still shallow".to_string() |
|
| … | 6 unchanged lines |
modified src/cli/ui.rs +7 −6
| … | 60 unchanged lines |
||
| 61 | 61 | ||
| 62 | 62 | /// An informational note prefix. |
|
| 63 | 63 | pub fn note() -> String { |
|
| 64 | - | dim(glyph("ℹ", "i")) |
|
| 64 | + | dim(glyph("›", ">")) |
|
| 65 | 65 | } |
|
| 66 | 66 | ||
| 67 | 67 | /// A section title. |
|
| … | 139 unchanged lines |
||
| 207 | 207 | bar.set_style( |
|
| 208 | 208 | ProgressStyle::with_template("{spinner:.cyan} {msg}") |
|
| 209 | 209 | .unwrap() |
|
| 210 | - | .tick_strings(&["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏", "✔"]), |
|
| 210 | + | .tick_strings(&["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏", " "]), |
|
| 211 | 211 | ); |
|
| 212 | 212 | bar.set_message(msg.to_string()); |
|
| 213 | 213 | bar.enable_steady_tick(Duration::from_millis(80)); |
|
| … | 1 unchanged lines |
||
| 215 | 215 | } |
|
| 216 | 216 | ||
| 217 | 217 | impl Spinner { |
|
| 218 | - | /// Replace the spinner with a final line (or print it plainly). |
|
| 218 | + | /// Replace the spinner with a final line (or print it plainly). The |
|
| 219 | + | /// line is printed as given: callers start it with their own mark. |
|
| 219 | 220 | pub fn done(self, msg: &str) { |
|
| 220 | - | match &self.bar { |
|
| 221 | - | Some(b) => b.finish_with_message(msg.to_string()), |
|
| 222 | - | None => println!("{msg}"), |
|
| 221 | + | if let Some(b) = &self.bar { |
|
| 222 | + | b.finish_and_clear(); |
|
| 223 | 223 | } |
|
| 224 | + | println!("{msg}"); |
|
| 224 | 225 | } |
|
| 225 | 226 | /// Clear the spinner without printing. |
|
| 226 | 227 | pub fn clear(self) { |
|
| … | 26 unchanged lines |
modified src/cli/workspace.rs +1 −1
| … | 1156 unchanged lines |
||
| 1157 | 1157 | let r = repo.checkout(&heads, true, "oxy sparse (checkout)")?; |
|
| 1158 | 1158 | sp.done(&format!( |
|
| 1159 | 1159 | "{} {}: {} written, {} removed", |
|
| 1160 | - | ui::ok("Sparse filter set to"), |
|
| 1160 | + | ui::done("Sparse filter set to"), |
|
| 1161 | 1161 | ui::path(paths.join(",")), |
|
| 1162 | 1162 | plural(r.written, "file"), |
|
| 1163 | 1163 | r.removed |
|
| … | 398 unchanged lines |