Release notes

  1. Version 1.4

    • Non-Git diffs can now be edited in place. These comparisons can be saved as .juxta documents that contain the edited text, and your edits can be saved back to the original files at any time.
    • Dramatically improved performance for very large diffs.
    • juxta merge -a <file> -b <file> can now launch a file merge session.
    • Fixed an issue where scrolling through a long list of files in the inspector sidebar could periodically reset the scroll position to make the selected file visible.
    • Various stability improvements.
  2. Version 1.3

    • Twin Focus When enabled, hover over a word in a side-by-side diff to highlight the corresponding word on the other side(s) of the diff.
    • Improved diffing algorithm Better recognition when two bodies of text mainly differ by their line breaks. For example, if [A] has a long paragraph all on one line and [B] has the same content split over multiple lines to maintain a maximum column width, then both passages will be grouped as “modified ≠” and their newline differences highlighted.
    • Improved diff UI Extra connecting lines now appear in diff dividers when there are a few scattered word differences that might be hard to spot within a large modified segment. In these cases, they’ll help to point out where they are and which lines they match up on.
    • Added the ability for JuxtaCode to serve as a merge tool for Jujutsu.
    • Performance improvements when generating large diffs.
    • Fixes an occasional stack overflow crash when generating diffs.
    • You can edit a text clipping’s title by selecting it in the sidebar and pressing enter.
    • Fixed a bug that caused scrolling to break when both sides of a diff were identical.
    • Fixed a bug that caused the file drop-down menu to not fully populate at first when using ‘git difftool’.
    • Navigation toolbar buttons (up and down arrows) now become disabled when there are no segments to navigate in a diff.
  3. Version 1.2.5

    • Fixes appearance of window titlebars in macOS 26.2.
    • Fixes appearance of floating header views in commit diffs in macOS Sonoma & Sequoia.
  4. Version 1.2.4

    Fixes a potential crash when applying syntax highlighting to a commit’s diff.

  5. Version 1.2.2

    Fixes an issue that prevents app updates.

  6. Version 1.2.1

    Leverages Apple Intelligence, where available, to name text clippings as they are dragged or pasted into a comparison.

  7. Version 1.2

    • Overhauled UI to look at home with Liquid Glass on macOS Tahoe.
    • The commit list in the sidebar now loads a lot more smoothly.
    • Initial loading of local changes is now more reliable.
    • Added symbols to distinguish change types within a diff (+ added, - removed, ≠ modified, ! conflicting).
    • Fixed potential stack overflow crash when generating diffs.
  8. Version 1.1.15

    • Fixes an infrequent crash while displaying 2-way diffs.
  9. Version 1.1.14

    • Fixes handling of line separator (soft line breaks) in diffs.
  10. Version 1.1.13

    • Fixed a potential crash when viewing commit diffs.
    • Allow duplicate text clippings to be pasted into the comparison tool.
  11. Version 1.1.12

    • Fixed syntax highlighting. (For real this time. I didn’t realise the last fix only worked for the debug build.)
  12. Version 1.1.11

    • Fixed crash when viewing licence details in macOS Tahoe beta.
  13. Version 1.1.10

    • Fixed: the branch & tag popup menu was not always fully populated when a repository was first opened.
    • Fixed a regression that broke syntax highlighting.
  14. Version 1.1.9

    • Fixes an issue where the presence of multi-byte characters could cause characters to disappear and highlighting to misalign.
    • Fixes for displaying diffs via the --dir-diff option of git difftool … (also affects tool integration e.g. with Tower):
      • Fixed potential inconsistency of “added/deleted” labels.
      • Fixed issues with swapping the sides of the diff.
  15. Version 1.1.8

    • Support for Quick Look has been added in a number of places. This can be helpful when comparing non-text files (like images).
    • Different repositories with the same name will have extra path information in their window titles to differentiate them.
    • Fixed a bug preventing diffs loading correctly when initiated via Git from an external source.
  16. Version 1.1.7

    • Added ability to copy paths from files in the inspector sidebar.
    • Fixed a bug that prevented the merge tool working with Git worktrees.
  17. Version 1.1.6

    • Added ability to copy hashes from commits in the sidebar.
    • Fixed a bug that could cause license activation to fail.
  18. Version 1.1.5

    • Fixed a bug where a window could appear blank when opened with the sidebar collapsed.
  19. Version 1.1.4

    • Fixed bug that could cause avatars to flicker
    • Stability and performance improvements
  20. Version 1.1.3

    • Fixed rare crash that could occur when presenting diffs
    • Improved performance of diff generation and presentation.
    • When a 2-way diff includes the working copy of a file, the diff will now refresh when changes are saved to the working copy.
  21. Version 1.1.2

    • Fixed a crash that occurs in Sequoia.
    • The text of the commit message in the commit inspector is now selectable.
    • The expanded/collapsed state of the commit message is now persisted.
    • Sidebar entries in comparison windows (files and text clippings) can now be selected.
  22. Version 1.1

    • Added “Search Commits” feature. Search commits by message, hash, branch or tag.
    • Added “Open Commit in New Tab” feature.
    • Added “Repository” menu.
    • Refreshed branch/tag picker with section headings, badges and overflow submenus.
    • The “Compare with Previous Commit” toolbar item has been replaced with “Compare with Another Commit…”. (I intend to bring back the former in another form in a future release.)
    • Added a tip popover for selecting 2 changesets.
    • Added an inline tip to the branch picker for filtering the branch/tag list.
    • In standalone 2-way diff tabs, the info sidebar is now on the right to be consistent with other tab types.
    • Improved vertical positioning of section highlights within the scrollbar.
    • Fixed left/right sorting of changesets in 2-way diffs (A & B) to be topological where possible and not just chronological.
    • Various fixes for the font size combo box.
  23. Version 1.0.14

    • juxta installer: added the ability to opt out of making juxta the default Git diff/merge tool.
    • Fixed: diffs sometimes appeared empty or not highlighted when using certain character encodings (e.g. UTF-16).
    • Fixed: selecting a branch or tag would not work if the list had been filtered.
  24. Version 1.0.13

    Updated libgit2 to version 1.8.0 to address Git compatibility issues.

  25. Version 1.0.12

    • Fixed a rare crash caused by an out-of-bounds array index when generating a diff.
    • Fixed font size text field getting reset when using the other font drop-down controls.
  26. Version 1.0.11

    Updated the juxta installer to no longer change the owner of .gitconfig to root.

  27. Version 1.0.10

    • Fixed a crash that could occur when diffing files that have a symbolic link in their path.
    • Fixed a deadlock that could occur when selecting a commit.
    • The “Compare with Previous Commit” action now attempts to diff with a parent of the selected commit rather than just the next commit that is listed.
    • Fixed: selecting an annotated tag from the references popup menu would result in an empty commit list being displayed.
    • The current (HEAD) branch now appears above other local branches and below the default branch in the references popup menu.
    • Added a “HEAD” badge to the current branch in the references popup menu.
    • Performance improvements, especially for repositories with many files or many commits.
  28. Version 1.0.9

    • When a 2-way Git diff has focus, the ↓ and ↑ keys (without holding command or option) will now navigate between changes within a file but they will also navigate to the next/previous file rather than loop back to the start/end of the current file. The original looping-within-a-file behaviour when holding the option key is still available.
    • Improvements to the juxta installer to facilitate integrating with Git clients.
    • Performance improvements.
  29. Version 1.0.8

    • Fix: clicking in the merge tool’s scrollbar could break scrolling for the middle text view
    • Fix: “Ours” & “Theirs” buttons were showing empty popovers in the merge tool.
    • Fix: Repository state description was missing during a rebase.
    • Fix: Potential crash when attempting to view or edit license key information.
    • Support for comparing files via juxta
    • Performance improvements.
  30. Version 1.0.7

    • Workspace diffs update more quickly now. Especially for repos with many files.
    • Support for using the --dir-diff option with git difftool.
    • Text comparisons can now detect and display differences in newline characters.
    • Various performance improvements.
  31. Version 1.0.6

    • Yet more performance improvements.
    • Fixed: commits were right-justified in the file history commit list.
  32. Version 1.0.5

    • More performance improvements.
    • Fixed a crash that could occur when opening a repository.
    • Fixed a crash that could occur when using “Choose All from Left/Right” in the merge tool.
    • Fixed large diffs only partially loading when using git difftool.
    • Improved support for the various ways that git difftool can be called. E.g. using “..” notation to specify two revisions.

    Known Issues

    While support for git difftool has been improved, a couple of issues remain:

    • The --dir-diff argument is not yet supported.

      Workaround: Remove --dir-diff from your invocation of git difftool. JuxtaCode will still present a diff of the revisions that you passed in.

    • juxta does not yet support comparing 2 specific files (as opposed to revisions) via git difftool.

      Workaround: Open the files in JuxtaCode directly.

  33. Version 1.0.4

    ⚡️ Lots of performance improvements ⚡️

    And a bunch of fixes:

    • Fixed a crash that could occur when opening a diff.
    • Fixed a crash that could occur when scrolling through a list of commits.
    • Fixed visual glitches in commit list when there are a lot of branches.
    • Fixed file history not opening properly when the repository is already open.
    • Fixed File > Open… not offering to open files in file history.
    • Fixed: it wasn’t possible to select text from commit diffs.
    • Fixed: juxta would just show a repository in Finder instead of opening it in JuxtaCode.

    Known Issues

    Regrettably, using juxta with git difftool fails in a few scenarios:

    • the --dir-diff option isn’t currently supported,
    • .. notation for specifying ranges is only partially supported, and
    • diffs with a lot of files can get stuck after partially loading.

    I intend to address these issues in an upcoming update.

  34. Version 1.0.3

    Fixed the “Buy Now” button 🤡

    More meaningful improvements are in the works, but I felt I had to address this embarrassing mistake first.

  35. Version 1.0.2

    🚀 The launch release!

    🌿 Compare branches

    🧐 View file history

    ✅ Resolve merge conflicts

    ↔️ Compare text

    and more.