Skip to content

Releases: michael-reichenauer/gmd

Version 1.13.1450.1146

Choose a tag to compare

@github-actions github-actions released this 19 Oct 19:17
  • Draw in colors of gmd's own, on Terminal.Gui 2.5: twelve branch colors, a dark or a light palette picked by the terminal's background, or the terminal's own 16 colors, set with Colors in the Config dialog
  • Color the code in the diff, the blame and the conflict resolver by its language, as VS Code's Dark+ and Light+ do, for some fifty languages; Config turns it off
  • Keep the color a branch is first drawn in, picked unlike its parent's and those of the branches beside it, so that showing, hiding, pushing or merging branches never changes it
  • Draw emoji in subjects as themselves
  • Amend, drop and squash commits already pushed, and push the branch with force along with it, asked first on main, develop or a release branch, or for someone else's commits
  • Push a branch with force when p asks, after a squash, an amend or a rebase of its pushed commits, made here or by an agent, rather than pull back the old version origin still has
  • Rebase and Push onto is Rebase onto, which asks whether to push with force too
  • Move commits made on the wrong branch, e.g. main, to a new one with Move to New Branch in the commit menu, and a commit above or below the one beside it with Reorder
  • Start a squash's message with the oldest commit's, the others listed below it, as GitHub writes a squash merge
  • Cherry pick the commits selected with Shift-↑↓ as they were made, authors kept, and take them back with one Undo
  • Reset the current branch to any commit, keeping the changes uncommitted or discarding them, from the commit menu's Undo
  • Offer Abort Merge, Abort Rebase and so on first in the commit menu's Undo while one is in progress
  • Mark a branch squash or rebase merged on origin with ✓, and delete the local branches merged into main, by a squash on origin too, with Delete Merged Branches in the repo menu
  • Tell a branch deleted on origin from one never pushed, so that p no longer publishes it again unasked
  • Resolve all the conflicted files of a merge, rebase or other operation in one view, the next file opening in it, the decisions not saved kept for each file until it closes; ↑ ↓ in its list of files show each at once, and Unresolve This File (a) puts a resolved file's conflicts back
  • Ask on d on the uncommitted row with conflicts whether to resolve them or show the diff; Ctrl-D shows the diff at once
  • Blame the file at the cursor's line and commit with b in a diff, and show the file's history at a blamed line's commit with Shift-L; Esc goes back
  • Pick the file of Blame File and File History in a new browser: the files the commit changed first, then all its files as a tree, typing finding a file by any part of its path
  • Pick the folder to open, clone into, init or put a worktree in with a browser like it, as large as the terminal, a typed path listing the folders in it as a shell completes one
  • Show more of the lines left out of a diff with Enter on its ⋯, as + does, and keep the cursor's line where it is on the screen as + and - change them
  • Mark removed and added lines with - and + in a diff in one column, and a file's header with a bright cyan line
  • Mark the commit marked for a diff with ± in the log, its row tinted, and take the mark away with Unmark for Diff; a diff of selected commits says how many in its title
  • Scroll the diff, the blame and the resolver sideways with a mouse's sideways wheel, or Shift and the wheel, which no longer scrolls the log and the lists up and down
  • Group the commit and branch menus by what their items do, and the Undo menu by the last change, undoing commits, discarding and bringing back; Set Commit Branch Manually is in the commit menu, Show Branch in the repo menu, and Full File History is File History
  • Make Discard All Changes one item, whose question lists the ignored files and offers to delete them too
  • Edit the commit message with Ctrl-A, Ctrl-C, Ctrl-X, Ctrl-V, Ctrl-Z and Ctrl-Y, as the subject
  • Keep the branches set by hand in .git/gmd-metadata.json rather than in a ref in the repository, moved there at the first change
  • Push only what is about commits origin has when the branch structure is shared, so the names of branches never pushed and work not pushed stay on your machine; Config says what sharing pushes before it is turned on
  • List in the README everything gmd stores and sends

gmd_linux and gmd_windows are the same files as gmd_linux_x64 and gmd.exe, under the names older versions update from. SHA256SUMS has the checksums.

Change log · Installation

Version 1.13.1450.1165

Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 19:33

A preview of the next release, built from dev. Gmd offers previews when Allow preview releases is ticked in Config ....

gmd_linux and gmd_windows are the same files as gmd_linux_x64 and gmd.exe, under the names older versions update from. SHA256SUMS has the checksums.

Change log · Installation

Version 1.12.1450.723

Version 1.12.1450.723 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 12:14

A preview of the next release, built from dev. Gmd offers previews when Allow preview releases is ticked in Config ....

New since v1.12.1448.496:

  • Caption the README's animation in a panel that is easy to read, the keys it names as key caps and its scenes numbered
  • Show the README's comparison of git's log graph and gmd's log as pictures in color, made again with the demo
  • After a squash, an amend or a rebase of pushed commits, here or by an agent, push the branch with force when p asks, rather than pull back the old version origin still has
  • Tell a branch deleted on origin from one never pushed, so that p no longer publishes it again unasked
  • Mark a branch squash or rebase merged on origin with ✓, and count it merged in the worktree list
  • Delete Merged Branches in the repo menu deletes the local branches merged into main, also by a squash on origin
  • Amend, drop and squash commits already pushed, on one rule, and push the branch with force along with it, asked first on main, develop or a release branch, or for someone else's commits
  • Rebase and Push onto is Rebase onto, which asks whether to push with force too
  • A squash starts with the oldest commit's message and the others listed below it, as GitHub writes a squash merge
  • Move to New Branch in the commit menu moves commits made on the wrong branch, e.g. main, to a new one
  • Reorder in the commit menu moves a commit above the next one of its branch, or below the one before it
  • Cherry pick the commits selected with Shift-↑↓ as they were made, authors kept, and take them back with one Undo
  • Reset the current branch to any commit, keeping the changes uncommitted or discarding them, from the commit menu's Undo
  • Built on Terminal.Gui 2.5, with colors of its own: twelve branch colors, a light palette on a light terminal, chosen by the terminal's background, and the 16 colors of the terminal's theme with the setting Colors ("16" in ~/.gmdconfig)
  • Emoji in subjects are drawn as themselves
  • Ctrl-A, Ctrl-C, Ctrl-X, Ctrl-V, Ctrl-Z and Ctrl-Y edit the commit message, as they do the subject
  • Colors in the Config dialog picks gmd's palette: auto, dark or light by the terminal's background, dark, light, or 16, the terminal's own colors
  • The code in a diff is in the colors of its language, as VS Code's Dark+ and Light+ color it, for some fifty languages; Config turns it off, and the 16 colors have none for it
  • An update downloads in seconds again, where since the move to Terminal.Gui 2 it took minutes and looked hung
  • The diff's '⋯' between two parts of a file no longer shows the text git writes after '@@'
  • A file's header in the diff is followed by a line in bright cyan, easier to notice than the dark blue
  • Enter on the diff's '⋯' shows more of the lines left out, as + does
    • and - in the diff keep the line the cursor is on where it is on the screen
  • A diff in one column marks removed and added lines with - and +, where side by side has a red or green bar
  • Pasting from the terminal into a dialog's text field works again, the commit message's subject included
  • Blame File and Full File History pick their file in a new browser: the files the commit changed first, then all its files as a tree, and typing finds a file by any part of its path
  • The code in the blame is in the colors of its language, as in the diff, but for the lines not committed yet, which stay bright yellow
  • b in a diff blames the file at the line the cursor is on, in the commit the diff is of, and Esc comes back to the diff
  • Shift-L in the blame shows the full history of the file at the commit of the current line
  • The commit marked with Mark for Diff is marked ± at the start of its row in the log, and Unmark for Diff in its menu takes the mark away
  • A diff of commits selected in the log is titled with how many commits it is the changes of, e.g. Diff of 3 commits
  • The commit menu is grouped by what its items do: writing commits, looking at the commit, taking it to a branch, and the sub menus of the rest; and its Undo by the last change, undoing commits, discarding changes and bringing back what was thrown away
  • The branch menu is grouped the same way, Hide Branch beside Change Branch Color, and Open Branch in Browser, Move Left of and Move Right of are named as the items beside them are
  • Set Commit Branch Manually is in the commit menu rather than the branch menu
  • Full File History is named File History, and opens at the commit its menu is for
  • Discard All Changes and Discard All Changes and Ignored Files are one item, whose question lists the ignored files and offers to delete them too
  • The d menu of a highlighted branch is titled as the pick completes it, e.g. Diff dev to, and a message box with a row of wide buttons no longer cuts off the last one
  • Wait for the file history itself in its end-to-end tests
  • The branches set by hand, and what the reflog said about where commits were made, are kept in a file in the .git folder, gmd-metadata.json, rather than in the repository as the ref refs/gmd-metadata-key-value/data, which gmd moves into the file at its first change
  • With the shared branch structure on, only what is about commits origin has is pushed, after a branch is pushed, so the names of branches never pushed and the work not pushed stay on your machine, and nothing is pushed when origin has it all
  • Config ... says what sharing the branch structure pushes before it is turned on, with Cancel the default, and when it is turned off, how to remove what was pushed from origin; its box reads Share the branch structure with others using gmd
  • A shared branch structure deleted on origin is pushed again by the others who share it, rather than refused at every push
  • The README lists everything gmd stores and sends, the refs refs/gmd/discarded and refs/gmdtags/origin included
  • Hiding the commit details with Enter no longer hangs gmd, which it did since the move to Terminal.Gui 2.5
  • The README's animation shows gmd as it is now
  • Note that Terminal.Gui 2.x draws a view of no height
  • The README's animation and its picture of gmd's log are in gmd's own colors, the code in the diff in its language's
  • The conflict resolver colors the code by its language, as the diff and the blame do: each side as its version of the file has it, and the file as it will be saved below
  • Config ... names the setting Color the code by its language, it being for the diff, the blame and the resolver
  • Undo in the commit menu offers Abort Merge first while a merge is in progress, conflicted or not committed yet, and Abort Rebase and so on for the others, as the repo menu does
  • A branch keeps the color it is first drawn in, picked unlike its parent's and those of the branches started just before it from the same branch, so branches side by side are told apart; showing or hiding branches, pushing one, or merging and deleting others never changes it, and the colors of deleted branches are forgotten
  • The diff, the blame and the conflict resolver scroll sideways with a mouse's sideways wheel, or Shift and the wheel, four columns a turn
  • A sideways wheel, or Shift and the wheel, no longer scrolls the log, the lists and the dialogs up and down
  • Show Branch is in the repo menu, beside Search, rather than at the bottom of every branch menu; Shift-→ and Branches in the commit menu still open it
    Bump the nuget group with 1 update
  • The conflict resolver is one view for all the files of a merge, rebase or other operation: the next file opens in it, rather than the log showing between them, and Conflicts Resolved is asked over it
  • The resolver's header starts with what it does, e.g. 'Resolve conflicts: Merge', and says which file of how many only while its list of files is hidden
  • In the resolver's list of files, ↑ ↓ show the file they select at once, as in the diff, a resolved one as it was saved, which Unresolve This File (a) puts the conflicts back into
  • Decisions not saved are kept for each file while the resolver is open, so going to another file and back no longer asks about them; closing asks about all of them, and Save and Close saves them all
  • Each conflict ends with a gray rule under its two sides, where it ended unmarked
  • The sides of a conflict are titled by their branches alone, with a commit's subject only where a side is a commit, as during a rebase, and a file's conflicts put back are no longer titled 'ours' and 'theirs'
  • Going to another file in the resolver is quicker: a file is read without going back to the main loop between its git commands
  • d on the uncommitted row with conflicts asks whether to resolve them or to show the diff, Ctrl-D shows the diff at once, and the diff's row of a conflicted file says 'Enter opens the resolver'

gmd_linux and gmd_windows are the same files as gmd_linux_x64 and gmd.exe, under the names older versions update from. SHA256SUMS has the checksums.

Change log · Installation

Version 1.12.1450.528

Version 1.12.1450.528 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 09:00
3d3e23a

A preview of the next release, built from dev. Gmd offers previews when Allow preview releases is ticked in Config ....

New since v1.12.1448.496:

  • Caption the README's animation in a panel that is easy to read, the keys it names as key caps and its scenes numbered
  • Show the README's comparison of git's log graph and gmd's log as pictures in color, made again with the demo
  • After a squash, an amend or a rebase of pushed commits, here or by an agent, push the branch with force when p asks, rather than pull back the old version origin still has
  • Tell a branch deleted on origin from one never pushed, so that p no longer publishes it again unasked
  • Mark a branch squash or rebase merged on origin with ✓, and count it merged in the worktree list
  • Delete Merged Branches in the repo menu deletes the local branches merged into main, also by a squash on origin
  • Amend, drop and squash commits already pushed, on one rule, and push the branch with force along with it, asked first on main, develop or a release branch, or for someone else's commits
  • Rebase and Push onto is Rebase onto, which asks whether to push with force too
  • A squash starts with the oldest commit's message and the others listed below it, as GitHub writes a squash merge
  • Move to New Branch in the commit menu moves commits made on the wrong branch, e.g. main, to a new one
  • Reorder in the commit menu moves a commit above the next one of its branch, or below the one before it
  • Cherry pick the commits selected with Shift-↑↓ as they were made, authors kept, and take them back with one Undo
  • Reset the current branch to any commit, keeping the changes uncommitted or discarding them, from the commit menu's Undo
  • Built on Terminal.Gui 2.5, with colors of its own: twelve branch colors, a light palette on a light terminal, chosen by the terminal's background, and the 16 colors of the terminal's theme with the setting Colors ("16" in ~/.gmdconfig)
  • Emoji in subjects are drawn as themselves
  • Ctrl-A, Ctrl-C, Ctrl-X, Ctrl-V, Ctrl-Z and Ctrl-Y edit the commit message, as they do the subject
  • Colors in the Config dialog picks gmd's palette: auto, dark or light by the terminal's background, dark, light, or 16, the terminal's own colors
  • The code in a diff is in the colors of its language, as VS Code's Dark+ and Light+ color it, for some fifty languages; Config turns it off, and the 16 colors have none for it
  • An update downloads in seconds again, where since the move to Terminal.Gui 2 it took minutes and looked hung
  • The diff's '⋯' between two parts of a file no longer shows the text git writes after '@@'
  • A file's header in the diff is followed by a line in bright cyan, easier to notice than the dark blue
  • Enter on the diff's '⋯' shows more of the lines left out, as + does
    • and - in the diff keep the line the cursor is on where it is on the screen
  • A diff in one column marks removed and added lines with - and +, where side by side has a red or green bar
  • Pasting from the terminal into a dialog's text field works again, the commit message's subject included
  • Blame File and Full File History pick their file in a new browser: the files the commit changed first, then all its files as a tree, and typing finds a file by any part of its path
  • The code in the blame is in the colors of its language, as in the diff, but for the lines not committed yet, which stay bright yellow
  • b in a diff blames the file at the line the cursor is on, in the commit the diff is of, and Esc comes back to the diff
  • Shift-L in the blame shows the full history of the file at the commit of the current line
  • The commit marked with Mark for Diff is marked ± at the start of its row in the log, and Unmark for Diff in its menu takes the mark away
  • A diff of commits selected in the log is titled with how many commits it is the changes of, e.g. Diff of 3 commits
  • The commit menu is grouped by what its items do: writing commits, looking at the commit, taking it to a branch, and the sub menus of the rest; and its Undo by the last change, undoing commits, discarding changes and bringing back what was thrown away
  • The branch menu is grouped the same way, Hide Branch beside Change Branch Color, and Open Branch in Browser, Move Left of and Move Right of are named as the items beside them are
  • Set Commit Branch Manually is in the commit menu rather than the branch menu
  • Full File History is named File History, and opens at the commit its menu is for
  • Discard All Changes and Discard All Changes and Ignored Files are one item, whose question lists the ignored files and offers to delete them too
  • The d menu of a highlighted branch is titled as the pick completes it, e.g. Diff dev to, and a message box with a row of wide buttons no longer cuts off the last one
  • Wait for the file history itself in its end-to-end tests
  • The branches set by hand, and what the reflog said about where commits were made, are kept in a file in the .git folder, gmd-metadata.json, rather than in the repository as the ref refs/gmd-metadata-key-value/data, which gmd moves into the file at its first change
  • With the shared branch structure on, only what is about commits origin has is pushed, after a branch is pushed, so the names of branches never pushed and the work not pushed stay on your machine, and nothing is pushed when origin has it all
  • Config ... says what sharing the branch structure pushes before it is turned on, with Cancel the default, and when it is turned off, how to remove what was pushed from origin; its box reads Share the branch structure with others using gmd
  • A shared branch structure deleted on origin is pushed again by the others who share it, rather than refused at every push
  • The README lists everything gmd stores and sends, the refs refs/gmd/discarded and refs/gmdtags/origin included
  • Hiding the commit details with Enter no longer hangs gmd, which it did since the move to Terminal.Gui 2.5
  • The README's animation shows gmd as it is now
  • Note that Terminal.Gui 2.x draws a view of no height
  • The README's animation and its picture of gmd's log are in gmd's own colors, the code in the diff in its language's
  • The conflict resolver colors the code by its language, as the diff and the blame do: each side as its version of the file has it, and the file as it will be saved below
  • Config ... names the setting Color the code by its language, it being for the diff, the blame and the resolver
  • Undo in the commit menu offers Abort Merge first while a merge is in progress, conflicted or not committed yet, and Abort Rebase and so on for the others, as the repo menu does
  • A branch keeps the color it is first drawn in, picked unlike its parent's and those of the branches started just before it from the same branch, so branches side by side are told apart; showing or hiding branches, pushing one, or merging and deleting others never changes it, and the colors of deleted branches are forgotten
  • The diff, the blame and the conflict resolver scroll sideways with a mouse's sideways wheel, or Shift and the wheel, four columns a turn
  • A sideways wheel, or Shift and the wheel, no longer scrolls the log, the lists and the dialogs up and down
  • Show Branch is in the repo menu, beside Search, rather than at the bottom of every branch menu; Shift-→ and Branches in the commit menu still open it
    Bump the nuget group with 1 update

gmd_linux and gmd_windows are the same files as gmd_linux_x64 and gmd.exe, under the names older versions update from. SHA256SUMS has the checksums.

Change log · Installation

Version 1.12.1450.513

Version 1.12.1450.513 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 08:41

A preview of the next release, built from dev. Gmd offers previews when Allow preview releases is ticked in Config ....

New since v1.12.1448.496:

  • Caption the README's animation in a panel that is easy to read, the keys it names as key caps and its scenes numbered
  • Show the README's comparison of git's log graph and gmd's log as pictures in color, made again with the demo
  • After a squash, an amend or a rebase of pushed commits, here or by an agent, push the branch with force when p asks, rather than pull back the old version origin still has
  • Tell a branch deleted on origin from one never pushed, so that p no longer publishes it again unasked
  • Mark a branch squash or rebase merged on origin with ✓, and count it merged in the worktree list
  • Delete Merged Branches in the repo menu deletes the local branches merged into main, also by a squash on origin
  • Amend, drop and squash commits already pushed, on one rule, and push the branch with force along with it, asked first on main, develop or a release branch, or for someone else's commits
  • Rebase and Push onto is Rebase onto, which asks whether to push with force too
  • A squash starts with the oldest commit's message and the others listed below it, as GitHub writes a squash merge
  • Move to New Branch in the commit menu moves commits made on the wrong branch, e.g. main, to a new one
  • Reorder in the commit menu moves a commit above the next one of its branch, or below the one before it
  • Cherry pick the commits selected with Shift-↑↓ as they were made, authors kept, and take them back with one Undo
  • Reset the current branch to any commit, keeping the changes uncommitted or discarding them, from the commit menu's Undo
  • Built on Terminal.Gui 2.5, with colors of its own: twelve branch colors, a light palette on a light terminal, chosen by the terminal's background, and the 16 colors of the terminal's theme with the setting Colors ("16" in ~/.gmdconfig)
  • Emoji in subjects are drawn as themselves
  • Ctrl-A, Ctrl-C, Ctrl-X, Ctrl-V, Ctrl-Z and Ctrl-Y edit the commit message, as they do the subject
  • Colors in the Config dialog picks gmd's palette: auto, dark or light by the terminal's background, dark, light, or 16, the terminal's own colors
  • The code in a diff is in the colors of its language, as VS Code's Dark+ and Light+ color it, for some fifty languages; Config turns it off, and the 16 colors have none for it
  • An update downloads in seconds again, where since the move to Terminal.Gui 2 it took minutes and looked hung
  • The diff's '⋯' between two parts of a file no longer shows the text git writes after '@@'
  • A file's header in the diff is followed by a line in bright cyan, easier to notice than the dark blue
  • Enter on the diff's '⋯' shows more of the lines left out, as + does
    • and - in the diff keep the line the cursor is on where it is on the screen
  • A diff in one column marks removed and added lines with - and +, where side by side has a red or green bar
  • Pasting from the terminal into a dialog's text field works again, the commit message's subject included
  • Blame File and Full File History pick their file in a new browser: the files the commit changed first, then all its files as a tree, and typing finds a file by any part of its path
  • The code in the blame is in the colors of its language, as in the diff, but for the lines not committed yet, which stay bright yellow
  • b in a diff blames the file at the line the cursor is on, in the commit the diff is of, and Esc comes back to the diff
  • Shift-L in the blame shows the full history of the file at the commit of the current line
  • The commit marked with Mark for Diff is marked ± at the start of its row in the log, and Unmark for Diff in its menu takes the mark away
  • A diff of commits selected in the log is titled with how many commits it is the changes of, e.g. Diff of 3 commits
  • The commit menu is grouped by what its items do: writing commits, looking at the commit, taking it to a branch, and the sub menus of the rest; and its Undo by the last change, undoing commits, discarding changes and bringing back what was thrown away
  • The branch menu is grouped the same way, Hide Branch beside Change Branch Color, and Open Branch in Browser, Move Left of and Move Right of are named as the items beside them are
  • Set Commit Branch Manually is in the commit menu rather than the branch menu
  • Full File History is named File History, and opens at the commit its menu is for
  • Discard All Changes and Discard All Changes and Ignored Files are one item, whose question lists the ignored files and offers to delete them too
  • The d menu of a highlighted branch is titled as the pick completes it, e.g. Diff dev to, and a message box with a row of wide buttons no longer cuts off the last one
  • Wait for the file history itself in its end-to-end tests
  • The branches set by hand, and what the reflog said about where commits were made, are kept in a file in the .git folder, gmd-metadata.json, rather than in the repository as the ref refs/gmd-metadata-key-value/data, which gmd moves into the file at its first change
  • With the shared branch structure on, only what is about commits origin has is pushed, after a branch is pushed, so the names of branches never pushed and the work not pushed stay on your machine, and nothing is pushed when origin has it all
  • Config ... says what sharing the branch structure pushes before it is turned on, with Cancel the default, and when it is turned off, how to remove what was pushed from origin; its box reads Share the branch structure with others using gmd
  • A shared branch structure deleted on origin is pushed again by the others who share it, rather than refused at every push
  • The README lists everything gmd stores and sends, the refs refs/gmd/discarded and refs/gmdtags/origin included
  • Hiding the commit details with Enter no longer hangs gmd, which it did since the move to Terminal.Gui 2.5
  • The README's animation shows gmd as it is now
  • Note that Terminal.Gui 2.x draws a view of no height
  • The README's animation and its picture of gmd's log are in gmd's own colors, the code in the diff in its language's
  • The conflict resolver colors the code by its language, as the diff and the blame do: each side as its version of the file has it, and the file as it will be saved below
  • Config ... names the setting Color the code by its language, it being for the diff, the blame and the resolver
  • Undo in the commit menu offers Abort Merge first while a merge is in progress, conflicted or not committed yet, and Abort Rebase and so on for the others, as the repo menu does
  • A branch keeps the color it is first drawn in, picked unlike its parent's and those of the branches started just before it from the same branch, so branches side by side are told apart; showing or hiding branches, pushing one, or merging and deleting others never changes it, and the colors of deleted branches are forgotten
  • The diff, the blame and the conflict resolver scroll sideways with a mouse's sideways wheel, or Shift and the wheel, four columns a turn
  • A sideways wheel, or Shift and the wheel, no longer scrolls the log, the lists and the dialogs up and down
  • Show Branch is in the repo menu, beside Search, rather than at the bottom of every branch menu; Shift-→ and Branches in the commit menu still open it

gmd_linux and gmd_windows are the same files as gmd_linux_x64 and gmd.exe, under the names older versions update from. SHA256SUMS has the checksums.

Change log · Installation

Version 1.12.1450.1133

Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 19:05

A preview of the next release, built from dev. Gmd offers previews when Allow preview releases is ticked in Config ....

New since v1.12.1448.496:

  • Caption the README's animation in a panel that is easy to read, the keys it names as key caps and its scenes numbered
  • Show the README's comparison of git's log graph and gmd's log as pictures in color, made again with the demo
  • After a squash, an amend or a rebase of pushed commits, here or by an agent, push the branch with force when p asks, rather than pull back the old version origin still has
  • Tell a branch deleted on origin from one never pushed, so that p no longer publishes it again unasked
  • Mark a branch squash or rebase merged on origin with ✓, and count it merged in the worktree list
  • Delete Merged Branches in the repo menu deletes the local branches merged into main, also by a squash on origin
  • Amend, drop and squash commits already pushed, on one rule, and push the branch with force along with it, asked first on main, develop or a release branch, or for someone else's commits
  • Rebase and Push onto is Rebase onto, which asks whether to push with force too
  • A squash starts with the oldest commit's message and the others listed below it, as GitHub writes a squash merge
  • Move to New Branch in the commit menu moves commits made on the wrong branch, e.g. main, to a new one
  • Reorder in the commit menu moves a commit above the next one of its branch, or below the one before it
  • Cherry pick the commits selected with Shift-↑↓ as they were made, authors kept, and take them back with one Undo
  • Reset the current branch to any commit, keeping the changes uncommitted or discarding them, from the commit menu's Undo
  • Built on Terminal.Gui 2.5, with colors of its own: twelve branch colors, a light palette on a light terminal, chosen by the terminal's background, and the 16 colors of the terminal's theme with the setting Colors ("16" in ~/.gmdconfig)
  • Emoji in subjects are drawn as themselves
  • Ctrl-A, Ctrl-C, Ctrl-X, Ctrl-V, Ctrl-Z and Ctrl-Y edit the commit message, as they do the subject
  • Colors in the Config dialog picks gmd's palette: auto, dark or light by the terminal's background, dark, light, or 16, the terminal's own colors
  • The code in a diff is in the colors of its language, as VS Code's Dark+ and Light+ color it, for some fifty languages; Config turns it off, and the 16 colors have none for it
  • An update downloads in seconds again, where since the move to Terminal.Gui 2 it took minutes and looked hung
  • The diff's '⋯' between two parts of a file no longer shows the text git writes after '@@'
  • A file's header in the diff is followed by a line in bright cyan, easier to notice than the dark blue
  • Enter on the diff's '⋯' shows more of the lines left out, as + does
    • and - in the diff keep the line the cursor is on where it is on the screen
  • A diff in one column marks removed and added lines with - and +, where side by side has a red or green bar
  • Pasting from the terminal into a dialog's text field works again, the commit message's subject included
  • Blame File and Full File History pick their file in a new browser: the files the commit changed first, then all its files as a tree, and typing finds a file by any part of its path
  • The code in the blame is in the colors of its language, as in the diff, but for the lines not committed yet, which stay bright yellow
  • b in a diff blames the file at the line the cursor is on, in the commit the diff is of, and Esc comes back to the diff
  • Shift-L in the blame shows the full history of the file at the commit of the current line
  • The commit marked with Mark for Diff is marked ± at the start of its row in the log, and Unmark for Diff in its menu takes the mark away
  • A diff of commits selected in the log is titled with how many commits it is the changes of, e.g. Diff of 3 commits
  • The commit menu is grouped by what its items do: writing commits, looking at the commit, taking it to a branch, and the sub menus of the rest; and its Undo by the last change, undoing commits, discarding changes and bringing back what was thrown away
  • The branch menu is grouped the same way, Hide Branch beside Change Branch Color, and Open Branch in Browser, Move Left of and Move Right of are named as the items beside them are
  • Set Commit Branch Manually is in the commit menu rather than the branch menu
  • Full File History is named File History, and opens at the commit its menu is for
  • Discard All Changes and Discard All Changes and Ignored Files are one item, whose question lists the ignored files and offers to delete them too
  • The d menu of a highlighted branch is titled as the pick completes it, e.g. Diff dev to, and a message box with a row of wide buttons no longer cuts off the last one
  • Wait for the file history itself in its end-to-end tests
  • The branches set by hand, and what the reflog said about where commits were made, are kept in a file in the .git folder, gmd-metadata.json, rather than in the repository as the ref refs/gmd-metadata-key-value/data, which gmd moves into the file at its first change
  • With the shared branch structure on, only what is about commits origin has is pushed, after a branch is pushed, so the names of branches never pushed and the work not pushed stay on your machine, and nothing is pushed when origin has it all
  • Config ... says what sharing the branch structure pushes before it is turned on, with Cancel the default, and when it is turned off, how to remove what was pushed from origin; its box reads Share the branch structure with others using gmd
  • A shared branch structure deleted on origin is pushed again by the others who share it, rather than refused at every push
  • The README lists everything gmd stores and sends, the refs refs/gmd/discarded and refs/gmdtags/origin included
  • Hiding the commit details with Enter no longer hangs gmd, which it did since the move to Terminal.Gui 2.5
  • The README's animation shows gmd as it is now
  • Note that Terminal.Gui 2.x draws a view of no height
  • The README's animation and its picture of gmd's log are in gmd's own colors, the code in the diff in its language's
  • The conflict resolver colors the code by its language, as the diff and the blame do: each side as its version of the file has it, and the file as it will be saved below
  • Config ... names the setting Color the code by its language, it being for the diff, the blame and the resolver
  • Undo in the commit menu offers Abort Merge first while a merge is in progress, conflicted or not committed yet, and Abort Rebase and so on for the others, as the repo menu does
  • A branch keeps the color it is first drawn in, picked unlike its parent's and those of the branches started just before it from the same branch, so branches side by side are told apart; showing or hiding branches, pushing one, or merging and deleting others never changes it, and the colors of deleted branches are forgotten
  • The diff, the blame and the conflict resolver scroll sideways with a mouse's sideways wheel, or Shift and the wheel, four columns a turn
  • A sideways wheel, or Shift and the wheel, no longer scrolls the log, the lists and the dialogs up and down
  • Show Branch is in the repo menu, beside Search, rather than at the bottom of every branch menu; Shift-→ and Branches in the commit menu still open it
    Bump the nuget group with 1 update
  • The conflict resolver is one view for all the files of a merge, rebase or other operation: the next file opens in it, rather than the log showing between them, and Conflicts Resolved is asked over it
  • The resolver's header starts with what it does, e.g. 'Resolve conflicts: Merge', and says which file of how many only while its list of files is hidden
  • In the resolver's list of files, ↑ ↓ show the file they select at once, as in the diff, a resolved one as it was saved, which Unresolve This File (a) puts the conflicts back into
  • Decisions not saved are kept for each file while the resolver is open, so going to another file and back no longer asks about them; closing asks about all of them, and Save and Close saves them all
  • Each conflict ends with a gray rule under its two sides, where it ended unmarked
  • The sides of a conflict are titled by their branches alone, with a commit's subject only where a side is a commit, as during a rebase, and a file's conflicts put back are no longer titled 'ours' and 'theirs'
  • Going to another file in the resolver is quicker: a file is read without going back to the main loop between its git commands
  • d on the uncommitted row with conflicts asks whether to resolve them or to show the diff, Ctrl-D shows the diff at once, and the diff's row of a conflicted file says 'Enter opens the resolver'

gmd_linux and gmd_windows are the same files as gmd_linux_x64 and gmd.exe, under the names older versions update from. SHA256SUMS has the checksums.

Change log · Installation

Version 1.12.1448.496

Choose a tag to compare

@github-actions github-actions released this 17 Oct 08:22
  • Draw the diff calmer: a bar beside each changed line, the words that differ marked rather than scattered letters, a row for each file, and a line with ⋯ on both sides where unchanged lines are left out between its parts, naming the function git finds a part in
  • Go to the next or previous change with ] and [, and file with } and {, the top row naming the commit and the file the view is scrolled into
  • Show the diff in one column on a terminal narrower than 110 columns, and switch between the two with v
  • List the files beside a diff on a terminal 150 columns wide, with their lines added, deleted and left out of the commit, rather than at the diff's top; Tab moves into the list, and l hides it
  • Hide the lines of a file in the diff with h, e.g. a generated one
  • Resolve the files of a merge, rebase, cherry pick or revert one after the other, listed beside the resolver, from the conflict box, the top bar or the repo menu, and commit or continue once none is left
  • Show each side of a conflict as what it changed in the common ancestor, its changed words marked, and name it by its branch and its commit's subject
  • Combine both sides' changes to a conflict with c, where they changed other words or lines that only touch
  • Show the whole file below the sides as it will be saved, going along with the cursor, each conflict's lines marked by the side they came from
  • Type a conflict by hand in the result pane with e, with both sides still in sight

gmd_linux and gmd_windows are the same files as gmd_linux_x64 and gmd.exe, under the names older versions update from. SHA256SUMS has the checksums.

Change log · Installation

Version 1.11.1447.386

Choose a tag to compare

@github-actions github-actions released this 16 Oct 06:35
  • Commit part of a file: x in the diff of the uncommitted changes leaves the change the cursor is on, or the selected lines, out of the commit, which takes the rest and leaves them uncommitted
  • Discard part of a file: u in the diff offers the change the cursor is on, or the selected lines, above the files whole
  • Bring back what was discarded, a change, a file, all changes or a dropped stash, with Restore Discarded Changes in the Undo menu, kept for about 30 days
  • Commit and discard some lines of a renamed file, which stays renamed, and of a deleted one
  • Search the lines of a diff or a blame with f or /, the matches marked, and step through them with n and Shift-N
  • Hide the changes of whitespace alone in a diff with w, a file with nothing else listed as whitespace only
  • Sign the commit a squash makes when git's config signs commits, as every other commit gmd makes is
  • Say why a greyed out item of the diff's or the blame's menu cannot be used on their own status line, rather than behind them

gmd_linux and gmd_windows are the same files as gmd_linux_x64 and gmd.exe, under the names older versions update from. SHA256SUMS has the checksums.

Change log · Installation

Version 1.10.1446.1006

Choose a tag to compare

@github-actions github-actions released this 15 Oct 16:55
  • Give a commit's message most of the details pane, with its fields in four rows, and name the branch of a parent or child on another one, so a merge says what it merged
  • List the files a commit changed in its details, with the lines added and deleted in each, and the uncommitted files in theirs, the conflicted first
  • Ask what to copy with Ctrl-C in the log: of a commit its id, message, subject or link, of the rows selected their ids, messages or range
  • Show commit ids with eight characters rather than six, as git log --oneline does in all but small repositories
  • Keep a branch set by hand by its commit's full id, so it never applies to another commit with the same first characters; one set with an earlier version is to be set again
  • Show the latest 50,000 commits of a large repository rather than 30,000, in no more memory than before
  • Read a large repository's log much faster when it has no commit-graph file, by writing one, as git gc would
  • Decide the branches of long ambiguous stretches in a fraction of the time, e.g. 2 s rather than 17 s for 200,000 commits of rust
  • Keep main's line through a merged tag or another project's branch pulled in, e.g. git's translations and gitk
  • Recover a deleted branch that merge subjects name where other branches were started from it, leaving far fewer commits ambiguous
  • Name a branch after a tag or a loose word of a merge subject only when nothing else names it
  • Take a branch and a fork's copy of it, e.g. timfel/1.2.x, as one where they meet
  • Let a branch started on the merge of the one before it share that one's column

gmd_linux and gmd_windows are the same files as gmd_linux_x64 and gmd.exe, under the names older versions update from. SHA256SUMS has the checksums.

Change log · Installation

Version 1.9.1446.426

Choose a tag to compare

@github-actions github-actions released this 15 Oct 07:12
  • Never offer a preview to a gmd installed with Homebrew, which has the stable releases only
  • Grey out Auto update and Allow preview releases in Config for a gmd installed with Homebrew, and say why
  • Say after the PowerShell install on Windows that gmd runs in that terminal already

gmd_linux and gmd_windows are the same files as gmd_linux_x64 and gmd.exe, under the names older versions update from. SHA256SUMS has the checksums.

Change log · Installation