Retcon releases

An incredible amount of design and engineering effort has gone into Retcon since the project started in early 2022. Below are the complete update notes, from alpha to release.

Retcon 1.0.1

This is the release version of Retcon, and requires a paid license. Do not update if you wish to keep using your current build.

Improved

  • SSH authentication failure message now gives better instructions

Fixed

  • Would sometimes prompt for SSH authentication too frequently

Retcon 1.0.0

This is the release version of Retcon, and requires a paid license. Do not update if you wish to keep using your current build.

This is the first public release. Hello, world!

Retcon 1.0.0 β27

New

  • Set a branch's remote when first pushing it
  • Remotes are fetched automatically
  • Add File > New (⌘N), to respect muscle memory

Improved & changed

  • Rebase On… shortcut is now ⌃⌘R
  • Dock icon now bounces when pausing in the background
  • Help menu now offers help
  • App now warns about unsupported repository types

Fixed

  • When skipping an edit, the committer info was updated anyway
  • While paused, edits were reset when editing the history
  • Pushing while editing a message would push the old message
  • Merged commits were shown as editable
  • Pushing/pulling branches with long names would change sidebar width
  • Couldn't perform operations anymore after specific manipulations
  • Locked index files no longer trigger recovery
  • Would crash when restoring with a locked index

Retcon 1.0.0 β26

New

  • See meta file changes
    • Identify meta changes by their badge
    • Distinguish between moves and renames
    • See previous file name or path
  • See a change recap before confirming a commit edit
  • Large files and some generated files are collapsed by default

Improved

  • The two message fields are now linked
    • Navigate between the two fields using the arrows keys, or ⏎
    • ⇥ no longer focuses the description field
    • Pasting correctly spreads over the two fields
  • File diffs now show the final line, like in a text editor
  • Deletion conflicts now show a clear description

Fixed

  • Empty, binary and deleted files are displayed properly
  • Staging moved files would separate the old and new versions
  • The message placeholder was sometimes incorrect
  • Rewording during a commit edit sometimes saved the wrong message
  • Fixed some memory leaks, and related crashes

Retcon 1.0.0 β25

New

  • Welcome window
    • See recent repositories or quickly open a new one
    • Open an example repository for trying out manipulations
  • Settings
    • Choose auto-update behavior
    • See global values for supported Git settings
  • A badge in the Dock now indicates if the app has paused for editing

Improved

  • When a push is unable to fast-forward, force pushing is suggested
  • Force push menu option is no longer hidden
  • Orphaned stage lines now have a prominent striped background
  • Retcon now shows a prompt for completing user details when relevant
  • Retcon now automatically recovers from errors that occur while paused

Fixed

  • Couldn't fixup merge commits
  • Empty commits are now automatically discarded
  • Tab indents in file diffs were misaligned
  • Scrolling through diffs could be stuttery
  • Diff elements could be layout improperly
  • Disable difftool actions when no tool is set
  • Whitespace is now trimmed when entering new branch name
  • In empty repositories, initial branch name was ignored

Retcon 1.0.0 β24

New

  • Merge branches
  • See remote branches in list and create new tracking branches
  • Initialize a new repository when opening a non-repo folder

Improved

  • Copy a commit's info from its context menu
  • Fully support detached heads

Fixed

  • Couldn't rewrite the first commit of a branch
  • Wouldn't show untracked files in workdir diffs
  • Corrected merge commit diffs
  • Corrected first commit diffs
  • Would hang when launching some difftools
  • Couldn't fixup a commit that's marked for editing

Retcon 1.0.0 β23

New

  • Create and delete branches
  • Commits now have a context menu

Improved

  • SSH keys are more reliably loaded
  • HTTPS remote credentials can now be entered in Retcon

Fixed

  • Wouldn't read HTTPS remote credentials from keychain
  • Stale changes would be restored to workdir in specific circumstances

Retcon 1.0.0 β22

The commit list and commit header now show author metadata, instead of committer metadata.

New

  • Pull, push and fetch branches
    • Safely undo any pull or push with ⌘Z
    • See behind/ahead count in toolbar
    • Monitor or cancel remote operations in the main window

Improved & changed

  • “Rebase on Parent Branch” is now “Pull Parent Branch And Rebase” (⌘R)
    • In a single action, without having to switch branches, both pull the parent branch and rebase on it
    • In commit list, junction header now also counts parent's remote commits
  • Show author metadata instead of committer metadata
    • When relevant, committer metadata is shown at the bottom of the commit's details
  • Only show inline highlights for contiguous multi-line changes

Fixed

  • In discard confirmation dialog, fix file count when paused
  • Would crash when clicking an empty first line
  • Rarely, would crash when changing selection

Retcon 1.0.0 β21

New

  • Undo any stage/unstage operation
  • Undo Revert Changes during conflict resolution

Improved

  • Most shortcuts can now be used regardless of current focus
  • Add keyboard shortcut for Open in Difftool (⇧⌘D)
  • Reveal Pausing Commit now scrolls the commit list
  • App now warns when confirming an edit without staging changes

Fixed

  • Couldn't use Amend Tip to only change a commit's message
  • Would crash when clicking a trailing empty line
  • Type-to-select in file list now works for nested files
  • Fix external changes undo sometimes failing to register
  • Very rarely, staging lines would incorrectly write the stage

Retcon 1.0.0 β20

New

  • Stage or discard selected lines using the contextual palette
    • Or, use spacebar and ⌫ as before

Improved

  • Improved inline change highlights
  • Commit description is now displayed with a maximum width
  • Working directory is now selected after uncommitting
  • Generated reflog messages are more detailed

Fixed

  • Fixed windows not automatically grouping into tabs
  • Fixed working directory row display for long messages
  • Fixed toolbar customization being reset at launch
  • Fixed toolbar button widths in icon-only mode
  • Fixed diff scrolling to the top when clicking in an empty area
  • Fixed gutter checkboxes sometimes being missing
  • Fixed flashing when scrolling some diffs
  • Fix inactive scrollbars sometimes showing for commit description

Retcon 1.0.0 β19

New

  • New icon! Gone away is the bluebird; here to stay is a whiteboard ♫
  • Quickly spot individual changes with inline highlights

Improved & changed

  • Show line number for staged lines
  • Significantly improved performance in repositories with many merge commits
  • Tab title wouldn't update for background tabs

Fixed

  • Couldn't scroll diffs using ⇞/⇟/↖︎/↘︎
  • Couldn't properly stage lines in a conflicting file
  • Fixed some erratic crashes

Retcon 1.0.0 β18

Improved

  • Increased commit list legibility

Fixed

  • Repeated hunks would sometimes be invisible
  • Would crash when opening some repos

Retcon 1.0.0 ß17

Retcon has been completely redesigned! The app sports a new, easy-to-parse layout, and gains powerful new features for working with git.

New

  • Redesigned viewer/editor
    • Use a single consistent view for reading commits, editing them, creating new commits and resolving conflicts
    • Focus on your code with the heavily decluttered presentation
    • Wide layout gives the diff ample space
    • Edit commit messages in place
    • See exact commit status at a glance
    • When unsure of how to proceed, get concrete instructions with contextual guide
  • Redesigned diff
    • See both working directory and stage at a glance using the combined diff
      • No back and forth between distinct sections
      • Stage/unstage lines in one stable view
      • See diffs even for conflicting files
      • See correct line number even for staged lines
    • Stage line groups with a single click
    • …or select specific lines by dragging over the text
    • Select line groups with ↑/↓; stage and discard with spacebar and ⌫
  • Redesigned file list
    • Quickly act on multiple files using the contextual menu: open, diff, reveal, copy path, discard
    • Open the commit in your difftool
    • Double-click a file to open your editor
  • Redesigned commit list
    • See commit tags inline
    • Stay oriented while rewriting: see which commits you've already paused at, and which will pause for editing
    • See the list of missing parent branch commits
    • Rebase on parent branch with a single click
    • Denser commit list now shows twice as many commits
    • See draft commit message in top row
  • Added Revert Unapplied Changes (⌥⌘R), to abort the current rewrite

Improved & changed

  • Updated some shortcuts
    • Reveal Working Directory: ⇧⌘C
    • Fixup Into Parent: ⌥⌘E
    • Copy Preview: ⌥⌘C
  • Background tabs now show the repository’s status
  • Removed Fixup Together

Fixed

  • Picking a branch from the list sometimes did nothing
  • Commit dates are now formatted according to user preferences
  • Toggle Sidebar menu item is now available

Retcon 1.0.0 ⍺16

  • App expiration date is refreshed

Retcon 1.0.0 ⍺15

Improved

  • Significant performance improvements when rewriting history, switching branches, displaying the working directory, and opening a repository

Fixed

  • Submodule contents were sometimes cleared when rewinding
  • Couldn't rewind to before a submodule's initialization
  • Undo External Changes sometimes affected the wrong changes
  • Stage All would fail for deleted conflicting files
  • Back/forward navigation wouldn't record the initial head

Retcon 1.0.0 ⍺14

New

  • Get live feedback in Rebase Branch window
  • Added rebasing on a commit hash
  • Added Focus Next Pane (⌃`)
  • Added Copy Preview (⇧⌘C)

Improved & changed

  • Show Uncommited Changes shortcut is now ⇧⌘A
  • Retcon would hang when focused
  • Improved performance when opening Rebase Branch window
  • Improved performance when selecting many commits
  • Moved View menu to its proper location, after Edit

Fixed

  • Could amend a commit with an empty message
  • Would crash when selecting a merged commit
  • Would sometimes crash when rebasing
  • Fixed memory leak when closing repo window

Retcon 1.0.0 ⍺13

New

  • Added Delete Commit Only (⌫), which keeps changes
  • Added Switch to Home Branch (⇧⌘H)
  • Added back/forward navigation through visited heads

Improved

  • Commit list now has animated transitions
  • Switching branches no longer creates an undo point
  • Improved performance in large repos in some circumstances

Fixed

  • Workdir summary wouldn't update when discarding changes
  • Fixed parent junction row location when rewriting shared commits

Retcon 1.0.0 ⍺12

New

  • Added Toggle Amend Head (⌃⌘A)
  • Ignored files remain ignored while rewinding to old commits

Improved

  • Commit editor and resolver now support confirming with ⌘⏎
  • App now warns about unsupported in-progress external git operations (merge conflict resolution, etc)
  • Recover swapped changes when relaunching app after a crash

Fixed

  • Untracked files wouldn't be removed when swapping out workdir
  • Recently committed changes would sometimes be copied to workdir
  • Workdir summary wouldn't update while in the background
  • Manipulating commits while app is in the background would fail
  • Submodule changes would get discarded when rewriting
  • Couldn't open submodule repositories

Retcon 1.0.0 ⍺11

New

  • Create commits
    • List and stage changes, compose a message, commit
    • Amend head commit
    • Keyboard shortcuts for common operations
    • Reliable undo/redo, even if workdir has since changed
    • Commit with an empty message if convenient
  • Send Feedback button in title bar

Improved & changed

  • App is now named Retcon
  • Conflict resolver now shows which two commits are involved
  • Fixup Into Parent shortcut is now ⌃⌘E
  • Diff font size increased to 11pt
  • Fixup actions are now named “fixup” instead of “flatten”
  • With consent, the app now sends anonymous system profile

Fixed

  • Couldn't see/resolve conflicts in fixupped commits
  • Couldn't rebase branches with no unique commits
  • Occasional crashed when displaying a conflict
  • Remove blank space above details view

Bluebird 1.0.0 ⍺10

Fixed

  • Couldn't backup workdir when global git config was missing user info

Bluebird 1.0.0 ⍺9

Improved

  • Hangs when manipulating are now very rare

Bluebird 1.0.0 ⍺8

New

  • Edit commit contents
    • Edit the files of any commit in place
    • While resolving conflicts, mark commits for editing later
    • Get full context: see commit's existing changes
  • Edit commit messages
  • Confirm before closing window with unapplied manipulations

Improved

  • See more precise progress info when a rewrite fails
  • Conflict resolution pane is cleaner
  • Much fewer (unreferenced) git objects are created

Fixed

  • Couldn't see details of commits with image changes
  • Couldn't use Reveal Pausing Commit (⌘D) with commit details focused
  • Couldn't open external diff tool
  • Commit committer metadata is updated when rewriting
  • Couldn't manipulate repos containing ignored repos
  • Would sometimes crash when closing a window

Bluebird 1.0.0 ⍺7

New

  • Preserve stage when performing changes and resolving conflicts
  • Preserve current workdir and stage when undoing/redoing

Improved

  • Automatic workdir backup is faster and less frequent

Fixed

  • Also preserve files deletions when restoring workdir
  • Fix memory leak when closing repo window

Bluebird 1.0.0 ⍺6

Improved and fixed

  • Fix ignored files being discarded after every manipulation

Bluebird 1.0.0 ⍺5

New

  • Resolve conflicts
    • Resolve conflicts in an editor or diff tool
    • Undo conflict resolutions to edit them further
    • Manipulate history as usual even during conflict resolution
    • Unapplied commit resolutions are preserved when manipulating
  • Working directory preservation
    • Manipulate history even with uncommitted changes
    • Working directory is set aside during conflict resolution
    • Bluebird indicates when changes conflict with new head
  • See summary of changes in working directory

Improved and fixed

  • Unapplied commits are displayed grayed out
  • Menus for unimplemented features show a ⛏︎ symbol
  • New buttons in toolbar, added tooltips
  • Selection is better preserved across undos
  • Fixup actions have been renamed to “flatten”
  • Couldn't copy hashes of secondary commits

Bluebird 1.0.0 ⍺4

New

  • View commit details: contents and metadata
  • View merged commits
    • Toggle secondary parents using disclosure arrow or arrow keys
    • View secondary parent details
    • No support for three-way merges or more, and for nested merge commits
  • Rebase support
    • Rebase on any branch using Rebase On…
    • Quickly rebase on parent branch using Rebase On Parent
    • Any conflict is displayed as usual
  • Checkout branches using the branch list or ⌘L
  • Combine commits by ⌘-dragging them onto another
  • Copy commit hash with ⌘C

Improved and fixed

  • Commit selection is better persisted
  • Central branch detection now uses a hard-coded list
  • Didn't properly display fixup conflicts
  • Couldn't manipulate commits targeted by a pending fixup
  • Couldn't rewrite shared commits

Bluebird 1.0.0 ⍺3

New

  • Merge commit support
    • Open repositories containing merge commits
    • Merge commits show a disclosure arrow
    • Secondary parents are hidden
    • Manipulate merge commits
  • See when a central branch is rejoined
    • If central branch is ahead, the missing commit count is displayed
    • Commits that are shared with central branch are dimmed

Bluebird 1.0.0 ⍺2

New

  • Undo/redo any manipulation
  • Delete commits
  • Merge commits together: as a group, or into their parent
  • Move multiple commits at once
  • Reorder commits with ⌘↑ and ⌘↓
  • See repository state in title bar
  • Auto-update with Sparkle

Improved and fixed

  • Better overall stability
  • Perform fast-forward whenever possible, instead of copying commits
  • Working tree state is checked before applying operations
  • Clearer feedback when hovering during a reorder
  • Show a warning when opening a repository with merge commits

Bluebird 1.0.0 ⍺1

Initial alpha release! See commit list, reorder commits, and get instant feedback when a manipulation causes a conflict.