{"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: edits an added line in place and saves it to the file"},"to":{"k":"unit","s":"cli","n":"diffedit > edits an added line in place and saves it to the file"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a context line is editable and writes its file line"},"to":{"k":"unit","s":"cli","n":"diffedit > accepts an edit on a context line and writes it to the file line"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: the incremental highlighter recolors only edited lines"},"to":{"k":"unit","s":"cli","n":"diffedit > recolors only the edited line on an incremental update"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: newly removed lines use the complete old file"},"to":{"k":"unit","s":"cli","n":"diffedit > colors a newly removed line from the complete old file"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: stateful languages keep complete-file colors after edits"},"to":{"k":"unit","s":"cli","n":"diffedit > keeps complete-file colors after an edit in a stateful language"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a local string edit leaves surrounding template state intact"},"to":{"k":"unit","s":"cli","n":"diffedit > leaves the surrounding template state intact after a local string edit"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a local string edit retains same-line contextual colors"},"to":{"k":"unit","s":"cli","n":"diffedit > keeps same-line contextual colors after a local string edit"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: an edit beside a string escape updates later hunks"},"to":{"k":"unit","s":"cli","n":"diffedit > recolors later hunks after an edit beside a string escape"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: editing a context line shows it as a removed/added pair"},"to":{"k":"unit","s":"cli","n":"diffedit > shows an edited context line as a removed/added pair"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: undoing a context-line edit collapses the pair back"},"to":{"k":"unit","s":"cli","n":"diffedit > collapses the pair back to a context line when its edit is undone"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Enter at the start of a context line splits a blank line above it"},"to":{"k":"unit","s":"cli","n":"diffedit > inserts a blank added line above a context line on Enter at its start"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Enter in the middle of a context line splits it into a removed/added pair"},"to":{"k":"unit","s":"cli","n":"diffedit > splits a context line into a removed/added pair on Enter in its middle"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: the diff marker column is protected"},"to":{"k":"unit","s":"cli","n":"diffedit > refuses a deletion of the diff marker column"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a removed line is not editable"},"to":{"k":"unit","s":"cli","n":"diffedit > refuses an edit on a removed line"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: R resurrects a removed line and saves it back to the file"},"to":{"k":"unit","s":"cli","n":"diffedit > resurrects a removed line on `R` and saves it back to the file"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: R remains a typed character on an editable diff line"},"to":{"k":"unit","s":"cli","n":"diffedit > types `R` as a character on an editable diff line"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: resurrects one of several consecutive removed lines"},"to":{"k":"unit","s":"cli","n":"diffedit > resurrects one of several consecutive removed lines"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a header line is not editable"},"to":{"k":"unit","s":"cli","n":"diffedit > refuses an edit on a header line"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Enter adds a line and saving writes it into the file"},"to":{"k":"unit","s":"cli","n":"diffedit > adds a line on Enter and writes it into the file on save"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Backspace at a line's start removes it, and save drops it"},"to":{"k":"unit","s":"cli","n":"diffedit > removes a line on Backspace at its start and drops it from the file on save"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a forward delete that would join lines is refused"},"to":{"k":"unit","s":"cli","n":"diffedit > refuses a forward delete that would join lines"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a diff matching no file on disk is read-only"},"to":{"k":"unit","s":"cli","n":"diffedit > leaves a diff matching no file on disk read-only"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a dirty diff prompts on quit and s saves the file"},"to":{"k":"unit","s":"cli","n":"diffedit > prompts on quitting a dirty diff and saves the file on `s`"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a save writes and reports only files whose contents changed"},"to":{"k":"unit","s":"cli","n":"diffedit > writes and reports only the files whose contents changed on save"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: save reports exact zero- and two-file counts"},"to":{"k":"unit","s":"cli","n":"diffedit > reports exact zero- and two-file counts on save"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: save reports zero when the edited contents are already on disk"},"to":{"k":"unit","s":"cli","n":"diffedit > reports zero files saved when the edited contents are already on disk"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a later save can restore the contents captured at open"},"to":{"k":"unit","s":"cli","n":"diffedit > restores the contents captured at open on a later save"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a later save uses the hunk size produced by an insertion"},"to":{"k":"unit","s":"cli","n":"diffedit > uses the hunk size produced by an insertion on a later save"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: save refuses to overwrite a file changed after opening"},"to":{"k":"unit","s":"cli","n":"diffedit > refuses to overwrite a file changed after opening"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: quitting a multi-file diff lists the edited files above the prompt"},"to":{"k":"unit","s":"cli","n":"diffedit > lists the edited files above the prompt when quitting a multi-file diff"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: revert restores a single hunk, or everything"},"to":{"k":"unit","s":"cli","n":"diffedit > reverts a single hunk, or everything"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Ctrl-R then 'a' reverts all edits through the session"},"to":{"k":"unit","s":"cli","n":"diffedit > reverts all edits on Ctrl-R then `a`"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Ctrl-L reveals more of the file below the hunk"},"to":{"k":"unit","s":"cli","n":"diffedit > reveals more of the file below the hunk on Ctrl-L"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Ctrl-L reveals more of the file above the hunk"},"to":{"k":"unit","s":"cli","n":"diffedit > reveals more of the file above the hunk on Ctrl-L"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Ctrl-L expands context in pager mode (no text cursor)"},"to":{"k":"unit","s":"cli","n":"diffedit > expands context on Ctrl-L in pager mode, with no text cursor"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: the expansion marker appears only in pager navigation"},"to":{"k":"unit","s":"cli","n":"diffedit > shows the expansion marker only in pager navigation"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a wrapped hunk header keeps the expansion triangle on the body"},"to":{"k":"unit","s":"cli","n":"diffedit > keeps the expansion triangle on the body under a wrapped hunk header"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: adjacent metadata waits until its triangle is visible"},"to":{"k":"unit","s":"cli","n":"diffedit > marks adjacent metadata only once its triangle is visible"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: wrapped metadata does not reflow its triangle off-screen"},"to":{"k":"unit","s":"cli","n":"diffedit > hides wrapped metadata rather than reflowing its triangle off-screen"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: in pager mode Ctrl-L expands the selected hunk"},"to":{"k":"unit","s":"cli","n":"diffedit > expands the selected hunk on Ctrl-L in pager mode"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: pager Ctrl-L keeps the hunk header in view when expanding up from the top"},"to":{"k":"unit","s":"cli","n":"diffedit > keeps the hunk header in view when a pager Ctrl-L expands up from the top"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: pager Ctrl-L fills a short screen from the held edge"},"to":{"k":"unit","s":"cli","n":"diffedit > fills a short screen from the held edge on a pager Ctrl-L"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a whole-file selection uses the quarter-screen expansion target"},"to":{"k":"unit","s":"cli","n":"diffedit > uses the quarter-screen expansion target for a whole-file selection"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a pager expand keeps the selected node selected across the reparse"},"to":{"k":"unit","s":"cli","n":"diffedit > keeps the selected node selected across the reparse of a pager expand"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: an edit after expanding context saves without duplicating lines"},"to":{"k":"unit","s":"cli","n":"diffedit > saves an edit made after expanding context without duplicating lines"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: expanding context into the next hunk joins them and save stays correct"},"to":{"k":"unit","s":"cli","n":"diffedit > joins two hunks when context expands into the next one, and saves correctly"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: revert picks the right commit's section when a path repeats"},"to":{"k":"unit","s":"cli","n":"diffedit > reverts the right commit's section when a path repeats"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: editing an author's +line to match its -line keeps the pair"},"to":{"k":"unit","s":"cli","n":"diffedit > keeps the pair when an author's `+` line is edited to match its `-` line"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Enter on a context line adds a line without forging a -/+ pair"},"to":{"k":"unit","s":"cli","n":"diffedit > adds a line on Enter at the end of a context line without forging a `-`/`+` pair"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: down-expanding a hunk does not swallow a trailing blank separator"},"to":{"k":"unit","s":"cli","n":"diffedit > keeps a trailing blank separator outside a hunk expanded downward"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: after revert the cursor lands on an editable line, not a header"},"to":{"k":"unit","s":"cli","n":"diffedit > lands the cursor on an editable line, not a header, after a revert"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: undoing a context edit collapses even after moving the cursor away and back"},"to":{"k":"unit","s":"cli","n":"diffedit > collapses an undone context edit even after the cursor moved away and back"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: an edit-mode search leaves the full match set for normal-mode n/N"},"to":{"k":"unit","s":"cli","n":"diffedit > leaves the full match set for normal-mode `n`/`N` after an edit-mode search"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Ctrl-S search skips non-editable (removed) lines"},"to":{"k":"unit","s":"cli","n":"diffedit > skips removed lines in a Ctrl-S search"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: inserting a line grows the hunk count so no body line is dropped"},"to":{"k":"unit","s":"cli","n":"diffedit > grows the hunk count on an inserted line so no body line is dropped"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: expanding after an insert reveals the right file lines"},"to":{"k":"unit","s":"cli","n":"diffedit > reveals the right file lines when expanding after an insert"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: expanding after saving an insert reads the saved file"},"to":{"k":"unit","s":"cli","n":"diffedit > reads the saved file when expanding after saving an insert"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: insert + expand + edit then save writes the file correctly"},"to":{"k":"unit","s":"cli","n":"diffedit > writes the file correctly after an insert, an expand, and an edit"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: saving a git log -p diff does not absorb commit text or write a stale hunk"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > saves a `git log -p` diff without absorbing commit text or writing a stale hunk"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a hunk with no new-side anchor cannot resurrect a line"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > refuses to resurrect a line in a hunk with no new-side anchor"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a zero-count hunk expands down from its insertion point"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > expands a zero-count hunk down from its insertion point"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: an empty-file insertion point blocks a repeated blank range"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > blocks a repeated blank range at an empty-file insertion point"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a zero-count range cannot overlap a claimed blank file line"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > keeps a zero-count range from overlapping a claimed blank file line"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: removing the only addition restores a zero-count coordinate"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > restores a zero-count coordinate when the only addition is removed"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: resurrects the only line of an empty file without adding a final newline"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > resurrects the only line of an empty file without adding a final newline"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a CRLF diff does not add a carriage return to a no-newline line"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > adds no carriage return to a no-newline line from a CRLF diff"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: resurrection before a later addition keeps the final newline"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > keeps the final newline on a resurrection before a later addition"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: old-side no-newline metadata cannot trim later workspace lines"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > leaves later workspace lines untrimmed by old-side no-newline metadata"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: new-side no-newline metadata must match the workspace"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > leaves a hunk read-only when its new-side no-newline metadata differs from the workspace"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: resurrects a removed line in a CRLF diff"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > resurrects a removed line in a CRLF diff"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: resurrects within a CRLF file that has no final newline"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > resurrects within a CRLF file that has no final newline"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: joined CRLF hunks preserve a missing final newline"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > preserves a missing final newline across joined CRLF hunks"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: diff body text resembling file headers does not hide its hunk"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > keeps a hunk whose body text resembles file headers"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a repeated historical range cannot overwrite a resurrection"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > keeps a repeated historical range from overwriting a resurrection"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: context expansion stops before a repeated writable range"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > stops context expansion before a repeated writable range"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a blank (empty) diff line is not editable"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > refuses an edit on a blank diff line"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: editing a hunk with a blank context line saves without truncating the file"},"to":{"k":"unit","s":"cli","n":"diffedit > mapping hunks onto file lines > saves a hunk with a blank context line without truncating the file"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: refuses editing text before the diff (a commit-message subject)"},"to":{"k":"unit","s":"cli","n":"diffedit > a commit-message preamble > refuses an edit on the subject line before the diff"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: refuses editing a message body line, allows a hunk line"},"to":{"k":"unit","s":"cli","n":"diffedit > a commit-message preamble > refuses an edit on a message body line and accepts one on a hunk line"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: an edit-mode search skips the preamble to a savable line"},"to":{"k":"unit","s":"cli","n":"diffedit > a commit-message preamble > skips the preamble to a savable line in an edit-mode search"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: the HEAD commit's message is editable; save prompts then amends"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > accepts an edit to the HEAD commit's message, then prompts and amends on save"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a commit with no file diff can amend its message"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > amends the message of a commit with no file diff"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: the amend prompt offers explicit save actions"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > offers explicit save actions in the amend prompt"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: saving files only leaves a message edit unsaved"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > leaves a message edit unsaved when saving files only"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: saving files only can complete a pending quit"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > completes a pending quit when saving files only"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a failed amend restores files written by the save"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > restores the files written by the save when the amend fails"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: save refuses a selected workspace file that disappeared"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > refuses to save when a selected workspace file disappeared"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: failed amend accepts a file already restored by the Git runner"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > accepts a file the Git runner already restored when the amend fails"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: reports an error while reading a file for rollback"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > reports an error while reading a file for rollback"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a failed amend preserves a file changed during the amend"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > preserves a file changed during a failed amend"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: Enter in a message adds another indented line"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > adds another indented message line on Enter"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a non-HEAD commit's message is not editable"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > refuses an edit to a non-HEAD commit's message"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a blank line before the first commit has no commit owner"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > returns `null` from `notEditableMessage()` for a blank line before the first commit"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: refuses to amend after the represented commit header is removed"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > refuses to amend after the represented commit header is removed"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: refuses to amend after HEAD switches branches"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > refuses to amend after HEAD switches branches"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: refuses to amend a selected path missing from the shown commit"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > refuses to amend a selected path missing from the shown commit"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: editing only a hunk prompts and amends the file into the commit"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > prompts and amends the file into the commit when only a hunk is edited"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: saving edited git show output amends the real HEAD tree"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > amends the real HEAD tree when edited `git show` output is saved"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a hunk-only amend preserves the raw commit message"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > preserves the raw commit message on a hunk-only amend"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: abbreviated, compact, and email formats amend hunk edits"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > amends hunk edits shown in abbreviated, compact, and email formats"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: standard and compact views skip email ownership checks"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > skips email ownership checks for standard and compact views"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: consecutive compact commits keep historical hunk ownership"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > keeps historical hunk ownership across consecutive compact commits"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: consecutive email commits keep historical hunk ownership"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > keeps historical hunk ownership across consecutive email commits"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a CRLF commit preamble keeps an LF-normalized message"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > keeps an LF-normalized message from a CRLF commit preamble"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: an empty-message commit amends when its hunk changes"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > amends an empty-message commit when its hunk changes"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: later hunk saves retain earlier amendments in the same file"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > retains earlier amendments in the same file across later hunk saves"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: editing a HEAD hunk does not amend a matching historical hunk"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > leaves a matching historical hunk alone when a HEAD hunk is edited"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a historical insertion does not shift a later HEAD amend"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > keeps a later HEAD amend in place after a historical insertion"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: expanded workspace context stays outside the amended commit"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > keeps expanded workspace context outside the amended commit"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: an amend excludes unrelated same-file edits and preserves their staged state"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > excludes unrelated same-file edits from an amend and preserves their staged state"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: quitting with an edited message confirms the save then the amend, then quits"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > confirms the save, then the amend, then quits when quitting with an edited message"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: with no git runner the message is not editable"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > refuses a message edit with no git runner"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: refuses to amend an all-blank commit message"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > refuses to amend an all-blank commit message"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: refuses to amend when every commit-message line is deleted"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > refuses to amend when every commit-message line is deleted"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a SHA-256 repository's commit message is editable and amends"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > accepts and amends an edit to a SHA-256 repository's commit message"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: does not amend (or write files) when HEAD moved since the diff was shown"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > amends nothing and writes no file when HEAD moved since the diff was shown"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: quitting after a message-only edit names the message, not files"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > names the message, not files, when quitting after a message-only edit"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"revert: in a hunk offers hunk and file, not message"},"to":{"k":"unit","s":"cli","n":"diffedit > the revert prompt > offers hunk and file, not message, in a hunk"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"revert: Enter does nothing on a diff revert (no default button)"},"to":{"k":"unit","s":"cli","n":"diffedit > the revert prompt > does nothing on Enter, having no default button"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"revert: with no default button, Tab focuses the first scope, Shift-Tab the last"},"to":{"k":"unit","s":"cli","n":"diffedit > the revert prompt > focuses the first scope on Tab and the last button on Shift-Tab, with no default button"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"revert: on a file header offers file but not hunk"},"to":{"k":"unit","s":"cli","n":"diffedit > the revert prompt > offers file but not hunk on a file header"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"revert: in the commit preamble offers only all"},"to":{"k":"unit","s":"cli","n":"diffedit > the revert prompt > offers only all in the commit preamble"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"revert: in the commit message offers message, and m restores it"},"to":{"k":"unit","s":"cli","n":"diffedit > the revert prompt > offers message in the commit message, and restores it on `m`"}} {"date":"2026-09-08","from":{"k":"unit","s":"cli","n":"diffedit: a commit view saves through clean and textconv filters"},"to":{"k":"unit","s":"cli","n":"diffedit > amending the HEAD commit > saves a commit view through clean and textconv filters"}}