SmartGit 20.2.6 (2021-08-16) ============================ Fixed Bugs ---------- - Git-LFS: possible very inefficient status processing - Log: - Graph: cherry-picking multiple commits did not work (regression since 20.1) - Refresh (working tree): possible internal error related to added-by-them submodule conflicts - Refresh: - "alternates" are not resolved properly when located on symlinks (Windows) - for repositories with symlinked .git/refs, refresh after branch-related commands did not occur (broken file monitoring) - possible internal error related to bad "core.hooksPath" configuration - possible internal error related to invalid timestamps received from certain, rare file systems, e.g. SFTPDrive SmartGit 20.2.5 (2021-05-04) ============================ Fixed Bugs ---------- - BitBucket: redundant "access token"-refresh requests if integration and OAuth is enabled - internal error if java.library.path contains invalid entry - Log: - File log: internal error when invoking Files, Rename - Repositories, Refresh: - after switching branches, obsolete submodules may remain - after switching branches, state of new submodules should be populated - Refresh: possible "submodule has error-prone admin area configuration" warning for main repositories created with "--separate-git-dir" - Submodule, Initialize: problems with named submodules - Stash: - Quick Stash behaves like normal Stash (showing a dialog) - Stash on Demand: must not apply if operation stopped in abortable state (rebase, merge, ...) - macOS: error parsing environment variables for 'fish' shell - Windows: internal error checking directory type under special conditions Other Noteworthy Changes ------------------------ - low-level property "smartgit.nodecache.subtrees.enabled" to disable subtree detection and functionality - Tag grouping: "name" extraction should be honored in Branches view groups, too SmartGit 20.2.4 (2021-03-08) ============================ Fixed Bugs ---------- - Changes view: possible redundant refreshing if repository is a worktree - Edit Commit Message: did not warn before modifying pushed commits if HEAD was selected - Gerrit: detection fails if hooks/commit-msg is a symlink - Log: - Files: Blame should not be available on submodules - File Log: - failed to open for deleted-by-us conflict - (re)selecting "Index" node should reset Files/Changes view - Investigate: possible "missing blob" error when selecting commit which contains removed submodule - Refresh: - possible internal error for submodule entries containing // in .git/config - Working Tree window: possible wrong matching between submodule entries in .git/config and .gitmodules - Syntax: - Shell: invalid parsing of $'foo' or $(command parameter) Other Noteworthy Changes ------------------------ - Announce end-of-life for SVN support on 2022-12-31 - Linux: - notification about using bundled Git: optionally don't show again SmartGit 20.2.3 (2021-02-15) ============================ Fixed Bugs ---------- - Branches: stashes might be missing in case of corrupted logs/refs/stash file (which still could be processed by Git) - Changes View: no caret was visible - Distributed Reviews: showed duplicate comments on left side - Log: - Files: possible internal error related to deleted-by-us submodule conflicts - Graph: possible "missing blob" error when selecting commit which contains removed submodule - Refresh: possible internal error related to concurrently changing, renamed files - Spell checker: could not read files with UTF-8-BOM - Startup/opening repository: possible internal error related to file-system probing of special network drives - Syntax: - fixed C# and SQL parsing of # lines, also fixing a performance problem - Python: a line containing only a # was not detected as comment line - Worktrees: for some minor internal operations the worktree's config file was search at the wrong location Other Noteworthy Changes ------------------------ - Git-Flow: added low-level-property "gitflow.external.avh1.12" - Log: - Details: possible confusion about "Tags", "Same State Tags" and "Closest Tags" - Graph, Filtering: horizontal space better used for filter options - having SmartGit running only in the tray, launching it a 2nd time reopens last repositories - Linux: with dark theme comboboxes were hard to read SmartGit 20.2.2 (2021-01-13) ============================ New Features, Improvements -------------------------- - macOS: added low-level property envVarParser.timeout to configure the timeout for slow login shells Fixed Bugs ---------- - Changes View, Compare, ...: internal error trying to stage/apply a selection at the file end - Log: possible internal error related to layouting very broad graphs - Preferences: internal error clicking search icon in search input field - Set Tracked Branch: possible internal error for branch names like "2%" - Syntax coloring: - Java: 100f is not detected as one number, but as 100 and f - JavaScript: missed RegEx string - macOS 10.15: problem parsing environment variables if 'tcsh' is used as shell Other Noteworthy Changes ------------------------ - updated SWT - Linux: internal error changing screen DPI https://bugs.eclipse.org/bugs/show_bug.cgi?id=568641 SmartGit 20.2.1 (2020-12-17) ============================ New Features, Improvements -------------------------- - Commit, line-length guides: added low-level properties commit.lineLengthGuide.limit1/limit2/limit3 to configure limits https://smartgit.userecho.com/en/communities/1/topics/963- - Log: Select Parent/Child Commit has less priority if a file is selected; makes is easier to use the same shortcut for other commands, e.g. Previous/Next Change Fixed Bugs ---------- - Files: "inactive" submodules did not show up despite of selected "Show Ignored File" - Log: - internal error selecting Files tab if it is in the same tab group as the Changes view - Graph (File log): for grouped tags, denote whether the first tag is signed - GitHub: - during refresh comments vanished temporarily in Changes view - Refresh: - Windows: possible false-positive modifications of symlinks - internal error in case of corrupted filemode bits in .git/index - Subtree, Add: may fail with "terminal prompts disabled" message - Linux: - older GTK3 versions: internal error opening file/directory dialog - see readme-linux.txt - macOS: - Annotate: background was too light Other Noteworthy Changes ------------------------ - Exit by closing last window: show optional confirmation dialog; especially useful for users who have assigned ESC to the Close command - open browser from permanent directory instead of SmartGit working directory, otherwise there were problems with autoupdates - macOS: - uses own toolbar - detect environment variables: - system SHELL is used instead of hard-coded /bin/bash - timeout after 10s SmartGit 20.2 GA (2020-11-23) ============================= Fixed Bugs ---------- - Journal: possible internal error on drag and drop - Log: - Interactive Rebase, Modify/Split Commit: menu items should not be disabled because of merge commits (but though reject to operate because of merge commits) - Refresh: - Linux, macOS: performance regression related to timestamp precision - Remove Worktree: possible internal error if working tree was open in multiple windows - Stage: reported warnings about unrelated inaccessible directories - Linux: internal error related to checking the version of the bundled Git - macOS: - Cmd+W did not close log or working tree window - Stage: did not work for repository located directly at $HOME Other Noteworthy Changes ------------------------ - Ignore dialog: added low-level property "ignore.defaultSelection" that influences which option is selected by default depending on the selected file count and names - LFS: added low-level property "executable.addBinDirectoryToPath" to prepend the Git bin directory to the PATH, because otherwise for some configs git-lfs is not found - Log: - Graph: added low-level property "log.graph.drawSignedIcon" to hide the icon for signed commits SmartGit 20.2 RC 5 (2020-11-11) =============================== New Features, Improvements -------------------------- - Syntax: added support for Swift - Log, Files: when comparing 2 commits, the younger commit is displayed by default on the right side Fixed Bugs ---------- - Linux: bundled Git did not work with minimal Ubuntu 18.04; replaced bundled Git with one built on Ubuntu 18.04 (requires libcurl 7.58+) - Refresh: - possible unexpected "untracked" state of intermediate directories on the path to a submodules on case-insensitive file systems - Working tree window (Windows): performance drawback due to possible redundant file content checks - Subtree | Reset: possible internal error Other Noteworthy Changes ------------------------ - Discard: added low-level property discard.safeDefault to allow to default to the Discard button instead of Discard to Stash - Table controls: added low-level property table.copySelectionWithCtrlC to disable the default Ctrl/Cmd+C shortcut for copying the selected line content - anonymized email address is sent (@domain.com) SmartGit 20.2 RC 4 (2020-11-03) =============================== New Features, Improvements -------------------------- - Git-Flow: added low-level properties gitlfow.finishRelease.message and gitflow.finishHotfix.message - Syntax coloring: "JavaScript" became "JavaScript/TypeScript" also supporting .ts extensions Fixed Bugs ---------- - Log: for some operations (like Add Branch) an unnecessary working tree refresh was performed - GitHub/GitLab/Bitbucket: fetching conflicting pull requests may result in empty "pull request" commit instead of declaring failure - Refresh: - possible inconsistency in internal ref-state which may cause various problems, including crashes - Windows: inefficient refreshing on subst-ed drive - startup: possible random internal error recreating /hgext Other Noteworthy Changes ------------------------ - updated SWT fixing some GTK and macOS bugs SmartGit 20.2 RC 3 (2020-10-27) =============================== Fixed Bugs ---------- - Branches: - stashes are not shown in worktree repository - tooltip used inappropriate colors in dark theme - GitHub/GitLab/BitBucket: for pull requests of branch with multi-level names, e.g. feature/next/one, fetching pull request gave duplicate entry - Gravatar: sometimes the updating of the images did not work correctly - Repositories view: bare repository was not accepted on drag and drop - Repository | Add or Create: bare repository was treated as normal directory - SWT: possible internal error related to IME https://bugs.eclipse.org/bugs/show_bug.cgi?id=568033 Other Noteworthy Changes ------------------------ - Syntax coloring: if the lexing process takes longer than by default 1s, it will be aborted (configurable with the low-level property syntax.timeout) SmartGit 20.2 RC 2 (2020-10-19) =============================== Fixed Bugs ---------- - Log: - Graph, Reveal HEAD: - internal error when invoked for empty repository - was not available for bare repositories - memory leaks after closing - Gravatar image cache: possible internal error - Preferences, Add/Edit external tool: allowed to enter command with leading ~, but did not store it correctly resolved - macOS: workaround for invalid parameters using Input Method Editor (IME) https://bugs.eclipse.org/bugs/show_bug.cgi?id=427882 SmartGit 20.2 RC 1 (2020-10-13) =============================== Fixed Bugs ---------- - Discard: internal error when using the Stash option with too old Git version - Log: - Commit view: might not show all content if too narrow - Files (Working Tree): "EOLs only" modifications did not show up as in the Working Tree window - Preferences, Searching: the first matching tree node was selected, but not the corresponding page - Syntax: - some block comments like /***/ were not detected correctly, e.g. for Java - Rust: incorrect handling of character literals - V: bug in escaped character Other Noteworthy Changes ------------------------ - Changes view: setting syntax language shows a warning dialog now if Compact Change Display is selected - increased requirement for Git 2.16+, if older version is detected, the bundled 2.28 is selected - Log, Commit view: changed order of branches and tags sections from more to less important - Rebase: aborting showed a success popup which confused some users - added low-level property progress.showInTaskbar to deactivate showing the command progress in the task bar SmartGit 20.2 Preview 6 (2020-09-30) ==================================== New Features, Improvements -------------------------- - Commit: - Commit view: option in the ☰ menu to show all commit dialog options, including a gravatar image of the current user/email (use click to change) - remembers "Signed-off by"-option for repository - GitLab: - Create Merge Request: optionally specify an Assignee - Pull: - rebase uses "--fork-point" by default (low-level property "pull.rebase.detectForkPoint") - Rebase: - Continue: allow to continue without committing untracked files Fixed Bugs ---------- - Graph/Journal (Linux): scrolling with mouse wheel occurred in too large steps - Log: - Graph: context menu could show 2 items for "Format Patch" - Commit view: amend checkbox was drawn over Commit button on Linux - Linux: bundled Git was not installed - Tools menu of working tree window did not contain general commands Other Noteworthy Changes ------------------------ - Confirmation dialog for rebasing commit range: show information about recyclable commit and don't offer to create tag - Keyboard shortcuts: distinguish between (Repository) Close and (Window) Close - Linux: - GTK3 is required now - notify user about bundled Git SmartGit 20.2 Preview 5 (2020-09-18) ==================================== New Features, Improvements -------------------------- - Log: - Graph: - re-added toolbar buttons for "Reveal HEAD/Working Tree" (Alt+Home) and "Go to previous selection" (Alt+Left), shortcuts are similar like in web browsers - automatically hide revealed working tree if - HEAD changes (e.g. after switched branch) - it becomes empty after it was non-empty (e.g. after commit or discard) - 40% performance improvement when filtering for File Name - File log: don't display redundant merge commits for which the file has been added - Files: - Show Rename Source Files: should be applicable for commit file listings, too - Syntax coloring: - new support for Dart, Nim and V - HTML: support for section - Java: support for multiline strings and new keywords in Java 13 - Java, Kotlin: different color for types (depending on case) - Shell Script: support for variables inside "strings" - unified some colors, removed obsolete "No code" - Linux tar.gz bundle: ships with Git now, because too much Linux versions have too old Git installations Fixed Bugs ---------- - Discard to Stash: fails in case of conflicting files - Log: - File log: fails on directory which is not present in HEAD anymore - opening a new repository should not open a new window if refresh is in progress - Preferences, Search: visual glitches on macOS' dark theme - Syntax coloring: - Shell script: lexer was buggy - Temp directory: lock file could be deleted by user Other Noteworthy Changes ------------------------ - Bitbucket Server: reduced fetched repository data for provider setup "ping" - Log: - Graph: move "Insignificant Merges" option from Branches view to options menu - Working tree refresh: minor performance optimization - Preferences, Search: - find in tree item text - select first matching tree item - tab control (Linux, Windows): switch tabs using Alt+Left/Right - updated bundled Git to version 2.28.0 - updated bundled JRE to version 11.0.8 SmartGit 20.2 Preview 4 (2020-09-02) ==================================== New Features, Improvements -------------------------- - Subtree: - Add command - Reset: allow to create empty "marker" commit - Preferences: added search input field - Branches: added "Select Obsolete Local Branches" menu item to ☰ menu https://smartgit.userecho.com/communities/1/topics/311- - Find Object (Ctrl/Cmd+P): also treats space separated search patterns as separate sub patterns https://smartgit.userecho.com/communities/1/topics/1226- - Discard: by default (optionally) stashes local changes (kind of Undo-capability) - Merge/Rebase: will not disabled in all inappropriate cases, but rather shows an information why is it not possible (otherwise it is not obvious for novice users) - Tools (Windows): default tool for editing in Notepad - Changes/Compare/Index Editor/Conflict Solver: UTF-32 support, e.g. emojis Fixed Bugs ---------- - Log: - Graph: - possible internal error related to certain rebasing states - dragging range of commits should only offer to rebase for HEAD, not other branches - possible confusions using multiple subtrees in the same main repository - internal error trying to drag "Working Tree/Index" node - Revision column for SVN repository was too dark in dark theme - Commit view: - GitHub/others: improved detection of correct URL for Open link - Branches, Subtrees: checking out tag did not perform subtree check - Changes view: problem when trying to stage unicode characters which had been added to plain ASCII file - Investigate: internal error on macOS - Refresh: - Linux/macOS: - possible internal error related to submodules obstructing regular repository directories - possible internal error related to core.ignoreCase=true and missing files, or after commands - do not suggest to relative .git-file content or core.worktree configuration if relativizing is impossible, e.g. on different Windows drives - internal error related to bad pack index files - internal error related to bad submodule commits - Resolve: might fail with "git rm invalid usage" error - Stage: be more tolerant in case of file system traversal errors, e.g. broken symlinks/junctions - Tools: removed obsolete ${hg} and ${hgDir} parameters - SVN: - Clone: possible problems when opening a background cloing repository in a second window Other Noteworthy Changes ------------------------ - Log: - Graph: rearranged drag and drop menu to have more stable positions of menu entries - Files: when comparing the Working Tree/Index with a commit, a banner is shown explaining that the Index is compared with the commit - Add Repository: resolve "core.worktree" before adding repositories to avoid subsequent warnings about unsupported "core.worktree" - Refresh: improved warning for "unsupported" core.worktree - Branches, Subtrees: Merge/Reset operations are available for subtree refs - Files view: for nested roots, Ignore also is available in context menu - Remote, Rename: uses same editing logic as Remote Add, e.g. replacing spaces with underscores - Clone: for the Check Out Branch first suggest "master", then "develop", then remote HEAD - Stage: log warnings for files which are ignored due to certain "access denied" problems - Syntax coloring: - typing text uses existing coloring until refreshed resulting in more stable coloring - reimplemented some language definitions - Tools: if ${commit2} is used, 2 selected items are required (use a second tool without ${commit2} if it should be optional) SmartGit 20.2 Preview 3 (2020-08-10) ==================================== New Features, Improvements -------------------------- - GitLab/BitBucket Server: low-level property "(gitlab|stash).pullRequestCommentPageLimit" - GitHub and others: - preserves comment text in case of failure - low-level property "*.pullRequestCommentPageLimit" can be set to 0 to disable pull request comment feature - warns for locally outdated pull requests before commentsing (because it will result in problems later anyway) - Log: - Changes: minor performance improvement related to file diff generation for committed files - SVN: - by default HTTP spooling is used Fixed Bugs ---------- - Branches: - grouped feature branches were shown like local features (instead of gray) - Changes: - title and content were not updated at the same time - possible confusion if next file diff is already scheduled and Apply commands are invoked on current (obsolete) file content - Discard: could suggest to revert (modified) assume-unchanged files - GitHub: - do not offer to "Add GitHub Comment" on plain commit if commit comment refreshing is enabled (default for 20.2) - reject to fetch conflicting pull request (instead of creating an empt, dummy merge commit) - Journal: should not denote "pushed" commits, if there is no remote at all - Log: - Changes: don't show hand cursor if comment is not editable - Checkout dialog: misaligned labels (noticable on Linux) - Graph: - filter: - could be reset once graph was loaded - when switching between 2 open repositories the regular expression option was not properly adjusted - todo/done list numbering may be confused for old "merge" and "apply" rebase - drag and drop: could offer to cherry-pick commits even if only a ref was dragged (with log.dragAndDrop.draggingARefShouldAlsoDragCommit=false) - Rebase Interactive: cancelling the dialog might set selection to HEAD - when opening nested root of some repository, it was shown as submodule of the parent repository - Notifications: some repository-specific notifications were not closed once the repository is closed/switched - Refresh: - missing directory was not reported if obstructed by a staged file - possible inefficient refreshing for rebases with many TODO/DONE commits - SVN clone: did not properly configure core.ignoreCase on Windows (to prevent warning) - Windows: - scrolling in Graph/Journal with mouse pad worked better in one direction than the other Other Noteworthy Changes ------------------------ - message box contents can be copied now with Ctrl/Cmd+C (like common on Windows) - updated SWT: Bug 565089 - [Win32] Table.selectAll quickly reverts back to previous selection Bug 565426 - [Win32] Smooth scrolling doesn't work with SWT.CANVAS - https connections use SmartGit/ as "User-Agent" header - Repositories view: - context menu: tools are hidden for missing repository - macOS: - dmg with link to /Applications - bundled Git updated to v2.27.0 SmartGit 20.2 Preview 2 (2020-07-21) ==================================== New Features, Improvements -------------------------- - Branches: - remote, tracked features show up under remote and not under "Features" to avoid duplicate entries - remote, tracked branches are always shown - more efficient processing in case of many tags - after checking out remote branch, tracking local branch becomes selected - added option to group refs either after first or last slash - more efficient detection of "closest tag" (for large repositories with many refs) - Log - drag and drop for Branches view and Graph view: - to update-ref or reset (dropping onto other refs or commits) - to cherry-pick, merge and rebase (dropping onto the HEAD ref) - Graph: - clustering of customizable build tags (View | Configure Build Tags) - other refs (currently shown in gray) are not shown unless selected in Branches view - cursor left/right can be used to collapse/expand non-first parent nodes - dragging refs: added low-level property log.dragAndDrop.draggingARefShouldAlsoDragCommit to only offer ref related operations - Filter: - resetting filter selects previously selected commit - added low-level property "log.graph.filter.persistFileNameOption" - File log: - shows warning banner in case of disjoint history (as such histories are usually unexpected) - if file was renamed in root commit, log is rerun with rename target - Files: - diff banner only shows up - if diff is not empty - when swapping commits is useful (= if neither commit is reachable from the other) - files can be dragged to other applications - Repositories: show current submodule commit/ref even if not opened - Output: shows finish time - Push: don't report unchanged refs (like "git push" without "--porcelain" also doesn't) - Refresh (Working Tree): warn if configured core.ignoreCase does not match file system - Submodule: - Add: now also the relative path can be specified, not just the name inside the selected directory Fixed Bugs ---------- - Log: - the selected refs in the Branches view and shown branches in the Graph could become out-of-sync - closed Changes view reopened if selection in the Files view changed - File log: disjoint histories might have erroneously shown up as connected - Branches: - Revealing Tracked did not work properly - Hamburger menu - toggling "Show remote branches in their Git-Flow sections" did not properly adjust category selection state (tri-state) - sorting with selected "Except for single refs" sorted single refs to the end instead of date/name - child options were not correctly enabled/disabled - Graph: - File log, filtering: doesn't use quick lookup of SHAs because it could report commits not belonging to file's history - Files: - order of diffed commits was not preserved after refresh - filter could have been preserved unexpectedly after SmartGit was forcefully killed - background fetch: stops in case of authentication failure to avoid becoming locked out by the server - Refresh - submodule conflict "deleted by us" reported contained directories as missing (because the submodule wasn't real) - after commands: did not work for UNC-paths - startup: --log, --blame, --investigate did not honor --anchor-commit when checking for the presence of the repository file - GUI: - directory input field: a relative path was absolutized relative to the SmartGit working directory (usually installation path) - docking: a long title (e.g. Changes view) must not cause a larger view size - XML syntax coloring: multiline parameter values were not detected correctly - macOS: - possible internal error opening a directory chooser - right-clicking a control delayed the focus-event and hence showed a wrong context menu - Pull dialog: after expanding the options, they showed up as disabled Other Noteworthy Changes ------------------------ - Changes view: - reduced git-filter invocations by 50% (important for LFS files) - expand Git-LFS files by default (= apply filters by default) - GitHub: - added low-level property "github.pullRequestCommentPageLimit" to limit amount of fetched pull request comments - Output view: ANSI sequences are ignored for better readability - Branches, Graph: unicode characters (head, at-head, signed, subtree) are drawn as graphic because some fonts had problems with them - SVN: shows more meaningful error message in case of network error - Window | New Window: does not automatically reopen closed repositories any more SmartGit 20.2 Preview 1 (2020-06-22) ==================================== New Features, Improvements -------------------------- - Create Branch, Start Feature: options for configuring default prefix in .git/config [smartgit "gui"] prefixAddBranch = myBranchPrefix prefixStartFeature = myFeaturePrefix - "Edit | Customize" (accelerators) was replaced by central customization of keyboard shortcuts in the preferences - External tools: use fresh environment variables (without any modifications of the SmartGit launcher) - GitHub: reworked authorization due to "Deprecating OAuth Authorization API" - Log: - Graph: - Filtering: - easier and more visible options, easier reset - faster for finding ID - improved layout performance - Files: - shows banner when performing a diff (2 selected commits) with option to swap both refs - for working tree and index tables, columns "Last Changed On" and "Size" were added - Changes view can auto-hide: - drag Changes view on top of the Graph view - selecting a file, the Changes view comes to front, unselecting the file, the Graph view comes to front - Refresh: improved performance - Search/Filter input fields: more visible RegEx option (some filter input field don't have it any more, because not needed) - Submodules: - Repositories: shows more human readable name for the Ref similar to how "git submodule" does - Subtree support: - "subtree merge" command - "subtree reset" command - "subtree split" command - Syntax coloring re-implemented based on ANTLR, because the previously used library was not supported any more - newly support "languages": ANTLR, bat/cmd files, CMake, InnoSetup, Kotlin, properties files, YAML - less popular were removed (but might be provided if there is demand and users provide test files) - macOS: use monospace-digit-font hint for system font, so e.g. date columns get aligned correctly - Windows: if Windows is configured to dark app theme, SmartGit's automatic theme will cause it to launch in dark theme, too Fixed Bugs ---------- - Commit message editor: caret was invisible if at line length guide position - GitHub: OAuth scopes were not properly set to access GitHub "workflows" - Log: - Changes: - possible out-of-memory error when accessing huge file - Comment display: foreground and background colors were not configurable in theme - LFS files were not deflated, despite of "smartgit.compare.applyGitFilters" being set - connector between both panes were not reliable cleared when unselecting file - Graph: - possible unnecessary crossings related to Low-Level Property "log.graph.preserveConnectorsUntilFork" - working tree node and history commands were disabled if head branch, but not "HEAD" was selected in Branches view - when opening the Log for a non-head branch focus is forced to the Graph after a while even if the filter input field already was focused - Move to Trash: improved performance for multiple files - Refresh: - possible false-positive "unchanged" state for files changed immediately after staging Other Noteworthy Changes ------------------------ - "Branch | Rebase | Abort" was removed because the more general "Branch | Abort" already covers it - Preferences, low-level properties page: initially shows only modified properties (for easier reset) - Windows: upgraded to Git 2.27