Sublime Merge is available for 64 bit platforms only.
Sublime Merge may be downloaded and evaluated for free, however a license must be purchased for continued use. There is currently no enforced time limit for the evaluation.
Changelog
Build 2047
23 February 2021
New Features
- Location bar: find branches easily with the new filter bar
- Location bar: ahead / behind indicators can now be clicked to push / pull
- Location bar: branch folders now have context menus
- Tags: added command to checkout tags
- Tags: added command to delete remote tags
- Stashes: added command to delete all stashes (git stash clear)
- Push: added --no-verify option
- Remote branches: added command to checkout corresponding local branch
- Custom commands: select remotes with the new select_remote selector
- Added resize_window command
- Added commit message tooltip to each parent in the parents section of a commit
Improvements
- Windows: upgraded the application title bar
- Linux: upgraded the application title bar on Gnome
- Image diffs: PSD, TGA, PPM, and PGM files now display a rich diff
- Blame: significant loading time improvements
- Commit graph: simplified context menus
- Improved indentation detection
- Switch Repository dialog: open new tabs via Ctrl key (Cmd for MacOS)
- Updated Ctrl+R/Cmd+R to run navigate_to_branch command
- Updated refresh command keybinding to Ctrl+Shift+H/Cmd+Shift+H
- Updated diff titles to elide when space is limited
- Updated theming of the files list
- Added various syntax highlighting improvements
- Detached HEAD state is now more explicit
- Remember which workspace each window is in by default (controlled via the setting remember_workspace)
- Parent folders of the currently checked out branch are now highlighted in the location bar
- Navigation commands: a warning is displayed when exiting the merge tool
- Askpass dialog now supports fingerprint input
- Askpass dialog now detects keypad Enter
- Added themed_title_bar setting
- Menu files: added submenu IDs
- Interactive rebase: the break flag is now supported
- Mac: improved OpenGL rendering performance
- Windows and Mac: Updated bundled Git to 2.29.2
- Linux: added various performance optimisations
Fixes
- Editing commits now signs the edited commits
- Added back missing progress bar for long-running commands
- Fixed newly cloned repositories not loading preferences
- Previous commit messages are now saved per-repository
- Fixed incorrect context menus displaying in location bar
- Improved compatibility on filesystems with large timestamp imprecision
- Fixed inability to revert files if their parent directory does not exist
- Fixed crash when closing the preferences page
- Fixed empty selections being rendered as a line
- Fixed window positions not restoring correctly in certain situations
- Mac: smerge now correctly restores window positions
- Mac: updated icon to follow macOS 11 style
- Mac: added a workaround for Apple M1 OpenGL graphics driver bug that caused text to be rendered incorrectly
- Mac: fixed bug in batching of large Git commands
- Mac: added workaround for the command line helper when app translocation is in effect
- Windows: added a workaround for Intel OpenGL graphics driver bug that caused black bars at the top of some windows
- Windows: fixed glyph rendering bugs
- Windows: fixed flashing when using OpenGL and resizing a window
- Windows: fixed bug in subpixel antialiasing
- Linux and Mac: fixed clean and smudge filters hanging on certain files
- Linux: fixed bug with the caret not moving after performing a text drag
- Linux: fixed freezing on KDE Plasma
Build 2038
30 October 2020
New Features and Improvements ๐
- Added commit graph theming improvements - branch colors now match graph edge colors
- Updated custom git commands to support launching editor
- Updated custom git commands to allow for selecting branches and other refs - see the docs for details
- Improved commit dialog scroll tracking
- Added navigate_to_stash command
- Added Drop Stashโฆ to the command palette
- Tweaked merge algorithm to merge nearby conflicts
- Updated clone page to trim leading and trailing whitespace
- Updated create_branch/rename_branch command to convert whitespace to hyphens
- Improved lexer performance
Preferences ๐๏ธ
- Added editor_wait_args to preferences
- Added preference set GIT_SSH env var (useful for overriding the default SSH client)
- Updated preference categories
Git โ๏ธ
- Updated image diff file size limit
- Fixed bug were commits only reachable by tags were not visible
- Fixed edge case bug when staging single lines
- Fixed revert hunk displaying success message in some failure cases
- Fixed bug where some Scalar pack files weren't loaded
- Windows: fixed bug with git config path resolution
Miscellaneous Fixes ๐
- Fixed incorrect ordering of commit dialog tabs
- Fixed smerge not preserving session information in some situations
- Fixed session loading bug with multiple repository tabs
- Fixed bug with Korean IME
- Fixed commit summary sizing bug
- Fixed inability to scroll to the end of the commit dialog in some circumstances
- Fixed invalid initialize submodule menu item
- Renamed Show Branchโฆ to Show Hidden Branchโฆ
- Fixed edge-case in delete_remote command
- Fixed theme reloading twice
- Fixed clone page not receiving input focus by default
- OpenGL: fixed rendering issue due to AMD driver bug on Windows
- OpenGL: fixed blurry checkboxes
- OpenGL: improved bold rendering with bugged intel drivers
- Syntax Definitions: fixed infinite loop bug
- Syntax Definitions: renamed TypeScript to TSX, and added a new vanilla TypeScript syntax
Build 2032
25 August 2020
New Features and Improvements ๐
- Added full file diffs - click the toggle button in the hunk header to toggle between individual changes and the full file
- Added Git LFS image diff support
- Improved performance when loading image diffs
- Added history dropdown to the search page
- Added tab selector to the repository tab bar
- Improved --set-upstream behavior
- Linux: added touch event handling
Rendering ๐จ
- Fixed an OpenGL text rendering issue
- OpenGL: fixed glyph corruption due to an AMD driver bug on Windows
- Mac: fixed rendering bug
Diffs ๐
- Fixed clean filters not applying to modified files
- Fixed context dragger not displaying for some diffs
- Fixed scrolling behavior regression in commit dialog
- Windows: fixed directory junctions being marked as untracked
- Fixed line-based operations failing occasionally
Miscellaneous Fixes ๐
- Updated show_all_refs to display when any refs are hidden
- Fixed incorrect context menu behavior when the underlying controls are updated
- Fixed signed tags failing when no tag message is supplied
- Fixed custom themes not loading into askpass dialogs
- Fixed input focus handling in commit dialog
- Improved scrolling behavior in preferences page
- Windows: fixed crash on Windows due to IME
- Windows: fixed clone page not automatically populating source URL
- Windows: fixed bug in open_dir_in_sublime_text
- Mac: added support for editor arguments in preferences
- Windows: fixed crash when window edge overlaps with faded text
Build 2027
28 July 2020
- Fixed high memory usage associated with image diffs
- Windows: fixed open_dir_in_sublime_text sometimes missing on Windows
Build 2025
22 Jul 2020
New Features and Improvements ๐
- Added image diffs
- Added Revert Hunk
- Added rename_remote command
- Added --set-upstream option to push menu
- Added always_show_command_status preference
- Commit Signatures: added GPG4Win support
- Search: added tree operator, which matches commits with the given tree hash
- Improved merge algorithm for merge tool
- Improved gitflow finish support
- Added drag-drop support to welcome page
Rendering ๐จ
- Fixed several OpenGL related rendering issues
- Color Schemes: Fixed text background drawing over underlines
Syntax Definitions ๐
- Added out of the box support for TypeScript and JSX, with thanks to Thomas Smith
- Added "extends" keyword in .sublime-syntax
- Added "version: 2" in .sublime-syntax to fix edge cases while retaining backwards compatibility
- Added lazy loading of external "embed" actions
- Reduced cache size on disk
- Prevent infinite include loops via with_prototype
- Improved matching performance and memory usage
- Added "hidden_extensions" in .sublime-syntax
- Allow combining "pop" with "push"/"set"/"embed"/"branch"
- Fixed a number of scope related bugs
- Fixed some regex capture related bugs
Input Handling โจ๏ธ
- Added forward and back navigation to mousemap
- Mac: Fixed ctrl+mouse1 not matching the behavior of mouse2
- Windows: Fixed IME bugs
Miscellaneous Fixes ๐
- Windows: safe mode is now activated via shift+alt
- Search: fixed typographical error
- Fixed git command output scrolling when output overflows dialog
- Fixed freeze when switching tabs while command palette is open
- Fixed some symlinks being incorrectly marked as modified on Windows
- Session is now saved when application is notified of system shutdown
- Improved contrast between selected and unselected repository tabs
- Fixed minor file tab theming bugs
- Fixed crash when core.ignorecase is enabled
- Fixed crash when navigating to a commit message while rebasing
- Location Bar: fixed incorrect branch count with nested branches
- Files Bar: fixed selection regression in tree view
- Fixed selection bug in command palette
Build 2020
26 May 2020
General
- New UI, including repository tabs
- GPU Rendering
- UI: Reworked Commit Dialog
- UI: Added repository tabs, to have multiple repositories open in a single window
- UI: Added file tabs when viewing the contents of a commit
- Implement commit signature creation and validation
- Added a lines changed indicator to commits
- Added command history, available from the Show Git Output icon in the tool bar
- Added commit message history, available from the dropdown arrow in the commit message box
- Added support for non-overlay scrollbars in diffs
- Added Resolve Ours / Resolve Theirs dropdown to unmerged files
- URLs in commit messages and git output can be opened via the context menu
- Left and Right keys can be used to expand/collapse merge commits
- Added Navigate/Go to Child
- Stash commands no longer supply -q by default, to work around a bug in Git 2.24
- Checking out a hidden ref will make the ref visible
- Add Recent Repositories to Welcome Page
- Search: Added before and after operators
- Added set_preference and toggle_preference commands
- Added gitflow publish support
- Preferences: Updating settings via the preferences dialog no longer clears comments in the settings file
- Preferences: Added Preferences entry for Ignore Whitespace in diffs
- Added checks for pushDefault and pushRemote when pushing
- Added Tools/Show Console
- Improved selection behavior while loading large repositories
- Improved menu auto hide behavior on Linux and Windows
- Improved performance with a very large number of untracked or modified files
- Improved performance in repositories with a large number of authors
- Running smerge without any arguments will focus the current window, if any
- Fixed not being able to commit when email is set to empty string
- Fixed a bug in destination path calculation in the clone dialog
- Fixed Create Tag with an empty message creating the tag incorrectly
- Fixed hunk staging using the wrong encoding in some scenarios
- Fixed shift+enter staging a file even when focus is in commit message box
Merge Tool
- Indentation settings are now automatically detected from the contents of the file
- Saving a file with unresolved conflicts will warn before saving
- Added a preference to trim trailing whitespace on save
GPU Rendering
- New hardware_acceleration setting will composite the UI on the GPU
- By default, GPU rendering is enabled on Mac, and disabled on Windows and Linux. This can be changed via the Preferences dialog.
- Details about the active GPU will be displayed in the Console
Git
- Git: Added support for smudge and clean filters, enabling Git LFS support
- Git: Improved handling of the working-tree-encoding attribute
- Git: Improved parsing of .gitattributes files
- Git: Added support for GUI encoding config
- Windows and Mac: Updated bundled Git to 2.26.2
- Windows: Fixed core.worktree support
- Submodules: Added Initialize All Submodules context menu
- Submodules: The location bar now indicates the value of HEAD for each submodule
Editor Control
- Expanded draw_white_space setting, supporting leading and trailing white space
- Unicode white space characters, such as the zero width no-break space, are now drawn as hex values. Controlled via draw_unicode_white_space setting.
- Spell Checking: Added support for languages with upper case characters after start of word
- Spell Checking: Updated dictionaries
- Spell Checking: Added support for non-utf8 dictionaries
- Spell Checking: System dictionaries are now available on Linux
- Spell Checking: Dictionaries in ~/Library/Spelling are now available on Mac
- Linux: Text drag and drop is now supported
- Linux: Added support for alternate font weight names
- Linux: Selection is no longer cleared when another application makes a selection
Text Commands
- Improved behavior of Wrap Paragraph
- Improved behavior of Swap Lines
- Added Selection/Expand Selection as a general mechanism to expand the selection
- Selection/Split into Lines will now split a selection into words if the selection doesn't contain any newlines
- Fixed swap_line_down not being able to swap an empty line onto the last line of a file
Input Handling
- Modifier key taps can now be used as part of a key binding. For example, ["ctrl", "ctrl"] will trigger when Ctrl is pressed twice without pressing any other keys in between.
- Linux: AltGr can now be used in key bindings via altgr
- Linux: Added a workaround for a touchscreen driver bug, which would cause right click and mouse scrolling to stop working
- Linux: When the menu is hidden, pressing alt will show it
- Linux: Improved compatibility with some keyboard layouts
- Mac: Fix Pinyin input
- Mac: Keypad keys can now be bound to as expected
- Mac: Improved compatibility with some keyboard layouts
- Windows, Linux: Hide mouse cursor when typing. Controlled via hide_pointer_while_typing setting.
- Windows, Linux: Fixed being unable to bind Ctrl+Break
- Windows: Improved IME support
- Windows, Linux: Added Shift+F10 key binding to open the context menu
UI
- Added highlight_gutter and highlight_line_number settings
- Themes now have a style property for title_bar element, for better integration with OS "dark modes"
- Color Schemes: Added glow font option to color schemes
- Color Schemes: Added support for the underline font style
- Linux: Show sequential key bindings in the menu
- Linux: Fixed context menu position being slightly offset
Rendering
- Windows, Linux: Added support for per-display subpixel ordering
- Mac: Improved window resize performance
- Windows: Fixed rendering bug where other applications could cause persistent artifacts via window animations
Application Behavior
- Added Safe Mode, to simulate a clean install. Enabled by passing --safe-mode on the command line.
- Holding down Shift on Windows, or Option on macOS, will start Sublime Merge in Safe Mode
- Settings containing a UTF-8 BOM will no longer fail to load
Syntax Definitions
- Added ability to "branch" within syntax definitions, for non-deterministic or multi-line constructs
- Many syntax highlighting improvements, including significant improvements to:
- Improved syntax definition load time
- Fixed a performance issue with bounded repeats in regular expressions
Build 1116
3 June 2019
- Large files are now only diffed when clicked on
- Merge Tool: Added Take Left and Take Right options
- Merge Tool: Can now Save and Stage in one action
- --no-verify can be passed when committing
- Rebase Commit is now available in the context menu for all commits
- Revert Commit now works with merge commits
- Added separate key bindings for Stage All and Stage All Modified files for clarity
- Added an explicit close button to the search bar
- Table of Contents: Clicking an already selected row no longer closes the diff
- Various syntax highlighting improvements
- Improved behavior when doing a line restricted file history search and toggling ignore whitespace
- Added support for the intent-to-add flag in the index
- Fixed includeIf handling in git config files not interpreting ~ relative paths correctly
- Fixed UTF8 BOMs not being handled correctly in .gitignore files
- Fixed Edit Commit Message not working in work trees
- Fixed standalone merge tool not supporting the key binding for Next Conflict
- Fixed smerge mergetool not handling relative paths correctly
- Fixed smerge log <dir> not working as expected
- Mac: Added a workaround for a macOS OpenGL driver bug in 10.14.4
- Linux: Fixed incorrect file ownership in the deb packages
- Linux: Added support for text drag and drop
- Linux: Improved high dpi handling under KDE
Build 1107
12 March 2019
- The Contents section of the sidebar can now be switched between showing changed files and all files
- Sublime Merge can now be used as a standalone merge tool, via the smerge command line helper. See smerge --help for details.
- Merge tool: Improved UI for switching between the Base file and the Merged file
- Added Navigate/Go to Parent menu item
- Improved clone dialog
- Improved side bar context menus
- Various syntax highlighting improvements
- Merge tool now indicates which lines have been modified in the merged file
- Merge tool: swap_line_up, swap_line_down and duplicate_line commands are now supported
- Fixed git flow commands appearing inconsistently
- Mac: Add full support for macOS native tabs
- Mac: Ensure context menus are shown without scrolling
- Mac: Error message dialogs can now be closed with the escape key
- Linux: Color glyphs are now drawn properly on light backgrounds
- Windows: Fix DirectWrite handling of fonts with lineGap > 0
Build 1103
24 January 2019
- New Preferences Dialog
- New Merge Dialog
- Added support for includeIf in Git config files
- Various syntax highlighting improvements
- Windows and Linux: Improved IME compatibility
- Added Navigate to Branch
- Added Navigate to Tag
- Added Set Branch Upstream to the Command Palette
- Added Hide Branch to the branch context menu
- Added Hard Reset option to the diverged banner
- The diverged banner now shows the exact git commands that will be run in tooltips
- Improved behavior of clone dialog when selecting a target directory
Build 1097
6 December 2018
- Various syntax highlighting improvements
- Fixed backspace not discarding selected lines
- Mac: Improved resize performance
- Mac: Fixed missing key bindings in menu items
- Windows: Fixed Clone dialog not working correctly
- Windows: Updated Git Credential Manager to 1.18.1
- Linux: GTK3 + Wayland compatibility fixes
- Linux: Fixed GTK3 double and triple click handling
- Linux: Fixed a crash when using GTK_IM_MODULE=xim
Build 1092
29 November 2018
- Added Contents view in the side bar, to focus on individual files
- Double-clicking or pressing space in the commit graph will focus on the first file of the selected commit
- Added Word Wrap
- Clone: Can now change the directory name being cloned into
- Added hide_menu setting
- Edit Commit: Added Edit Commit Contents
- Edit Commit: Added Fixup Commits
- Edit Commit: Can now Drop multiple commits at once
- Edit Commit: All Edit Commit operations now work with a detached head
- Preferences: Can now set rulers via the preferences menu
- Added Open Repository in Sublime Text menu item
- Binary file detection heuristic now matches Git
- Search help text is scrollable
- Unicode: Improved rendering of combining characters
- Ignore whitespace now only ignores space and tab changes, not newline changes
- smerge blame now starts the blame from HEAD, rather than the selected commit
- Fixed Delete Branch not always prompting for force delete when it needs to
- Fixed line history not showing the initial commit that added the file
- Fixed smerge blame not navigating to the target line when Sublime Merge is already running
- Fixed search results being cleared when the repository is modified
- Fixed viewing trees from search results not working when the commit is folded away
- Git Flow: Fixed menu commands not working as expected
- Fixed SSH Askpass helper only showing the first prompt line
- Windows: Fixed handling of daylight saving time
- Linux: Moved to GTK3
Build 1084
29 October 2018
- Search: Added contents: operator, to find commits introducing or removing text
- Can now ignore whitespace changes in diffs (available from the context menu)
- Edit Commit: Added Squash Selected Commits
- Support for core.worktree
- Window state is now restored when re-opening a repository
- Search: Merge commits are now automatically excluded when the query includes path:, file: or contents:. Specify min-parents: 0 to include them.
- Location Bar: Tags are grouped into folders if they have a slash in their name
- Tweaked commit graph rendering
- Add new preference, time_format
- Preferences: Default values are now indicated, rather than null
- Preferences: Unquoted strings are accepted
- Improved handling of network issues when working with repositories over a networked file system
- Navigate to Commit now works as expected for hidden commits
- Fixed context splitter showing through hunk headers
- Fixed expand_merge_commits_by_default not being applied correctly at startup
- Fixed bold text sometimes being applied incorrectly in the side bar
- Fixed a blame regression in 1079
- Mac: Added gpu_window_buffer setting, to disable usage of OpenGL
Build 1079
21 October 2018
- Added "Merge Withโฆ" context menu to merge a branch with flags (--squash, --no-ff, etc)
- Edit Commit: Added Move Commit Up
- Edit Commit: Added Move Commit Down
- Edit Commit: Added Drop Commit
- Commit context menu tweaks
- Location Bar: Refs are sorted via natural sorting, making numeric refs sort as expected
- Make tag message optional for git flow finish command
- Add git_env preference, to set the env vars git is launched with
- Fixed a crash regression in 1075
- Fixed stash labels having the wrong size
Build 1075
16 October 2018
- Submodules are shown in the location bar
- Submodules: Double clicking on a submodule will open the corresponding repository
- Submodules: The number of modified and untracked files are shown next to each submodule
- Submodules: New submodules can be added by right clicking in the location bar, or via the Command Palette
- Submodules: Added functionality for Initialize, Update and Sync
- Git Flow: Added support for git flow commands, via the Command Palette
- Added setting expand_merge_commits_by_default, to unfold all merge commits by default
- Show line and column position when entering a commit message
- Partially entered commit messages are stored in the session
- Hovering over a remote in the location bar will show its URL
- Added key bindings for Pull and Push
- Stage All will set input focus to the Commit Message entry box
- Fixed Stash key bindings not being set correctly on Windows and Linux
- Fixed per-branch ahead/behind counters not matching git output
- Fixed entries removed from .gitmodules not being handled the same way as git
- Fixed always visible scrollbars for submodule changes
- Fixed a case where remote branches would be displayed incorrectly in the location bar
- Fixed remotes with dots in their name not being parsed correctly
- Fixed unix domain sockets showing up as untracked files
- Windows: Updated bundled git to 2.19.1
- Windows: Fixed extraneous horizontal scrollbar in some high dpi modes
- Windows: Minimized and Maximized windows are now restored as expected
- Mac: Updated bundled git to 2.19.0
- Mac: Clicking on the dock icon will create a window if there are none
Build 1070
10 October 2018
- Commit Folding: Merge commits are now folded by default; click on their icon to unfold
- Location Bar: Branches can be hidden by clicking on the new eye icon
- Location Bar: Alt-clicking will hide everything but the clicked on branch
- Location Bar: The location bar is now a tree
- Location Bar: Branches with slashes in their name are grouped in folders
- Location Bar: Added per-branch ahead/behind counters
- Location Bar: Width is stored in the session
- Added Copy to Clipboard in the branch context menu
- The commit message is now preserved when git commit fails
- Added a Tools/Password Caching menu to easily setup credential caching on Linux
- Added a git_config command to set git configuration options via the keyboard or menu
- Clicking next to the author label no longer shows the Edit User dialog
- Allow creating tags with empty messages
- Fixed incorrect submodule handling with core.ignorecase turned on
- Fixed a regression where the Continue Rebase button wasn't being shown
- Fixed a case where git attributes weren't interpreted correctly
- Changed handling of invalid gitignore rules, such as **\test to treat them the same way as Git
- Fixed a crash that could occur when parsing git config files
- Fixed a crash that could occur when closing a repository
- Mac: Improved font rendering on Mojave
- Mac: Fixed some commands not working when using the bundled version of git
Build 1065
2 October 2018
- Added Stage All and Discard All buttons
- Git worktrees are now supported
- Support for .git directories populated with symlinks, as in AOSP
- core.commentchar is now understood
- Improved comment filtering when entering commit messages: only automatically generated comments will be stripped
- Improved rename detection when viewing diffs and searching for files
- Search: Now accepts "commit:" terms for search by commit hash
- Restyled git error popup
- Stash can now accept a message
- Merge Tool: Improved LF vs CRLF selection logic
- Fixed incorrect default value for core.excludesfiles
- Fixed handling of backslashes in .gitignore files
- Ctrl+F/Cmd+F no longer starts searching while in merge mode
- Mac: Fixed windows being created offscreen in some setups
- Mac: Fixed alpha blended windows on Mojave
Build 1062
27 September 2018
- Fixed a regression in 1061 where unmerged files weren't updating
- Mac: Basic support for Mojave Dark Mode
Build 1061
26 September 2018
- Full core.ignorecase support, fixing some cases where status output differed from git
- Added support for core.precomposedunicode
- Added support for core.filemode
- Added support for core.symlinks
- Mac: Query login shell for default env vars
- Fixed not checking $HOME/.config/git/config as a default config file path
- Improve change descriptions for submodule changes
- Merge Tool: Improved LF vs CRLF selection logic
- Tweaked scroll delta when scrolling with the mouse wheel
- Windows: Adjust $HOME calculation to match Git
Build 1058
21 September 2018
- .gitgnore rule handling improvements
- Improve handling of case-insensitive repositories
- Allow committing to a detached head
- Support for files marked --assume-unchanged and --skip-worktree
- Fix dropping of stashes from the location bar not working correctly
- Windows: Added SSH askpass support
Build 1055
20 September 2018