SourceTree 1.6.0b3 - Minor Release
- Squashing commits now yields a more useful commit message in interactive rebase
- "Squash with previous" didn't actually squash with the previous node for interactive rebase, it squashed with the next node.
- "Log selected" for a single file in file status view specifically for a Git repository wasn't working in the English translation only.
SourceTree 1.6.0b2 - Minor Release
- You can no longer click on any other buttons when you're editing a commit message in interactive rebase.
- The correct nodes now get selected when you move nodes up/down/in/out in interactive rebase.
- Shortcuts for cancelling/submitting a message edit in interactive rebase now works as expected.
- The message text when dragging/dropping commits is checked and will be automatically amended if it wasn't already edited (smart message generation)
- Added a "default" rebase interactive option which behaves just as if you didn't pass a SHA to "git rebase --interactive".
- Log selected on multiple files now shows a comma-separated list of the files you previously selected.
- There is now a "re-register" button when registering your copy of SourceTree in case you want to use different login details (i.e. work and personal).
- Commit messages were retaining previous memory location in interactive rebase, the message is now copied instead.
- Links to help documents now work
- Araxis Merge now works if you had a previous version of Araxis Merge installed
- GRI now works even if there's spaces in your applications path
- Log selected on multiple files wasn't working in the file view, this now works as expected
- Context menu click on a GRI row wasn't causing a row selection
SourceTree 1.6 - Major Release
- Git rebase interactive introduced allowing you to interactively rebase right from within SourceTree.
- Atlassian ID integration allows users to register SourceTree with Atlassian directly from within the application.
- "Log Selected" context menu option now allows you to select multiple files
- The menu option "File > New" now shows as "File > New / Clone" to make it clearer what you can do from the sheet for users who don't understand where to clone from.
- Borders in all views are now cleaner by reducing their width. Also introduced borders into views that had them missing.
- You can now have passwords that are up to 75 characters long instead of 50 characters for GitHub, Bitbucket, Kiln and Stash.
- The latest Araxis diff/merge tool now works with SourceTree
- Git remembers previously selected options in the merge/pull dialogs and sheets.
- The "commit merged changes immediately" checkbox is now remembered between pulls
- Notification support for new commits compatible with 10.6+ (Growl required for Mac OS 10.6/7)
- The push sheet in Mercurial now shows if you're pushing a new branch to a remote.
- New preferences option to change pull counts to reflect the currently checked out branch in Mercurial.
- Repositories in bookmarks now refresh if they were children of a folder that was previously collapsed once expanded again.
- External diff wasn't working correctly with "ignore whitespace" when selected lines were being staged.
- Two options for the merge tool were being set simultaneously in SourceTree preferences.
- Set a minimum size on the File Log window as you could reduce it to whatever you wanted. This caused a view bug if you reduced it to nothing and expanded it back out again.
- When closing the entire branches tree, upon a manual refresh it won't auto-expand the branches tree against your will
SourceTree 184.108.40.206 - Hotfix
- Fix default branch selection in git push dialog when only a subset of branches should be selected,
for example when using the 'current' branch push option.
SourceTree 1.5.7 - Minor Release
- Kaleidoscope 2 now supports merging. Added support for use as an external merge tool.
- Allow adding of ignored files when user requests it
- When selecting 'Current Branch' in the log view, allow user to specify 'First Parent Only' to not follow merges back to their originating branches.
- Added an option for Git commits to "bypass commit hooks" which uses the --no-verify flag to the commit. This is activated on the commit sheet by checking a check box at the bottom of the sheet.
- You can now remove remotes directly from the sidebar context menu.
- When committing and pushing, if the commit succeeds but the push fails, close the commit dialog rather than return to the commit dialog.
- Some more Japanese translations updated
- Fix 'Select All' checkbox being checked on re-opening the Push dialog (Git)
- Now when you checkout a branch the sidebar will expand to display it if necessary
- Correctly deal with the case of a commit message with a '[*]' prefix, which could previously break detection of remote branch
- In Gitflow/Hgflow Next Action dialog, buttons can be navigated via the keyboard now if System Preferences are set to tab through buttons.
- Fix not automatically refreshing remotes when a user manually edits their .hg/hgrc file outside of SourceTree.
- Disable the version prefix option in Hgflow because it is not supported by the current stable version of hgflow
- Fix the Branches list in Mercurial Push dialog advanced section sometimes including invalid characters
- Clear the revision field when re-opening the Mercurial Pull sheet.
- Fix support for Kaleidoscope diff when updated to version 2.0+
- Fix not being able to use both the custom git and custom git-flow at the same time.
- Display a more informative message when Stash login fails.
- Fix not being able to drag and drop folders onto SourceTree dock icon in the Mac App Store version (always worked in direct download version)
SourceTree 1.5.6 - Minor Release
- Fix an obscure crash bug when re-selecting a range of log rows and fromRow > endRow (and from is across a load boundary)
- Add new keyboard shortcut (Cmd-Alt-R) for Revert/Reset Selected
You used to be able to do Shift-Cmd-R but this was supposed to be the toolbar revert, i.e. a dialog, when this was fixed you lost the ability to do a keyboard-only revert of the current selection, so add a new shortcut
- Task window progress bar should turn solid blue on completion instead of remaining striped
- Only enable 'Diff against current' if selecting a different branch, or uncommitted changes exist
- Fix bug opening the create new hosted repository sheet if no hosted account is set as the default
- Fix layout of French & Japanese Create New Hosted Repository sheet
- Fix sizing issue in git/hg-flow preview panel that could cause unnecessary scroll bars, which were intrusive on Snow Leopard
- Update outgoing count immediately when finishing a feature / release / hotfix in hg-flow
- Fix crashing when Mac OS 9 carriage returns added before commit message
- Improve handling of 'Resolve using mine' and 'Resolve using theirs' in rebase scenarios
- Enable 'Resolve Using Mine/Theirs' in more cases now that the underlying action is more robust. In particular this now works for cases where you pull in hg into uncommitted changes and there's a conflict
- Automatically replace spaces in remote names with underscores in git, which doesn't allow them
- Deal with git ambiguity caused by having a file called HEAD in the root of the file system
SourceTree 220.127.116.11 - Minor Release
- Fix startup crash on Mac OS 10.6
- Properly cope with filenames which are escaped in git status such as "____".txt
SourceTree 1.5.5 - Minor Release
- Log view now maintains its contents rather than clearing them when refreshing, except when explicitly triggered by Cmd-R, a filter/sort option change, or following an explicit action (like Commit). This leads to a better user experience when there are outside changes causing
SourceTree to re-check the log.
- Updated the Bitbucket icon in the setup wizard, and added Stash support
- Add extra 'Show Modified' file status filter which excludes untracked files. This can
be a good optimisation for general use on very large repositories, particularly in git,
since finding untracked files can take most of the time.
- Updated Japanese translations
- Safety check to prevent crash with badly formed remote entries in .git/config
- Fix a couple of account saving problems in the Setup Wizard
- Updated hgsubversion to fix compatibility with hg 2.3
- Fix keyboard text input in strip field on apply patch dialog
- Fix 'rebase is not a git command' error on Mountain Lion when finishing a git-flow feature with rebase
SourceTree 1.5.4 - Minor Release
- Added the option to use custom git-flow install (note: must include some recent fixes, details
available when selecting the option).
- Added a menu option 'Open Selected Version' to log views so you can view a historical snapshot of a
file more easily. Previously this was available only via the Quick Look dialog.
- Change description of the --keep-index option in the Git stash dialog to be clearer
- Fix inability to install command-line tools if a version prior to Mountain Lion certificate change was already installed
- Fix bug invoking custom actions with multiple commit SHAs
- Fix bug detecting current git-flow feature in the case of multiple open features
- Translations for custom git-flow use (SRCTREE-1149)
- Fix Reset and Stash options being incorrectly disabled when only renamed files
- Fix resetting renamed file in git
- Do not set permanent --no-ff option based on last merge; instead treat it as a once-off in this dialog and use Preferences to set permanently
- Fix inability to access Pull option on sidebar context menu for nested branch tracking a remote branch
- Make the 'Rebase instead of merge' option on the top-level Git merge sheet work: behave like sidebar right-click rebase
- Make sure full task output is displayed if user requests it even if the intention of the function is to close even on failure (to perform special failure processing)
- Fix git-flow finish feature with rebase option; need to add git-flow to PATH to deal with recursive calls in script
- Fix using tildes in paths when creating a patch
- Fix a problem where Safari login context was overriding the user name for REST API calls to Bitbucket if different
- Fix instability of disabled commit checkboxes when opening git commit with 'commit selected' then switching to 'commit staged' and refreshing
- Fix context menu bookmark options when right-clicking when app doesn't have the focus
- Fixed Actions > Open menu action in Bookmarks opening hovered bookmarks instead of selected bookmarks when using the keyboard shortcuts
SourceTree 1.5.3 - Minor Release
- Do not allow git/hg flow to be initialised with blank prefixes for feature, release, hotfix
- Make sure scroll bars reset to top when switching files in diff view
- Preserve symlinks when selecting a system Git version (e.g. homebrew)
- Fix error messages when GitHub v3 API login fails
- Eliminate cases of annoying repeat password prompting when keychain retrieval fails for some reason (usually temporarily until the next app restart, appears to be down to conflicting update scenarios).
SourceTree 1.5.2 - Minor Release
- Fix start-up crash specific to Mac OS X 10.7.2 (10.7.3+ and 10.6 were not affected)
- Fix incorrect display of the Hg Flow warning message when initialising Git flow
- Fix inability to launch a file-based custom action from the context menu on the log view when the uncommitted line was selected
- Fix failure to restore sidebar expansion state when there are multiple nested branches
- Fix not displaying more than 30 owned GitHub repositories
SourceTree 1.5.1 - Minor Release
- Retina display upgrade - SourceTree now includes higher resolution icons and other tweaks to improve the appearance on MacBook Pros with Retina displays.
- Display both the author date and commit date in commit details for Git if different
- Added a Preferences option in Git to choose between author date and commit date in log table.
- Repository window titles now instantly update when bookmarks are renamed.
- When unstaging a file deletion in Git, don't automatically restore the file, leave it in the 'Missing'
state so that it's the exact inverse of staging a Missing file as expected. The 'Reset' option is still
available to undo the deletion and restore the file at the same time.
- Make sure base path & strip options are correctly used in the Apply Patch sheet when manually entered and not tabbed out of
- Fix the error message when opening an invalid working copy so that it does not imply that local Subversion repositories are supported.
- Search %include files referenced in user .hgrc for extensions to ensure they are correctly recognised
- In clone sheet, make sure error details button is hidden when clearing the clone source field after an error
- Ensure that Bitbucket hg repo URLs don't get reported as Subversion in the event that Mercurial fails for some reason
- Fix bug in launching custom actions whose script name is less than 3 characters
SourceTree 1.5 - Major Release
For Snow Leopard users: 1.5 fixes your auto-update problems for future updates, but you will need to manually download this update to get the fix.
- git-flow and hg-flow support - use git-flow and the Mercurial equivalent directly in
SourceTree to formalise your use of feature branches and organise releases/hotfixes. Intelligently defaults the next likely workflow action, and lets you preview the branch changes which will occur at each stage.
- Reverse granular changes from previous commits - there are now 'Reverse' buttons in
the diff pane of the log view allowing you to reverse changes from previous commits at a file,
hunk and even line level. This gives you more flexibility over backing out an entire commit.
- Added support for default push options other than 'matching branches'. You can change this in Preferences now to other defaults (e.g. 'current').
- Added global preference to disable fast-forward merges, takes effect on context menu merges too
- Support creating a branch at a commit other than HEAD (right-click in log)
- You can now view extra tag details like the message and GPG signature via the sidebar
context menu for a tag
- Optionally allow skipping of submodules during clone
- Embedded Git updated to 18.104.22.168
- Support 'default-push' remote for push if it exists, so for example you can pull from upstream 'default' and push to your own fork called 'default-push'.
- Embedded Mercurial updated to 2.2.2
- When using a fixed-width font in the commit window, a line length guide is now available (72
characters by default)
- In fullscreen mode it's now easier to identify repositories due to the title being displayed in the bottom right.
- Support creating new repositories under team / organisation accounts in Bitbucket
- Optimised start-up behaviour and bookmarks refresh to prevent too many threads being spawned on
- Support dragging & dropping bookmarks to other apps (passing the repository paths)
- Retina friendly main application icon. Icons within the app will be updated for Retina displays soon.
- Updated to new official git icon. Used a monochrome version in most cases though because early testers reported that the
orange version looked too much like an error/warning icon when it appeared in the UI.
- Fixed auto-update failure on Mac OS 10.6 (note, you will need to manually download 1.5
on Mac OS 10.6 at least once in order to get the update which then fixes future auto-updates)
- Fixed log view not refreshing on pull/strip/reverse operations when auto-refresh (based on file events) is disabled
- Fixed git revision details being completely blank in the log view when created with "git commit --allow-empty"
- Maintain the display of the bookmarks view under refresh behaviour more often for usability
- Changed default log ordering in Git to 'Ancestor Ordering' to avoid problems with out of order commits.
- Fixed submodules no being updated when checking out a remote branch in Git
- When typing into the 'Specific commit' box, automatically select that option in tag/start flow
- Fixed an inaccessible git remote preventing other remotes on the same repo having their in/out figures updated
- Default search 'to' date to 1 year forward instead of 1 day - if user leaves window open for more than one day then this would exclude recent commits incorrectly
- Fix bug in repo settings where new remote name would be empty when default checkbox automatically checked
- Fix trailing space sneaking in to per-repo user settings
- Handle the relocation of opendiff in recent versions of Xcode more elegantly without requiring user to resolve themselves
- Better unicode support for Japanese Dakuten characters and similar composed characters
- Correctly respond to branch clicks on the sidebar even when it doesn't result in a selection change
- Deal more gracefully with broken git-svn configurations
- SourceTree icon now displays at a better resolution in Quicksilver
- Translation refinements
SourceTree 22.214.171.124 Hotfix release
- Fix listing watched repositories with the GitHub v3 API
- Use new private/public option correctly when creating repositories via GitHub v3 API
- Fix focussing issues on create repo sheet when changing types
SourceTree 126.96.36.199 Hotfix release
- Fix GitHub API integration, problem was caused by API v2 being removed on github.com
- Note: SourceTree now uses GitHub API v3, which currently does not appear to support listing watched repositories (outside of your user / organisations), so these will
no longer be listed.
SourceTree 1.4.4 Maintenance release
- Switched to Developer ID code signature for compatibility with Mac OS X 10.8 Mountain Lion (Gatekeeper)
Please note: you will be prompted to permit SourceTree access to your keychain etc again because of the unavoidable change to SourceTree's code signing identity.
- Fix missing label text on delete git tag dialog for English translation
- Fix unable to remove remote tag in Git if deleting the tag via the toolbar
- Fix checkout from toolbar button not pre-selecting the current selection on the second time opening
- File log window now remembers its size/position
- Blame window now remembers its size/position
- When cloning, ignore any 'git clone' or 'hg clone' prefix that might get copied/pasted in from command-line hints or documentation
- Fix bookmarks window always opening when using stree to open a repo even if it was closed last time
- When performing operations on a list of files which starts to get into the thousands, detect when the command line is getting too long and split into multiple tasks automatically
- Add missing refresh suppression during some tasks which can become long (add, pull) to avoid thrashing
- Fix git summary status reporting a non-zero untracked items count for a dangling submodule when the file status detail already filtered it out
- When pulling in git, make sure we deal with merge conflicts more explicitly so user doesn't have to unintuitively cancel the dialog afterwards to get out to resolve them
SourceTree 188.8.131.52 Hotfix
- Fix a problem with Git subrespositories in a Mercurial repository
SourceTree 1.4.3 Maintenance release
- Offer to delete remote tags in git when deleting them locally
- Support renaming branches from the sidebar in git
- Save & restore a default window frame for non-bookmarked repositories
- Offer the option to disable the SSL cert check in Git
- Undo / redo now works correctly in commit message drafting pop-up
- Fix amending a previous commit and changing the author back to the current committer settings
- Fix default destination path when clone source has a colon in its name and no path e.g. SSH aliases
- Deal more explicitly with SSL self-signed certificate errors, offer more helpful advice
- Japanese translation fixes
- Fixed issues with saving passwords to keychain when an incorrect entry already existed.
- If a keychain entry for a specific protocol is not found, try any general protocol before asking the user again - can eliminate an unnecessary prompt where a host is used via multiple protocols.
- Fix editing GitHub and Bibtucket account details if edited after a Stash / Kiln account.
- Synchronise the draft commit message with the commit dialog contents when cancelling so any changes are preserved
- Fix auto-refresh behaviour if hg bookmarks are changed outside SourceTree
- Handle [subpaths] entries in .hgsub correctly
- Fix clipping of lines in the diff preview if the longest line is far down within a single hunk
- Reset the scroll position of of the diff pane back to the top when changing the list of files being diffed, or the commit(s).
- A few memory optimisations
SourceTree 1.4.2 Maintenance release
- Add Add/Remove keyboard shortcut
- Add the ability to change some view options in the Bookmarks Window context menu
- Add Mercurial preferences option to allow user to choose whether to show multiple heads for a branch in the sidebar
- Honour the commit.template setting in git if user has set it by defaulting the contents of the commit window.
- When pulling from Subversion, don't change the global post-pull action to rebase, just change it for that pull
- Fix failure to properly save hosted accounts in the setup wizard on a clean machine
- Fix using main menu External Diff on log view when a range of revisions is selected
- Fix a problem with determining tracking branch when local branch is not tracking anything but commit message includes square brackets
- Gracefully handle the case of the system running out of file descriptors instead of crashing
- Don't manually sort the branches / tags in the sidebar, use the sorting from hg/git which already deals with version numbering sorting better e.g. 1.10 after 1.2
SourceTree 184.108.40.206 Hotfix release
- Fix sourcetree:// links in Bitbucket and Stash not working if 1.4 was obtained via auto-update rather
than installing via Finder (LaunchServices refresh issue).
- Fix git commit message box not getting initial focus if user has enabled keyboard navigation for all controls in system preferences
- Fix log view not loading any extra rows beyond the first 200 if Uncommitted Changes line was displayed for only untracked files.
- Display an obvious spinner when the log is loading new rows in order to display the requested selection
SourceTree 1.4 - Major Release
- Bookmarks window overhaul!
- New improved visual style; more compact and easier on the eyes
- Live searching
- Sorting by name / type at any level
- New menus let you get to lots of functions without opening the full repo window, including Custom Actions you've defined
- Atlassian Stash support The Hosted Projects view now supports Atlassian's new DVCS behind the firewall enterprise solution: Stash.
- Clone from web links Bitbucket and Atlassian Stash now expose 'Clone in SourceTree' links which can
be used to automatically launch or switch to SourceTree and begin the clone operation. You can also
use the GitHub 'Clone in Mac' links to drive SourceTree if you enable it in Preferences.
- New setup wizard leads new users through their initial configuration, setting up Bitbucket and GitHub accounts, searching for local repositories etc.
- Mercurial Bookmarks are now fully supported (akin to local branches in Git). Previously these were displayed in the log but you could not manipulate them. Mercurial Bookmarks are now displayed in the sidebar and you can define them inside SourceTree.
- The Log View uncommitted line mode has been significantly enhanced, meaning all the features available in the File Status view are now also available when selecting the uncommitted line in the Log View (previously you could only perform a subset of the actions).
- Commit message drafting - you can now draft commit messages well before you actually commit by clicking the icon at the bottom-left of the repository window or pressing Cmd-Shift-D.
- Custom URL protocol support - SourceTree will now respond to URLs of the form "sourcetree://cloneRepo/<CLONE_URL>" so websites can expose clickable links to clone in SourceTree. Also SourceTree will optionally handle github-mac:// URLs if GitHub for Mac isn't installed (or if the user sets Preferences to prefer SourceTree).
- Archive support exports a copy of your source code to a compressed archive, minus the repository metadata.
- Miscellaneous improvements:
- Improved support for handling multiple heads per branch in Mercurial
- Repository-level custom actions are now available on file/log context menus too and not just on the main menu bar
- Support for ignoring multiple individual files/folders at once rather than only via a pattern
- Commit text views now remember and share changes to their spell checking / correction settings
- Add the option not to display the 'Add Bookmarks' window when opening unbookmarked repositories
- Prune the log view more in Git when 'Current Branch' is selected when 'Show Remote Branches' is still enabled
- Dragging plain (non-repository) folders into SourceTree now defaults to creating a new repository in that folder
- Clickable parent links in commit details pane in log & search views
SourceTree 1.4.1 - Changes since 1.4.0/1.4.0b2
- Automatically create hyperlinks for (full) SHAs embedded in commit text
- Support git commit '--signoff' and '--author' options
- Fix diff & staging when user enables diff.mnemonicprefix option in their global config
- Commit parent links should cope with git octopus merges
- Fix git commit sheet displaying selected files mode instead of staging mode if launched from the log view when a previous commit is selected
- When installing command line tools, deal gracefully with missing /usr/local/bin
SourceTree 1.3.3 - Patch Release
- Prevent 'git stash show' diff view being broken by user options like diff.external and colours
- Allow any file to be brought in as a patch file, since the Lion open dialog doesn't allow file type filters to be overridden easily
- Suppress refreshes while applying patch files to avoid thrashing on large patches.
- Optimised processing of command output, particularly large outputs like large stashes / diffs
- Optimisation of memory consumption when dealing with edge cases like viewing very large stashes
- Fix SourceTree reporting SSL errors for self-signed certs in Mercurial when command line just displayed warnings
- Change confirmation message on Git delete remote branch to make it clearer that the change affects the remote
- Git push dialog now respects manually configured push settings, for example those used by Gerrit, while still not needing to check remote. Wildcard matching is also supported.
- Prevent the rare case of the repository refresh causing the sidebar selection to override the log view selection, jumping the view elsewhere.
- Improved handling of inconsistently formatted responses from some hosting APIs.
- Sync 'Select All' checkbox with manual selection changes in Git push dialog
- Don't fail when unshelving changes in hg if the same shelf had been unshelved previously without deleting and then reverted
- Stop hgattic overriding the commit behaviour when you apply a shelved change but don't delete it, causing it to try in vain to open Vim
SourceTree 1.3.2 - Patch Release
- Git pull & push sheets no longer query for remote branches unless prompted to do so, or you use a custom remote path. This speeds up the dialogs considerably; you can click the 'Refresh' button to see any branches you haven't fetched yet on the pull sheet.
- You can now stop a branch from tracking any remote branch from the sidebar, rather than just being able to set it to another branch.
- Unchecking the 'Track?' option in the git push dialog now untracks the branch;
previously this only stopped the tracking relationship being set up. The 'Track?' checkbox is now mixed-state, where 'on' means set the tracking relationship, '-' means no change, and 'off' disables tracking on that branch.
- Allow confirmation dialog on branch switch to be disabled in preferences when working copy is clean
- Add extra keyboard shortcuts for log/blame selected
- Diff colours are now configurable in Preferences for accessibility.
- Add an explicit manual refresh button to hosted projects view (View > Refresh / Cmd-R also works)
- Fix gravatar display for emails with +/- in them
- Disallow email addresses as user name for Bitbucket/GitHub, require real user name to avoid invalid clone URLs
- Fix JIRA links consuming superstring references to same-named Crucible project
- Display uninitialised submodules in git. Allow uninitialised git submodules to be automatically initialised when you double-click on their sidebar entry
- When submodules require login and are on a different host, make sure any request for user details is clear about which one is being asked for.
- Automatically synchronise git submodules on pull/checkout, to pick up new submodules and changes in tracked commit without user intervention
- Add '--recursive' option to git submodules update in case you like submodules in your submodules
- Fix items in the sidebar sometimes being cut off so the annotations were not visible.
- Fix problem with using '#' characters in regex commit replacements
- When using 'Discard' or 'Reset' specifically on a working copy change in git, *only* undo the changes in the working copy (git checkout), keep the index. This was potentially confusing.
- Fix conflict between hgsubversion & subrepositories with hg 2.0.1+ which could cause cloning with subrepos to fail.
- Remove defaulting of destination path in clone dialog on App Store version, Apple object to it and say we must remove it. It remains in the direct version.
- Extra safety checking to make sure keycode isn't ever nil on custom actions.
- Always use git config setting core.quotepath to deal with filenames which include utf8. Previously this had to be set in the gitconfig by the user
- Add an author map file option to cloning from Subversion.
- Fix crash when using 'Current Branch' filter in hg on a newly created uncommitted branch. Also fix content display in this case since hg won't filter on that branch until it's committed.
- Fix incorrect git pull default branch selection when config manually changed to branch.master.rebase=true
- Suppress error messages from git log before the first commit on an empty repo
- Allow 'unstage' to work on added files in git before the first commit has been made in a blank repo
SourceTree 220.127.116.11 - Patch Release (1.3.1 in App Store)
Changes since 1.3.1:
- Fix hgattic getting stuck if you applied a shelf without deleting, then deleted manually
- Fix git authentication when a private remote URL included no username (git 1.7.8 changed the prompts which broke this in 1.3.1)
- Fix linking multiple JIRA / Crucible issues if they were adjacent in the text. Note: requires re-saving the JIRA link to update the regex
- Update help index for better searching
SourceTree 1.3.0 - New Major Release!
- New application icon! the SourceTree icon has a brand new look for 2012, hope you like it!
- Submodule and subrepository support
- Configure subrepositories and submodules inside SourceTree
- See what submodules/subrepos have outstanding changes to be committed or pushed, and manage those
at the same time as managing the parent repository.
- Explicitly set the commit message for any submodules / subrepositories that you commit while committing the parent. No more accidental recursive commits in Mercurial, or accidentally missed submodule commits in Git!
- Easily switch the commit you're tracking and commit that change upstream, or revert before committing as simply as you would revert a file change.
- Inside a Mercurial repository, support Git, Mercurial and Subversion subrepositories (Git can only have Git submodules)
- Respects the slight differences between Mercurial and Git (e.g. in Mercurial you must commit/push subrepo changes before the parent, in Git you have a choice), while making them both
more intuitive and user-friendly.
- Command-line tool - use the 'stree' command from a terminal to jump straight into SourceTree, install via 'SourceTree > Install Command Line Tools' (NB: Apple's rules don't allow us to install helper tools in the App Store version, please download the supplementary installer package if you wish to use this feature).
- Configure custom actions so you can launch any tool or command you like from within SourceTree; your actions will appear in context depending on what parameters you reference (file, SHA etc).
- Commit comments can now link JIRA and Crucible issue numbers to their URLs simply, and you can configure any other system with a regular expression replacement.
- Full screen support on 10.7 Lion
- Mercurial 'Graft' is now supported, and replaces 'Transplant' by default
- Git 'Reset branch to commit' added so you can re-point your branches more easily and use the soft/mixed/hard options as you see fit.
- Mercurial 'Strip' support added - strip a revision and all its descendents, and choose whether to keep your current working copy state or not while you do it (allowing you to replace commits with new ones, but with the same base file changes.
- Launch SourceTree direct from Finder via the 'Open in SourceTree' item in the Services menu.
- 'Show in Finder' toolbar button now available (find it under Customize... toolbar context menu)
- Many performance improvements, especially in the log view
- Mercurial 2.0 compatibility (default embedded version is now 2.0.1).
- Git 18.104.22.168 now embedded
- Updates to French & Japanese translations
- System Mercurial / Git installations can now be sourced from custom locations.
- When invoking 'Blame' or 'Log Selected' in the log / search views, the subsequent view is now presented
from the point of view of the selected commit, and not the working copy.
- When pushing while committing in git, only push the current branch and not all tracking branches.
- Git push / pull of tracking branches no longer forces user to wait for remote query
- Added a Preferences option to always show the full console output of tasks
- Added explicit menu options for Continue / Abort of both rebase and graft, instead of needing to hit commit / pull to be prompted to do so.
- You can now override the language used just for SourceTree from Preferences.
- "Add" button in the Log view for Uncommitted changes now works like the file status view
- Git push can now be set to not push all tags by default, and you can push single tags from the sidebar instead.
- Hide 'HEAD' tag in Git log and use branch indicator only, unless repo is on a detached HEAD.
- Display an entry for a detached Git HEAD in the sidebar for easier navigation.
- Fixed 'Ancestor order' option in git log and remember the preference
- Fix file list & diff omitting working copy changes when you range select in the log view on a Mercurial repo including the Uncommitted Changes line
- Fixed 'Ancestor order' option in git log and remember the preference
- Fix file list & diff omitting working copy changes when you range select in the log view on a Mercurial repo including the Uncommitted Changes line
- Fix log view context menu items being disabled incorrectly on first row after uncommitted line has been removed
Changes in 1.3.1 (since 1.3.0)
- Default the commit text to the previous commit if the 'Amend previous commit' checkbox is enabled
- Allow suppression of empty commit warning
- Clone: default the destination path (and by derivation, the bookmark name) from the clone source if the user hasn't altered it manually
- Fix being unable to close the Preferences window if you blanked the global ignore list field
- When detecting git-svn, look for .git/svn/refs and not just .git/svn
- Display all remote branches when using git-svn
- Support pushing branches other than the current HEAD to Subversion under git-svn
- Fix Git 'push to tracking branch' dialog refresh shortcut when used the second time for a different branch
- Add '--' delimiters to git tasks to better support unusual filenames like dash prefix
- Fix display of uncommitted line in git when the last commit is a merge
- Support display of git octopus merges in log view
- Add 'Stop Tracking' menu option for files
- Ensure that when the Main Menu 'Update To…' / 'Checkout…' item is used, the update sheet selects the current selection if you were on the log view.
- Cope with Git repositories which use a .git file (not folder) with a 'gitdir' clause to redirect the location of the actual git repo content (Git 1.7.8 creates submodules like this)
- Embedded Git updated to 22.214.171.124
- Fix pushing a single branch in Mercurial via the advanced section of the push sheet
- Fix a failure to add a git submodule when manual authentication was required on the clone source
- Fix mercurial subrepo commit tracking changes not showing up in the file status view
- When retrieving the SHA of the current commit in Mercurial, force it to return the full version, not the short version (permanent)
- Fix display of blank keyboard shortcuts in Custom Actions
- Handle unexpected git/hg failures better by alerting the user more explicitly instead of just logging
Changes in 1.3.0 (since 1.3 beta 3)
- Fix hg strip not being available on the latest commit, it should have been disabled for the uncommitted line only
- Make rebase menu item on sidebar more descriptive
- Deal with exceptions caused by custom actions pointing at invalid binaries/scripts more cleanly
- Updates to French & Japanese translations
- New icon!
- Fix inability to commit a git merge when there are no remaining file changes
- Fix revision field on Mercurial pull sheet needing to be defocussed before bindings were updated
- Fix 'Current Branch' filter in Mercurial log view not displaying enough when current branch is very old
- Fix display of user info in repo settings if user manually updated .git/config and only set one of name/email instead of both
- Fix global ignore being overridden incorrectly because tildes were not being expanded before checking to see if the file existed
- Fix editing global ignore file from Preferences if path included a tilde
- Fix wrong branch getting bold font on the sidebar
- Remember the last repository type when creating a new repo (local or hosted) and default to that in future
- Fix a parameter problem with using p4merge to resolve conflicts for Mecurial
- Fix a diff panel bug which meant that in the log view, when all the files in the selection had their diffs suppressed by the preferences, the entire diff for the commit was displayed instead.
- Change text in Git push window for Subversion remotes to 'Current Branch' instead of 'All Tracked Branches' to reflect what really happens with 'git svn dcommit'
- Revert to Revision / Reset to Commit should be disabled when the uncommitted changes line is selected in the log
- Display outstanding rebases (caused by mid-rebase conflicts) more conspicuously in the status bar and bookmark summary
- Some performance improvements particularly on Lion during startup
- Find system git in manual installer locations before the core system paths.
Lion now comes with git installed by default so we need this to pick up user-installed versions of Git.
- Better diagnostics in a few hg failure cases
- Speed up git file status in pending view when numbers of files increase
- Fix pull/push counts for hgsubversion repositories
- Display a friendlier message when trying to use system Mercurial >= 1.9 (not supported yet due to extension compatibility)
SourceTree has been acquired by Atlassian!
- Fix Git remote branches looking temporarily 'behind' when pulling a brand new change without explicitly fetching.
- Fix 'Show Ignored' sometimes not displaying all ignored files in git
- Display correct icon for Git repositories on Bitbucket in Hosted Projects view.
- Add drop-down box to Bitbucket create project window so you can create Git or Mercurial projects
- Use new preferred URL format for Git repositories on Bitbucket
- UI standards: fix a couple of instances of 'Ok' that should be 'OK'
- Tweaked app icon - now slightly clearer and hand-tuned for all sizes.
- Fix Bitbucket URLs when selecting a repository you're following that's owned by someone else
- Fix views not refreshing when auto-refresh is disabled but when you perform a known state-altering operation inside SourceTree
- Accessibility improvements:
- keep keyboard focus on sidebar when navigating entries in it
- remove debug description of log graph, which gets read out by Voice Over
- add custom VoiceOver description to sidebar items so type/context is clearer
- add help text to the show/hide sidebar button
- add voice over descriptions to status images
- When performing a manual refresh with Cmd-R, always clear any cached data and don't
rely on file events having marked things as needing reload
- Make sure new (uncommitted) branch in Mercurial shows nested sidebar folders correctly even before it's committed
- Fix using external diff on a conflicted file in git. Most of the time you want to Resolve > Resolve In Merge Tool but this should still work.
- Allow 'Resolve Using Theirs' when resolving a rebase conflict.
- Make merge conflicts summary message appear during rebase conflict
- When continuing a conflicted rebase, if a further conflict occurs then behave the same as the first rebase conflict (custom notification instead of command output)
- When continuing a conflicted rebase on git and you have resolved it so that no changes are left to commit, use 'rebase --skip' since 'rebase --continue' will fail
Note: if you experience a crash during update under Mac OS X Lion (non Mac App Store),
please try again or if that repeatedly fails, download the latest manually from
the web site. This was a bug with Sparkle on Lion
which has now been fixed in 1.2.7, but you may still encounter it while trying to
update from 1.2.6 or earlier.
- Fix a validation problem on the diff preferences page which could prevent the text/binary thresholds from being set correctly.
- When Apply Patch window is opened, if a *.diff or *.patch file is selected, pre-populate the patch file field with this file
- Add menu option File > Bookmark Open Repositories; allows you to easily add open repositories that are not already bookmarked to your bookmarks
- Remember which view is open for each repository (file status / log / search) on close and re-open that view by default in future.
- Add preferences options to control the file size limits of the internal diff (in new Diff tab)
- Add preferences options to control internal diff view by file pattern (in new Diff tab)
- When failing to detect the repository type of a clone source, provide a button to see the details of the failure in case there's something other than user error.
- Enable the 'Amend Last Commit' option for git-svn repositories, so long as the last commit hasn't already been pushed to Subversion (was previously always disabled for git-svn for safety)
- Fix the branches section in the Push dialog for the Subversion remote in a git-svn repository when there are git remotes as well
- Fix auto-refreshing not working if repository is open in a window but not bookmarked
- Avoid problems with git output if user had configured options like 'color.branch=always' (instead of 'auto') in their gitconfig
- Fix a problem with log view not picking up a changed HEAD if modified outside SourceTree, particularly if you had auto-refresh disabled.
- Fix a problem in Sparkle which was causing crashes during update in Lion (non Mac App Store).
- Fix log view not changing when 'Current Branch' was selected as a filter and the current branch was changed
- When refreshing the log view, preserve the file selection wherever possible
- Fix 'Resolve Conflicts' actions performed on the uncommitted line of the log view picking up the selection from the File Status view instead
- Replace tabs with spaces when rendering the diff view to ensure that tabbing within the line (rather than as a prefix) is correctly displayed
- Fix a problem with staging/discarding lines if the before context was dependent on a special patch prefix line (e.g. '\ No newline at end of file')
- Stop re-trying authentication more quickly when user cancels auth prompt (https or hg ssh).
Unfortunately SSH itself will always re-prompt 3 times regardless so we can't avoid that.
- When removing a bookmark where the folder is already deleted, don't offer the option to move it to the trash
- A few performance tuning changes for responsiveness when opening a lot of windows
- Display hg bookmarks in log view
- Warn before adding large files (>=10MB), give user the chance to avoid bloating their repository.
- Added support for iTerm2 as terminal option
- Hosted Repositories view now shows the projects you're following/watching on Bitbucket/GitHub as well as your own projects
- Support ignore on folders
- Suppress inline diff for excessively large files. Prevents performance problems if people have very large modified files; external diff is still available.
- Embedded git-svn patched to support keychain authorisation cache, fixes login errors if you've only accessed this Subversion server directly with svn before. See this thread if you want to patch your system Git.
- Fix unresponsiveness in tree / column view when selecting a folder which has a very large number of files underneath it
- When selectively committing a renamed file in Mercurial, make sure the previous file removal is also committed
- Add 'Open In Terminal' menu option (Ctrl+Cmd+T) and toolbar button (customise to add it to your toolbar); opens on the parent folder
of selected file, or the repository root if no file is selected. Supports Terminal and iTerm.
- Add 'Copy Path to Clipboard' option in all file views
- Add 'Copy SHA-1 to Clipboard' to context menu in log/search views
- Eliminate intermediate dialog for 'Revert to Revision' / 'Reset to Commit' on log and search views when applying it to a file selection.
- Remember the setting of 'Show All Branches' and 'Show Remotes' in the log view
- Display the current branch label in the log with a different icon, consistent with the one in the sidebar/footer
- Help files updated
- Allow Mac App Store receipt to be used as a valid license file for direct download version, so long as MAS version (with this update) has
been run at least once on this Mac.
- Fix display of merges in single file log window if there were changes on both sides of the merge
- Fix being unable to close Preferences window with blank user/email when disallowing SourceTree to update your config files
- When encountering very large clean/untracked text files, only read the first part of the file for the diff preview to save memory
- Incorrect passwords were not being overwritten in Keychain when 'Set Password' button was used in Hosted Projects account section
- Improved selectable toolbar eliminates some positioning problems with some multi-tab sheets & looks better when defaulting to
tabs other than the first. Also tab behaviour is improved.
- Files/hunks/lines can now be staged/unstaged/discarded in the diff view while in the commit sheet (and others showing current status);
previously some actions appeared to be available but did not work in these places.
- Make git push dialog resizable
- Allow 'Show In Finder' to work with no file selection, show repo folder.
- Fix embedded Git not working on non-64bit capable Macs.
- Fix a couple of small layout issues that didn't look quite right on Lion.
- Fix authentication problem on push with git-svn repository
- Support general rebase of current changes - right-click on branches in the sidebar and on entries in the log
- When trying to commit during a rebase conflict resolution, you are now given a prompt so that you can continue/abort the rebase immediately.
- Fix font in commit details pane on Lion
- Fix auto-refresh of bookmarks status line when a repository is newly cloned but not opened into a window yet
- When fetching for incoming/outgoing in git, also fetch from Subversion for git-svn
- Additional safety checks to prevent errors when git-svn tracking information has been lost (e.g. inappropriate rebase)
- Prevent bug if user leaves git clone depth or svn checkout depth blank
- Additional safety checks to try to avoid crash reported on 10.7 DP4
- Fix a possible crash bug when using the system git to clone via SSH on Lion
- Don't use the home directory when needing a placeholder working directory, in case temp files are created there. Use temp folder instead.
- If anything goes wrong with a single remote in the background incoming/outgoing update, always continue to process subsequent remotes
- Relax validation on the background remote update frequency, allow intervals down to 1 minute
- Support GitHub organisation projects in Hosted Projects views as well as owned projects
- Display file mode/permission changes in diff view as well as content changes. Also omit 'lines added/removed' where count is zero to save space.
- When selecting Create Patch on toolbar and active view is log, pre-select the revision(s) on patch from commit tab
- Improved rename handling in file log view (new checkbox to follow history over renames).
- Added global option to enable / disable automatic refresh on file system changes for all repositories
- Update/Checkout and Merge toolbar buttons now default the sheet to the selected log item if the log view is active.
- Update tooltip on Add/Remove button for Git to make it clear it adds (stages) modified files too.
- On opening the commit window in tree view mode, display the pre-checked items as expanded only
- Respond better when user changes the selection for the diff view rapidly and many times in succession
- Fix autorefresh after a repository folder is moved & re-connected
- Fix race condition that could cause incorrect diff to appear in log/search view if selected commit was changed rapidly several times in succession
- Create patch from log should default to current selection
- Convert git commit to a 'git commit -a' if committing from tree rather than index and all files (ignoring untracked) are selected. This allows you to commit a merge without using staging - previously you would get the 'partial commit' error otherwise.
- Update the git file views dynamically if the Preferences option 'Use the staging area' is changed
- Adjust the file log window so it's a little bigger by default so diff isn't over-compressed
- Fix bugs with manually refreshing views when automatic refresh is disabled, some summaries were not always updating
- Remember the setting of 'Prune tracking branches' in git fetch sheet
- Make sure uninitialised variables can't affect git commit mode.
- Add git pickaxe search option ("File Changes")
- Darken diff view colours so they're more visible on a wider variety of screens
- Provide a 'Set Password' button in the hosting account detail sheet so users can correct a wrong hosting account API password more easily.
- Fix crash when trying to access Kiln API if login had failed
- Display Bitbucket / Github / Kiln API errors to the user rather than just logging
- Remove the 'svn+' prefix on svn+http[s] URLs if they are copied from a hgsubversion configuration, when checking the URL for validity and when cloning in Git
- Make EULA text non-editable
- Use the web.cacerts config option if user has specified it for self-signed SSL certs
- Allow Kiln site URL to use http as well as https, if local server config has been chosen that way.
- Don't try to load sidebar width if repository doesn't have a named bookmark, could end up reading an incorrect width
- Fixed git stash dialog only picking up the description if you tabbed out of the field before clicking OK
- Fix display of abbreviated hash in git log detail
- Fix using system git which places libexec in a non-standard place (e.g. homebrew)
- Fix git commit sheet locking open when user confirms they do not want to enter a commit message
- Fix possible infinite loop in diff parser on an added file with no contents
- Fix several resizing bugs in the scope bars that could cause search box and external diff buttons to overlap or be pushed out of view unnecessarily.
- Standardise the font usage in the commit details window so it doesn't pick up global webkit settings and uses the diff font choice for the fixed width option
SourceTree 1.2 - New Major Release!
- GitHub, Bitbucket and Kiln integration - now you can enter your account details and
immediately access your hosted projects (public and private) within SourceTree, and even the public repositories
of other users you like to follow. You can also create new repositories on these services directly within SourceTree.
- Stashing and shelving - store your working copy changes away and return your working copy to a clean state,
then bring them back again when you need them. Supports many stashed / shelved changes at once.
- New sidebar allows quick navigation to your working copy, branches, tags, remotes and stashed / shelved changes.
You can perform common operations on them easily and more quickly directly from here.
- Performance boost - SourceTree has been further optimised and concurrent processing has been tuned
to give a snappier overall experience
- User experience improvements - layout, colours and icons have all been refined to make the user experience
better, and many common workflows have been optimised when accessed in context (such as merging a branch from the sidebar)
- Customise Git and Mercurial - you can now use your system Git / Mercurial instead of SourceTree's standard versions (which have been updated), and
enable additional Mercurial extensions (at your own risk).
- Lots and lots of other refinements such as being able to copy text from the diff panel, 'git commit --amend' support,
close branches in Mercurial, and more!
Changes in version 1.2.1:
- Fix changing tracking branch when local branch was 'nested' style (git)
- Fix pushing branch from the sidebar when local branch was 'nested' style (git)
- Fix some menu text & messages to display entire qualified branch name of 'nested' branches for clarity
- Fix deleting remote branch in git on a remote that authenticates with manual login rather than ssh keys
- Display spinner on sidebar while waiting for the first set of data to come in
- When refreshing the log view in-situ, don't scroll the view back to the selected row, maintain the previous scroll position.
- Default the 'push' checkbox on the tag sheet based on user preferences as with commit
- Fix bookmarks display when adding / removing items under certain conditions
- Autosave the column widths in the file status section of the log view
- Re-open bookmarks window if dock icon is clicked and no windows are open
- Fix display of the uncommitted changes line in log view in Git, it was incorrectly parented from HEAD's ancestors
- Don't display more than 100 lines for each unchanged file in the diff view to maintain performance on multi-selections
- Allow double-click to work on folders in tree / column views, and open special folders like .xcodeproj
- Fix a bug in restoring the previous selection to a folder in tree / column views
- Allow right-clicking on folders in tree/column views to add, remove, commit, revert nested files
- Add "Don't tell me again" option to warning message about adding files during commit
Changes in version 1.2.0 (since 1.2.0b5):
- Allow svn conversion from local file:// path, so long as it's a repository and not a working copy
Turns out that 'svn info' can already differentiate between the two so long as file:// is used.
- Fix bug with deleting / closing branches with nested names
Changes in version 1.1.11:
- Detect conflicts during pull with git-svn better and advise the user on resolution actions
- Discourage the use of Commit while in the middle of a rebase, advise user on how to continue / abort the rebase
- Properly deal with the case where output data from command is not utf8 even when the entire output is read (most likely symptom was blank diff on non-utf8 text files with extended characters)
- When performing a backout in Mercurial, use the changeset in the generated message and not the local revision number so it's relevant to all repositories
Changes in version 1.1.10:
- Fix rare but randomly occurring decoding problems when a multibyte character is partially flushed to stdout from hg/git tasks
- Fix picking up incorrect files on drag if flat file status view has been re-sorted.
- Fix never displaying clean status on Mercurial closed branches
- Fix log graph rendering for merges from a continuing branch which also changes column in the same row due to packing
- In Mercurial, allow committing of merges and new branches even if there are no file changes
- Make file actions on the resolve sheet support recursive selection in the tree/browser view
- Remove error message about not being able to find a log entry when the previously selected item is not in the log display anymore
Changes in version 1.1.9:
- Added context menu option to expand / collapse all in file status tree view
- Remember if the bookmarks view is open or not at launch
- Allow Mercurial URLs with embedded passwords (previously disallowed), but warn strongly against it
- Fix detecting when the diff content needed to be refreshed, it was refreshing unnecessarily when other files were updated.
- Fix adding new lines to the hgrc when there wasn't a newline at the end
- Fix saving of manual login details in the keychain for ssh URLs without the ssh:// prefix
- Fix some log refresh rendering glitches caused by some performnce short-cuts that were not correct in some cases.
- Refresh log immediately after push in Git to make sure branch annotations are updated
- Display files that use Windows CRLF line endings correctly in the diff view
- Stage / unstage / discard on hunks and selected line ranges now works on files with Windows CRLF line endings
- Provide an escape hatch in the rare case where .hg/rebasestate file is left over even though there is nothing more to rebase
- Confirm before overwriting patch file if it wasn't picked from the 'Browse...' dialog
- Preserve selection and expansion state over refreshes in file status tree views
- After transplanting / cherry-picking, refresh remote status immediately since push counts will have changed
- Fix typo 'Lanch' instead of 'Launch'
Changes in version 126.96.36.199:
- Fix Mercurial SSH cloning bug caused by tilde processing
Changes in version 1.1.8:
- Fixed hanging on branch list when pushing to / pulling from GitHub private repositories using HTTP
- Fix accidentally stripping user field from incoming / outgoing text in Mercurial
- Refresh more quickly after a transplant / cherry-pick
- Refresh more quickly after git pull
- Add return key binding to OK on git push/pull sheets
- Fix failure to refresh when stage/unstage are performed in very quick succession (< 3 seconds)
- Fix push immediately option in git commit dialog
- Fix external diff keyboard shortcut and main menu option in log & search views
- Push / pull sheets and using 'Custom' remote: refresh incoming / outgoing when you press return on the custom path field
- Update contents of 'Custom' path immediately in pull/push dialogs so they apply even if user doesn't press return
- In user confirmation dialogs, limit the number of filenames displayed to make sure the dialog never grows too large
- Fix HTTP login on GitHub private repositories when username is not included in the URL
- Clone / add repo now handles tilde character correctly
- Make clone / add / create buttons respond to return key in add repo sheet
- When dragging a folder from the file status view to another application, provide the folder itself in the pasteboard and not the files contained within it
Changes in version 1.1.7:
- Include line number in blame window
- Support fetch extension in Mercurial (pull, update, merge & commit)
- Support continuing or aborting a rebase in Mercurial if it was used during pull but there was a conflict.
- Navigation between blame, file log, search and main log views is now possible directly via right-click or double-click
- Add ability to navigate from a result in the search view to the same commit in the log view (double-click or context menu)
- Implement jumping to commit sha (inc. partial) or revision number from log window jump button
- Provide a drop-down on Git remote branches in the push dialog to assist with pushing to alternate remote branches that already exist
- Gravatar images added to commit detail views
- Remember the last used view mode (flat/tree/column) in file status view and default to it
- Allow repo folders to be dragged to the SourceTree dock icon to open them directly. Detect any that aren't in the bookmarks already
and give user the option to create bookmarks for them, including names and folder locations.
- You can now drag & drop files from file status view to other applications to open them
- Fix changing folder when repo is has been moved; previously kept prompting you until restart
- Change all instances of "Ok" to "OK"
- Fix number of incoming changes being incorrect when other output is received from Mercurial
- Fix display of log view when refreshing after aborting a merge
- Fix Dropbox not picking up patch file contents if you created the patch directly inside a Dropbox folder
- Use fallback encoding techniques to read patch files, in case NSString can't figure it out
- Ignore the .hg/dirstate file as a metadata change since it's only relevant to working dir changes which we already pick up
- When refreshing the log view, if the selection didn't change and it's not the uncommitted row, don't force the revision details to be refreshed (preserve the view)
- Modify hgsubversion so it flushes output for better UI responsiveness
- Disable the non-'hgext.' version of hgsubversion so it doesn't pick that up from a wider scope
- Remember which ignore list you last added a file to & keep using that by default
- Using the 'revision' option in Mercurial push was not always getting picked up unless you tabbed out of the field.
- Fix origin / default remotes not showing as re-selected by default on the 2nd use of push/pull/fetch sheets
- In the log view, preserve the state of multiple row selections between refreshes (diff between arbitrary log points)
- Fix misidentification of clone source when the url is prefixed with whitespace
- Fix missing lines in file log in git repositories (because git log --follow just doesn't work right now)
- Naming consistency on toolbar - History -> Log
- Fix time style in commit details view in some locale
- Always open ignore files with TextEdit, in case user has default application for this file type set to something like Terminal
Changes in version 188.8.131.52:
- Fix git launching external diff when a merge commit or range of commits is
selected and users .gitconfig is configured to diff externally all the time
- Fix 'Open' button on bookmarks when repository folder has been deleted / moved
- Fix 'Repository Moved or Deleted' text disappearing after that row has been selected.
Changes in version 1.1.6:
- Viewing differences between 2 arbitrary commits/revisions is now supported. Simply select more than one entry in the log view
with Cmd-Click, Shift-Click or Shift-Up/Down and SourceTree will show you the difference between
the outer range of the rows selected.
- Viewing differences between both sides of a merge is now supported. When viewing a merge commit or the
working folder when a merge is outstanding, the 'Compare to:' option on the diff pane allows you to
choose which side of the merge to compare with.
- The Resolve Conflicts page has been redesigned and is now more detailed; you can see diffs in-place, and can also
choose to resolve a file conflict using the unmodified content from each side of the merge;
this is especially important for binary conflicts.
- When deleting repository bookmarks, you now have the option of moving the underlying folder to the trash at the same time.
- When a bookmarked repository has been deleted or moved in Finder, it is identified clearly in the bookmarks
window and if you try to open it, you are offered the option to remove the bookmark or re-point it to its new location.
- You can now pick the exact point size of the diff font, instead of just the summary sizes (Small, Medium etc).
The font size drop-down has been removed from the diff view and instead you should pick the size you want from Preferences. All
diff views now change immediately when the font is altered in Preferences so you can see the effect.
- Files with a status of 'Missing' can now be removed directly either via 'Remove', or 'Stage' (in git)
- Applying patches in git now does 3-way merge as was originally intended
- Limit the diff view to displaying 20 items at once to avoid huge overhead when user selects a very large number of files to perform an operation.
- Fix clearing of new group name when repeatedly adding groups
- Fix tags not being pushed to remote in Git if they are not picked up by another ref
- Fix git checkout with clean option only doing the clean and not the checkout.
- When selecting multiple files in log view working copy and clicking Revert toolbar, pre-select those files.
- Don't prepend 'svn+' to SVN urls when checking out in Mercurial if the url is svn://
- Fix deleting remote branches with embedded '/' characters in git
- Fixed git multi-line commit messages being concatenated without newlines in description pane
- Fix external merge tool usage in hg when files have a space in the path.
- Fix hg merge aborting on a binary file conflict.
- Fix hg performing slower then SourceTree is installed via the App Store
- Validate against cloning into a non-empty directory before calling hg/git so user can correct earlier
Changes in version 1.1.5:
- The diff context level selected in the diff view is now saved and used by default.
- Added an 'Ignore whitespace' option to diff view
- Allow the font used in the diff view to be altered (see Preferences)
- Display an icon in the log view jump list indicating whether each entry is a tag or branch (with remote indicators on Git)
- Add option to revert selected files to a specific revision/commit, from any file selection or the file log window (as opposed to updating entire tree to revision)
- Repository windows which are open when you quit now re-open automatically next time (see Preferences to disable)
- Each repository window now remembers its own individual frame (instead of sharing a default frame from your last use of any repository). This means
when windows re-open at startup they will also be exactly where you put them.
- Add delete remote branch support in Git
- Allow multiple branches to be deleted at once in Git (local or remote) for those that do bulk clean-up
- Add keyboard shortcut for Fetch
- Add a 'Release Notes' option to the SourceTree menu so users can view the changelog (including changes after their current version) more easily.
- Fix incorrect incrementing of 'Outstanding Push' count when tagging when there is no default remote
- Fix blank log results in Mercurial if a commit description includes the Unicode line separator (U+2028), which Mercurial refuse to support as a first line delimiter.
- The Mac App Store no longer considers SourceTree as obtained direct from sourcetreeapp.com to be an 'Installed' copy of App Store SourceTree product.
This previously prevented people buying on the App Store until they had manually deleted the trial version.
- Make sure preferences window cannot be opened multiple times
- Disallow passwords embedded in remote URL settings - very insecure and not supported by SourceTree, use the password prompts & keychain options
- Fix using kdiff3 as external merge tool for Mercurial when spaces are present in the path.
- Always append a completion message to the task output so that tasks which don't write anything to the log confirm one way or the other
- Fix layout under resize in Create Patch sheet
- Fix the browser window rendering incorrectly under some tree expansion conditions
Changes in version 1.1.4:
- Eliminate unnecessary refreshes in the Mercurial log window by filtering the kernel file events more aggressively
- File browsing buttons are now regular push buttons instead of disclosure buttons (HCI guidelines)
- Automatically include submodules when cloning a Git repository (Mercurial already cloned subrepos)
- Fix a race condition when cloning which could cause the Add Repository sheet not to close if the clone process exited particularly quickly.
- Prevent user .gitconfig entry for diff.external interfering with the in-app diff functionality
Changes in version 184.108.40.206:
- Fix a couple of diff hunk view clipping issues caused by the font size changes.
Changes in version 220.127.116.11:
- Fix a problem with the preferences dialog.
Changes in version 1.1.3:
- Deal with a rare case of missing data in the git file status view when 'Clean' option is enabled.
- If an diff / merge configuration is corrupted, fail safely instead of crashing.
- Added a font size option to the diff view for those with high-res monitors and failing eyesight ;)
Changes in version 1.1.2:
- Fix automatic remote refresh not triggering if push/pull wasn't done within SourceTree.
- Deal with the case where git-svn doesn't pass a default username to manual ssh login to Subversion server
- Unstaging a deleted file in Git now also checks it out again automatically rather than leaving it missing in the working folder.
- TextWrangler and BBEdit are now supported out of the box for external diffs.
Changes in version 1.1.1:
- Improve the responsiveness of the push/pull counts when pushing from the commit & tag sheets
- Fix several problems with using Subversion with manual SSH logins (as opposed to https or using SSH keys)
- When looking up keychain items, always filter by protocol and don't fall back on server-only items, since this can cause failures if passwords are different between services.
- Fix pull/push counts getting stuck on Mercurial when there is no remote called 'default'. Now we use the sole remote if there is no 'default', or disable the counts if there are multiple remotes and none are called 'default'
- Clear cached data when a bookmark is removed so that if it is re-added we correctly pick up the new settings.
- Spacebar to Quick Look now working on tree & column views as well as flat view
- Fix display of clean / untracked text files when text encoding is not UTF8
- Fix crash when rendering a branch annotation on the uncommitted changes line (only occurred in Mercurial when there was an uncommitted new branch)
- Disable branch selection & track options when pushing to Subversion from Git since they don't do anything.
- Some fixes and tweaks to the visual rendering of Bookmarks window content
- Disable merge & create patch on the history view context menu when the uncommitted changes line is selected
- Quick Look now tracks the correct files when invoked on nested sheets such as commit, revert, resolve
- Fix revision jump to latest in Mercurial when there's a merge outstanding
- Bookmarks window now saves its toolbar customisations
- Fix an infinite loop in Git push dialog if remote branch contains spaces
- Disable unapproved user extensions in Mercurial to avoid problems when a user extension clashes with our Mercurial version or extensions
- Fix hg blame crash on binary files
- Fix hg blame on repositories converted from Subversion where usernames are generated rather than provided by author map
- Make remote management a bit more intuitive, and include specific options for Mercurial 'default' remote
- Add ability to right-click and tag a previous commit from the history view
- Detect a duplicate tag and give the user the option of moving it interactively rather than failing ∓ requiring user to find the 'force' option.
- Allow removal of local tags in Mercurial
- Added tooltips for toolbar items for people who use icon-only view
Changes in version 18.104.22.168:
- Fix a bug where a clean file with leading blank lines could cause the diff view to never complete & hog CPU
- Fix context level drop-down in diff view on history views
- Fix very long file names getting truncated in diff view
- Make sure revision details get updated after you commit while the 'uncommited changes' log view row is selected
Changes in version 22.214.171.124:
- Fix a crash bug when a non-text file is selected which Quick Look is unable to generate a valid preview for.
- After pulling / pushing on Mercurial, improve the responsiveness of the update on the incoming / outgoing status markers.
Changes in version 1.1.0:
- Brand new diff view
- More user-friendly visualisation of differences
- Discard changes directly from the diff view at file, hunk and even line level
- In Git, stage and unstage changes down to a hunk or line level
- Better binary file handling: inline previews of the before & after states, quickly open both in their native tools
- Quick Look Support
- Press space or use the menu options to bring up the traditional Quick Look panel showing the entire file(s) selected.
- It even works in the history views! You get to browse a snapshot of the file at that point in time
- Subversion support
- Bi-directional Subversion support via hgsubversion and git-svn
- Clone a Subversion repository as a local Mercurial or Git repository and work on it locally using these more modern tools
- Synchronise with the Subversion server via the familiar push / pull metaphors (some limitations apply around branches and merging, please read the help.
- Background checking of remotes for incoming & outgoing changes
- Incoming and outgoing commit counts are displayed in the Bookmarks view and on the Push / Pull toolbar buttons
- These are automatically refreshed in the background at a schedule of your choosing (see Preferences)
- Includes automatic fetching of new commits in Git from branches you're tracking
- You can disable this feature globally in Preferences or individually per repository if you wish
- Other new features:
- Transplant / cherry-pick support
- Cloning is now performed in a separate window instead of a modal sheet. This lets you get on with other things
while long-running clones are active.
- Instead of assuming that a lack of global ignore files means the user is new to git / hg, ask before adding default ignore settings.
- Workaround for a Mercurial bug in determining whether an OS is GUI-based, which could cause external merge tools not to work if the user chose not to install X11 when installing Snow Leopard.
- Filter keychain items more specifically on retrieval to deal with the case where a user has different passwords for different protocols or paths on the same server.
- Speed up the analysis of patches which require a base path parameter to apply successfully by an order of magnitude.
- Short-circuit the determination of repository type for a few known single-source hosts like bitbucket, github and gitorious.
- Create Patch from log context now correctly starts on the 'Patch From Commits' tab
Changes in version 126.96.36.199:
- Better validation on Mercurial push & pull sheets to avoid problems in edge cases such as empty paths and lack of 'default' remote
- Fix drag & drop clone URL not inserting the resulting entry at the correct point in the bookmarks tree (inserted at end)
- Fix jump to annotated tag in log view (Git)
- Default tag type in Git is now annotated and not lightweight as per accepted convention; added more options to tag sheet to control this.
- Fix for thread safety issues in some regexp handling which could cause a crash in rare cases (mostly repeated opening of Mercurial update / merge views)
Changes in version 1.0.9:
- 32-bit binaries now included as well as 64-bit for those running Snow Leopard on older Macs.
- Fix a rare bug with repositories converted from Subversion where the character encoding cannot be converted to UTF8
- Fix unresponsiveness when external diff is kept in the background
Changes in version 1.0.8:
- Split view positions for file status view, log view and search view are now remembered, along with separate split settings for
all the other sheets which use these view (such as commit, merge etc). So you can now configure split view setups for
every view and dialog independently and they will be remembered.
- Multiple file selection is now supported in the log view and search view when reading diffs
- Right-click and double-click now work on the file lists in the log view and search view, allowing access to more functions from there.
- Added an immediate push option to the Add Tag sheet, for convenience
- Fix a bug which caused Mercurial inactive branches (merged with no commits since) to not appear in the log
- Search view diff panel fixes: external diff, context slider are now working
- Fix external diff in log view when uncommitted changes line is selected
- Path column should not have been editable in log / search views
- Commit sheet 'push' option should be disabled if there are no remotes configured
- When committing in Mercurial, pick 'default' remote on opening for immediate push, previously selected the first remote in the list
Changes in version 1.0.7:
- You can now drag & drop between panels to stage / unstage files in Git
- The 'progress' window for Mercurial and Git tasks is now less intrusive, opening and closing faster and only displaying the
full output under error conditions (or if the user chooses to expand it)
- The repository settings panel now includes an option to disable the auto-refresh behaviour for a given repository.
If you disable the auto-refresh, you can press Cmd-R to manually refresh views, and there is a Refresh toolbar button available
which can be added to the toolbars (Right-click > Customise Toolbar...).
- Allow log view columns to be re-ordered by the user
- When right-clicking & checking out a commit in Git which includes only a remote branch (no local branches),
default to checkout new local branch which is what you almost always want.
- Warn user when Git checkout will create a detached HEAD.
- Fix incorrect tooltips being displayed for files in the Git unstaged area
- Fix external diff in Git on machines that had never had Git installed in the root (Perl library path problem)
- Fix crash when repository has been deleted from the filesystem but bookmarks & windows are still tracking them.
- External diff button in diff panel is now disabled when not applicable
- Fix bug in Git pull sheet if you clicked Ok before the branches list was populated
- Fix manual authentication with Git 'Fetch All'
- Fix customised toolbar settings getting mixed up between Mercurial and Git windows
- Fix missing entries in Git log when on a detached HEAD which is unreachable from any other branch / tag
- Implementation of "Reverse Commit" in Git (revert) was missing, now added
- Fix a race condition which could make the wrong diff appear initially in the commit view when committing a subset of the working changes
Changes in version 1.0.6:
- Allow multi-selection in bookmarks for delete, drag & drop
- Allow multiple folders to be dragged from Finder into bookmarks at once
- Allow user toolbar customisation
- Add support for DiffFork as external diff tool
- Jump button in log view now includes remote branches in git if being shown
- Fix Mercurial handling of tags & branches with embedded spaces
- If manual password authentication fails due to an expired / changed password, make sure prompt is displayed in Git
- Improved resilience of manual https login with Mercurial
- Prevent crashes under some authentication failure conditions
- Fix layout when resizing repository settings sheet
- Preserve existing Mercurial global ignore settings if ui.ignore.foo style is used instead of simply ui.ignore.
- Place the default global ignore lists in the user home again (hidden) rather than Application Support. Cleanly uninstalling
SourceTree could leave hg/git settings pointing at non-existent files otherwise
- Configure required Mercurial extensions through a custom hgrc file instead of altering core .hgrc,
in case user has configured their own custom versions of standard extensions.
- Fix a drag/drop validation problem when a folder is dragged into its own grandchildren after first being dragged elsewhere
- Adjust how external diffs are launched to avoid a process race condition which may be stopping external diffs from working in some cases.
Changes in version 1.0.5:
- Added 'Merge' context menu option in log view
- Added 'Remotes' view option to log view in Git
- Added 'Delete Branch' option in Git branch sheet
- Fixed a performance problem with very large diffs or other bulk command output
- Don't select a row in the merge view by default if the commit in question is not a valid merge source
- Don't display warning messages on Add Repository sheet when the fields are blank, less intimidating on first opening.
Changes in version 188.8.131.52:
- Embedded Mercurial upgraded to 1.7. This was necessary because Mercurial 1.7 includes a breaking change which means
repositories created with it cannot be opened with previous versions of Mercurial.
- Improved the refresh responsiveness on the Resolve Conflicts and Create Branch actions.
Changes in version 1.0.4:
- Many new optimisations keep performance snappy even on extremely large repositories
- Auto-refresh behaviour when app is active is now smarter, eliminating duplicate refreshes and detecting very
large numbers of file changes over a sustained period and throttling the refresh behaviour to keep CPU use down.
- New "All Branches" option in log view - uncheck to limit view to just current branch
- New ordering option in Git log view (date order, or ancestors first). The former is now the default since ancestors first (or --topo-order)
can be up to 5x slower than date order on extremely large repositories, so it's now by request only.
- 'Commit' is now split into 'Commit All' (defaults all modified, or staged if Git with staging enabled) and 'Commit Selected' for current selection.
Keyboard shortcut for the previous 'Commit' is 'Commit All' to preserve previous behaviour.
- Merge processes now correctly suspend auto-refreshing until done
- Deal with commits that introduce no file changes correctly (e.g. perfect merges of branches which have no changes in common)
- Fix a few cases where the 'jump' button spins forever
Changes in version 184.108.40.206:
- Fix a hang that could occur when drawing the log graph on a small number of repositories.
- Some tuning to the auto-refresh behaviour to reduce the number of redundant refreshes.
Changes in version 1.0.3:
- Improvements to log graph rendering:
- Use a more 'sloped' style rather than curved right-angles. This looks much better when the graph becomes more complicated.
- Style change allows the graph lines to be packed closer together, saving space.
- Graph cells now report their size properly so double-clicking the column divider auto-sizes it correctly
- Tweak the 'colour uniqueness' check so that graph line / commit colours are more distinct
- Make diff view context slider update interactively which is more intuitive, but clamp to 3-line increments for performance.
- Support external diff button in log history view
- Fix the context slider on the log view diff pane
- When multiple items are selected in the resolve dialog, group warning / confirmation prompts together so user is only prompted once.
- Make it clearer that Subversion is not supported; disallow drag/drop of Subversion working copies & fail gracefully when using a Subversion URL in the clone dialog.
Changes in version 220.127.116.11:
Changes in version 1.0.2:
- Changes and Kaleidoscope are now directly
supported as external diff tools so you don't have to use the 'Other' option.
Note that they're only available as diff tools, not merge tools since they do not support 3-way merges.
- When there are no entries in the log, make sure that the jump button spinner is told to stop.
- Fix the search panel on some locales where the max date supported by Mercurial was different.
- Git search will now find commits on all branches, not just the current one
- Fix display of file changes at a commit in Git when the file name contained spaces
- Fix commit detail reporting on first commit in Git
- Fix problems with UTF8 text support
- When committing a subset of files from the working tree, by default select the first of those files in the commit dialog and not the first file in the list.
Changes in version 1.0.1:
- Fix a bug in per-repository Mercurial hgrc handling that could cause per-repository user settings to be set to null when changing paths.
- Always allow the pushing of new branches in Mercurial
- Default ignore lists for both Mercurial and Git no longer exclude *.pch, that should not have been there.
Changes in version 1.0:
- First open public release!
- Online help updates and minor label changes for consistency
Changes in version 1.0 RC1:
- Non-context menu versions of Commit, Revert and Create Patch now default to the selection IF there is more than one file selected.
If only one file is selected, the default selection is used (since we can't know if this was the intention or not & default is safer)
- Add double-click action to file status view - opens file
- Git was warning twice about adding/removing files (if warning enabled)
- Application now tells trial users about trial period remaining every 3 days
- DiffMerge now supported
- Add support for custom diff & merge commands
- Support ignoring entire folders (pick level from the hierarchy)
- Basic help file configured
- Fix a bug in adding ignore entries to local repository
- Fix a bug with the checkbox state not being preserved across refreshes in file list view (e.g. commit).
This would usually occur when the system was under heavy load and the time for the refresh was extended, plus the check box state was altered
while the refresh was in progress.
- Minor positioning / size issues on the bookmarks window
- Workaround for cases where the open repository button gets chopped off.
Changes in version 1.0 beta 5:
- Search view implemented in repository windows
- A number of changes to reduce the resource usage when left open in the background:
- Don't allow the file list view to issue more than one asynchronous refresh at once
- Only process refresh events when SourceTree is the active application; they are queued up otherwise and processed when re-activated
- Increased the latency from kernel events to refresh to 2s instead of 1s
- Default global ignore files are now placed in Application Support instead of user's home directory
- Fix resizing of View tri-button when resizing the window (keep fixed size)
- Added a larger minimum size to the repo windows to prevent cramping of controls
- Custom DMG backdrop added
- Move the open source licensing information into the About box
Changes in version 1.0 beta 4:
- Fixed Git 'Fetch All'
- Fixed identification of remote Git repositories in clone tab
- DMG naming convention changed to use external version number instead of internal
Changes in version 1.0 beta 3:
- Fixed a startup bug which stopped Bookmarks window loading if Git config had a blank or unknown global ignore file.
- Preserve hg user name on import from hgrc if no email is supplied
- Prompt at startup for user details if unknown from any source (SourceTree, hgrc or gitconfig) instead of waiting for commit
Changes in version 1.0 beta 2:
- Automatic updates are now implemented
- Fixed log view containing repeated chunks of entries sometimes
- Bookmarks window rendering fixes in some edge cases; cropping of open button and stale renders under some scroll conditions
- Bookmarks window rename behaviour redesigned to be more appealing
- Fixed Bookmarks window open button hit testing problems
- New keyboard shortcuts on Bookmarks window: Return = open, cmd-i = Rename
- Authentication prompts & keychain support added for HTTPS protocol, and for using SSH without keys
- Remote Git repositories are now validated correctly
- Fixed reporting of outgoing / incoming changes in Hg when there are no changes (hg returns failure)
- Added keyboard shortcuts (cmd-1/2/3) to switch between repository views
- Add newline to when modifying git ignore files
- Missing files can now be reverted / reset
- External diff now correctly supports Git's 3 separate diff modes: tree/repo, tree/index, index/repo
- Added a context slider and external diff button to the diff panel
- Added more detail to the About dialog
- Changed 'modified' icon to replace exclamation mark with pencil (more intuitive)
- Tidied up some unused UI elements & fixed some text messages