From cd90faa526720cb4b07a52b3cf84abaa55a978a0 Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Tue, 19 Jun 2018 03:29:30 -0400 Subject: [PATCH] Preps v8.4.0 --- CHANGELOG.md | 7 +- README.md | 86 +---- images/cl-heatmap-cold.png | Bin 0 -> 15111 bytes images/ss-heatmap.png | Bin 14719 -> 14723 bytes package-lock.json | 4 +- package.json | 2 +- src/ui/images/settings/heatmap.png | Bin 10475 -> 10478 bytes src/ui/scss/main.scss | 25 +- src/ui/welcome/index.html | 728 +++++++++++++++++++++++++++---------- 9 files changed, 574 insertions(+), 278 deletions(-) create mode 100644 images/cl-heatmap-cold.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 83c23a8..70f941b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). -## [Unreleased] +## [8.4.0] - 2018-06-19 ### Added -- Adds completely revamped **heatmap** annotations +- Adds completely revamped heatmap annotations + ![cold heatmap](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/cl-heatmap-cold.png) - The indicator's, now customizable, color will either be hot or cold based on the age of the most recent change (cold after 90 days by default) — closes [#419](https://github.com/eamodio/vscode-gitlens/issues/419) - The indicator's brightness ranges from bright (newer) to dim (older) based on the relative age, which is calculated from the median age of all the changes in the file - Adds `gitlens.heatmap.ageThreshold` setting to specify the age of the most recent change (in days) after which the gutter heatmap annotations will be cold rather than hot (i.e. will use `gitlens.heatmap.coldColor` instead of `gitlens.heatmap.hotColor`) - Adds `gitlens.heatmap.coldColor` setting to specify the base color of the gutter heatmap annotations when the most recent change is older (cold) than the `gitlens.heatmap.ageThreshold` setting - Adds `gitlens.heatmap.hotColor` setting to specify the base color of the gutter heatmap annotations when the most recent change is newer (hot) than the `gitlens.heatmap.ageThreshold` setting -- Adds new branch history node under the **Repository Status** node in the *GitLens* explorer +- Adds new branch history node under the *Repository Status* node in the *GitLens* explorer - Adds GitLab and Visual Studio Team Services icons to the remote nodes in the *GitLens* explorer — thanks to [PR #421](https://github.com/eamodio/vscode-gitlens/pull/421) by Maxim Pekurin ([@pmaxim25](https://github.com/pmaxim25)) ### Fixed diff --git a/README.md b/README.md index 526c59c..69de7c9 100644 --- a/README.md +++ b/README.md @@ -13,79 +13,19 @@
# What's new in GitLens 8 -## 8.3 — May 2018 -- Adds the ability to control where the *GitLens*, *GitLens History*, and *GitLens Results* explorers are shown 🎉 — closes [#213](https://github.com/eamodio/vscode-gitlens/issues/213), [#377](https://github.com/eamodio/vscode-gitlens/issues/377) - - Adds `gitlens.gitExplorer.location` setting to the interactive settings editor to specify where the *GitLens* explorer is shown — either in the *Explorer* or *Source Control* view - - Adds `gitlens.historyExplorer.location` setting to the interactive settings editor to specify where the *GitLens History* explorer is shown — either in the *Explorer* or *Source Control* view - - Adds `gitlens.resultsExplorer.location` setting to the interactive settings editor to specify where the *GitLens Results* explorer is shown — either in the *Explorer* or *Source Control* view -- Adds user-defined modes for quickly toggling between sets of settings - - ![mode switch](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/cl-mode-switch.png) - - - Adds *Switch Mode* command (`gitlens.switchMode`) to quickly switch the active GitLens mode - - Adds a built-in *Zen* mode which for a zen-like experience, disables many visual features - - Adds *Toggle Zen Mode* command (`gitlens.toggleZenMode`) to toggle Zen mode - - Adds a built-in *Review* mode which for reviewing code, enables many visual features - - Adds *Toggle Review Mode* command (`gitlens.toggleReviewMode`) to toggle Review mode - - Adds the active mode to the status bar, optional (on by default) - - Adds `gitlens.mode.statusBar.enabled` setting to specify whether to provide the active GitLens mode on the status bar - - Adds `gitlens.mode.statusBar.alignment` setting to specify the active GitLens mode alignment in the status bar - - Adds modes settings (`gitlens.mode.*`) to the interactive settings editor - - ![modes settings](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/cl-modes-settings.png) - - - Adds `gitlens.mode.active` setting to specify the active GitLens mode, if any - - Adds `gitlens.modes` setting to specify the user-defined GitLens modes -- Adds an icon for the *Compare File with Previous Revision* command (`gitlens.diffWithPrevious`) and moves it into the editor toolbar -- Adds an icon for the *Compare File with Next Revision* command (`gitlens.diffWithNext`) and moves it into the editor toolbar -- Adds menu settings (`gitlens.menus.*`) to the interactive settings editor - - ![menu settings](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/cl-menu-settings.png) - -- Adds a display mode dropdown at the top of the interactive settings editor to reduce complexity - - ![settings mode](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/cl-settings-mode.png) - - - Adds `gitlens.settings.mode` setting to specify the display mode of the interactive settings editor -- Adds (re-adds) support for handling single files — closes [#321](https://github.com/eamodio/vscode-gitlens/issues/321) -- Adds a tree layout option to tags in the *GitLens* explorer — closes [#358](https://github.com/eamodio/vscode-gitlens/issues/358) -- Adds *Show GitLens Explorer* (`gitlens.showGitExplorer`) command — shows/expands the *GitLens* explorer -- Adds *Show History Explorer* (`gitlens.showHistoryExplorer`) command — shows/expands the *GitLens History* explorer -- Adds *Show Results Explorer* (`gitlens.showResultsExplorer`) command — shows/expands the *GitLens Results* explorer -- Adds *Close Repository* (`gitlens.explorers.closeRepository`) command to repository and repository status nodes in the *GitLens* explorer — closes (hides) the repository in the *GitLens* explorer -- Adds clipboard support for Linux without requiring any external dependencies — thanks to [PR #394](https://github.com/eamodio/vscode-gitlens/pull/394) by CĂ©dric Malard ([@cmalard](https://github.com/cmalard)) -- Adds a select branch quick pick menu to the *Open File in Remote* command (`gitlens.openFileInRemote`) when the current branch has no upstream tracking branch — closes [#209](https://github.com/eamodio/vscode-gitlens/issues/209) -- Showing results in the *GitLens Results* explorer now properly shows the explorer first -- Renames *Compare Line Revision with Previous* command (`gitlens.diffLineWithPrevious`) to *Compare Commit with Previous* for consistency with other commands -- Renames *Compare Line Revision with Working File* command (`gitlens.diffLineWithWorking`) to *Compare Commit with Working File* for consistency with other commands -- Renames *Show Commit File Details* command (`gitlens.showQuickCommitFileDetails`) to *Show Commit Details* for consistency with other commands -- Reworks GitLens menu contributions and configuration — see menu settings above - - Renames the `gitlens.advanced.menus` setting to `gitlens.menus` -- Uses the new Webview API for better interactions and behavior with the interactive settings editor and welcome page -- Moves the *Open Working File* command (`gitlens.openWorkingFile`) to the right of the *Compare File with * Revision* commands in the editor toolbar -- Fixes [#366](https://github.com/eamodio/vscode-gitlens/issues/366) - Running a GitLens command from a keybinding fails -- Fixes [#155](https://github.com/eamodio/vscode-gitlens/issues/155) - Navigating file diffs with `alt+,` gets stuck -- Fixes [#359](https://github.com/eamodio/vscode-gitlens/issues/359) - Show changes of an added file in the first commit -- Fixes [#372](https://github.com/eamodio/vscode-gitlens/issues/372) - Wrong URL to VSTS work item when using hash work item id in commit -- Fixes [#362](https://github.com/eamodio/vscode-gitlens/issues/362) - Too many code lenses in postcss files -- Fixes [#381](https://github.com/eamodio/vscode-gitlens/issues/381) - Can't stash single files with older versions of Git -- Fixes [#384](https://github.com/eamodio/vscode-gitlens/issues/384) - Absolute dates not always honored in *GitLens Results* explorer -- Fixes [#385](https://github.com/eamodio/vscode-gitlens/issues/385) - Wrong git command to delete remote branch -- Fixes [#400](https://github.com/eamodio/vscode-gitlens/issues/400) - Reset TO commit also resets chosen one -- Fixes [#399](https://github.com/eamodio/vscode-gitlens/issues/399) - "Open x in Remote" commands aren't always available -- Fixes [#397](https://github.com/eamodio/vscode-gitlens/issues/397) - Error while opening the gitlens view using `Open View` command -- Fixes [#391](https://github.com/eamodio/vscode-gitlens/issues/391) - GitLens adds some settings in settings.json -- Fixes another case of [#343](https://github.com/eamodio/vscode-gitlens/issues/343) - Can't show blame when VSCode starts on branch without upstream — thanks to [PR #390](https://github.com/eamodio/vscode-gitlens/pull/390) by ryenus ([@ryenus](https://github.com/ryenus)) -- Fixes [#392](https://github.com/eamodio/vscode-gitlens/issues/392) - unable to contribute if default script shell is sh — thanks to [PR #393](https://github.com/eamodio/vscode-gitlens/pull/393) by CĂ©dric Malard ([@cmalard](https://github.com/cmalard)) -- Fixes more instances of [#295](https://github.com/eamodio/vscode-gitlens/issues/295) and [#318](https://github.com/eamodio/vscode-gitlens/issues/318) - Any error encountered during the search for repositories could cause GitLens to die -- Fixes issue with the `chorded` keyboard shortcut for the *Compare File with Previous Revision* command (`gitlens.diffWithPreviousInDiff`) — from [#395](https://github.com/eamodio/vscode-gitlens/issues/395) -- Fixes *bronze* typo thanks to [PR #361](https://github.com/eamodio/vscode-gitlens/pull/361) by Cory Forsyth ([@bantic](https://github.com/bantic)) -- Fixes *individually* typo thanks to [PR #364](https://github.com/eamodio/vscode-gitlens/pull/364) by Brett Cannon ([@brettcannon](https://github.com/brettcannon)) -- Fixes issue where comparing previous revision during a merge/rebase conflict failed to show the correct contents -- Fixes issue with the current line blame toggle not working when current line blame starts disabled -- Fixes various issues when not on a branch -- Fixes many issues where commands wouldn't work if the active file wasn't part of an open repository — now GitLens will try to find the best repository otherwise it will open a repository quick pick menu if there is more than one -- Fixes the *Open Working File* command (`gitlens.openWorkingFile`) not always showing in the editor toolbar when appropriate +## 8.4 — June 2018 +- Adds completely revamped heatmap annotations + ![cold heatmap](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/cl-heatmap-cold.png) + - The indicator's, now customizable, color will either be hot or cold based on the age of the most recent change (cold after 90 days by default) — closes [#419](https://github.com/eamodio/vscode-gitlens/issues/419) + - The indicator's brightness ranges from bright (newer) to dim (older) based on the relative age, which is calculated from the median age of all the changes in the file + - Adds `gitlens.heatmap.ageThreshold` setting to specify the age of the most recent change (in days) after which the gutter heatmap annotations will be cold rather than hot (i.e. will use `gitlens.heatmap.coldColor` instead of `gitlens.heatmap.hotColor`) + - Adds `gitlens.heatmap.coldColor` setting to specify the base color of the gutter heatmap annotations when the most recent change is older (cold) than the `gitlens.heatmap.ageThreshold` setting + - Adds `gitlens.heatmap.hotColor` setting to specify the base color of the gutter heatmap annotations when the most recent change is newer (hot) than the `gitlens.heatmap.ageThreshold` setting +- Adds new branch history node under the *Repository Status* node in the *GitLens* explorer +- Adds GitLab and Visual Studio Team Services icons to the remote nodes in the *GitLens* explorer — thanks to [PR #421](https://github.com/eamodio/vscode-gitlens/pull/421) by Maxim Pekurin ([@pmaxim25](https://github.com/pmaxim25)) +- Fixes [#400](https://github.com/eamodio/vscode-gitlens/issues/412) - GitLens logging to debug console when debugging different extension +- Fixes [#409](https://github.com/eamodio/vscode-gitlens/issues/409) - Literal $(ellipsis) inserted into commit QuickPick menu entry placeholder text +- Fixes [#415](https://github.com/eamodio/vscode-gitlens/issues/415) - Branch names get mangled by color escapes — thanks to [PR #416](https://github.com/eamodio/vscode-gitlens/pull/416) by Roy Ivy III ([@rivy](https://github.com/rivy)) See the [release notes](https://github.com/eamodio/vscode-gitlens/blob/master/CHANGELOG.md "Open Release Notes") for the full set of changes diff --git a/images/cl-heatmap-cold.png b/images/cl-heatmap-cold.png new file mode 100644 index 0000000000000000000000000000000000000000..dbd1ab7e6a8d53d52778db728e123a5657acdc98 GIT binary patch literal 15111 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 literal 0 HcmV?d00001 diff --git a/images/ss-heatmap.png b/images/ss-heatmap.png index 3227a228265f7ab5523c1e33710bcad530fd546b..e516ae8dd82a071e5b6a607857bd899bbd88d339 100644 GIT binary patch literal 14723 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 literal 14719 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 delta 9752 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 diff --git a/src/ui/scss/main.scss b/src/ui/scss/main.scss index b12134d..16a6125 100644 --- a/src/ui/scss/main.scss +++ b/src/ui/scss/main.scss @@ -138,9 +138,9 @@ input:not([type]) { border: 1px solid var(--color); color: var(--color); margin: 0 0.75em; + max-width: 300px; padding: 4px; width: 100%; - max-width: 300px; &:focus { background: rgba(0, 0, 0, 0.1); @@ -363,10 +363,10 @@ ul { .changelog__date { font-size: 0.8em; - font-weight: 600; font-variant: small-caps; - opacity: 0.9; + font-weight: 600; margin-left: -7px; + opacity: 0.9; vertical-align: middle; } @@ -374,6 +374,7 @@ ul { align-items: center; display: flex; justify-content: center; + padding: 0 7em; position: relative; &:before { @@ -386,6 +387,18 @@ ul { } } +.changelog__details--list { + flex-direction: column; + + & p { + margin-bottom: 0; + } + + & p:last-child { + margin-bottom: 1em; + } +} + .changelog__hint { color: var(--color--75); font-weight: 200; @@ -555,8 +568,8 @@ ul { .icon__info { -webkit-mask-image: url('data:image/svg+xml;utf8,'); - -webkit-mask-repeat: no-repeat; mask-image: url('data:image/svg+xml;utf8,'); + -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; } @@ -740,10 +753,10 @@ ul { content: ''; height: 40px; -webkit-mask-image: url('data:image/svg+xml;utf8,'); - -webkit-mask-repeat: no-repeat; - -webkit-mask-size: 32px 40px; mask-image: url('data:image/svg+xml;utf8,'); + -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; + -webkit-mask-size: 32px 40px; mask-size: 32px 40px; position: absolute; right: 0; diff --git a/src/ui/welcome/index.html b/src/ui/welcome/index.html index 63bd143..d97e0d5 100644 --- a/src/ui/welcome/index.html +++ b/src/ui/welcome/index.html @@ -38,355 +38,647 @@
-

What's New in GitLens 8 🎉🎈

+

What's New in + GitLens 8 🎉🎈

    -
  • 8.3 +
  • + 8.4 + JUNE  2018 +
    +
  • +
  • + NEW + Adds completely revamped heatmap annotations +
    +

    The indicator's, now customizable, color will either be hot or cold based on the age of the + most recent change (cold after 90 days by default) — closes + #419 +

    + Cold Heatmap +

    The indicator's brightness ranges from bright (newer) to dim (older) based on the relative + age, which is calculated from the median age of all the changes in the file +

    +
    +
  • +
  • + NEW + Adds new branch history node under the + Repository Status node in the + GitLens explorer +
    +
  • +
  • + NEW + Adds GitLab and Visual Studio Team Services icons to the remote nodes in the + GitLens explorer — thanks to + PR #421 by + Maxim Pekurin +
    +
  • + +
  • + NEW + Adds + gitlens.heatmap.ageThreshold setting to specify the age of the most recent change (in days) after which the gutter heatmap + annotations will be cold rather than hot (i.e. will use + gitlens.heatmap.coldColor instead of + gitlens.heatmap.hotColor) +
    +
  • +
  • + NEW + Adds + gitlens.heatmap.coldColor setting to specify the base color of the gutter heatmap annotations when the most recent change + is older (cold) than the + gitlens.heatmap.ageThreshold setting +
    +
  • +
  • + NEW + Adds + gitlens.heatmap.hotColor setting to specify the base color of the gutter heatmap annotations when the most recent change + is newer (hot) than the + gitlens.heatmap.ageThreshold setting +
    +
  • +
  • + FIXED + Fixes + #400 — GitLens logging to debug console when debugging different extension +
    +
  • +
  • + FIXED + Fixes + #409 — Literal $(ellipsis) inserted into commit QuickPick menu entry placeholder text +
    +
  • +
  • + FIXED + Fixes + #415 — Branch names get mangled by color escapes — thanks to + PR #416 by + Roy Ivy III +
    +
  • + +
  • + 8.3 MAY  2018
  • -
  • NEW - Adds the ability to control where the GitLens, GitLens History, and GitLens Results explorers are shown 🎉 — closes #213, #377 +
  • + NEW + Adds the ability to control where the + GitLens, + GitLens History, and + GitLens Results explorers are shown 🎉 — closes + #213, + #377
  • -
  • NEW +
  • + NEW Adds user-defined modes for quickly toggling between sets of settings
    - Mode Switch + Mode Switch
  • -
  • NEW - Adds Switch Mode command (gitlens.switchMode) to quickly switch the active GitLens mode +
  • + NEW + Adds + Switch Mode command ( + gitlens.switchMode) to quickly switch the active GitLens mode
  • -
  • NEW - Adds Toggle Zen Mode command (gitlens.toggleZenMode) to toggle Zen mode which disables many visual features +
  • + NEW + Adds + Toggle Zen Mode command ( + gitlens.toggleZenMode) to toggle Zen mode which disables many visual features
  • -
  • NEW - Adds Toggle Review Mode command (gitlens.toggleReviewMode) to toggle Review mode which enables many visual features +
  • + NEW + Adds + Toggle Review Mode command ( + gitlens.toggleReviewMode) to toggle Review mode which enables many visual features
  • -
  • NEW - Adds modes settings (gitlens.mode.*) to the interactive settings editor +
  • + NEW + Adds modes settings ( + gitlens.mode.*) to the interactive settings editor
    - Mode Settings + Mode Settings
  • -
  • NEW - Adds an icon for the Compare File with Previous Revision command (gitlens.diffWithPrevious) and moves it into the editor toolbar +
  • + NEW + Adds an icon for the + Compare File with Previous Revision command ( + gitlens.diffWithPrevious) and moves it into the editor toolbar
  • -
  • NEW - Adds an icon for the Compare File with Next Revision command (gitlens.diffWithNext) and moves it into the editor toolbar +
  • + NEW + Adds an icon for the + Compare File with Next Revision command ( + gitlens.diffWithNext) and moves it into the editor toolbar
  • -
  • NEW - Adds menu settings (gitlens.menus.*) to the interactive settings editor +
  • + NEW + Adds menu settings ( + gitlens.menus.*) to the interactive settings editor
    - Menu Settings + Menu Settings
  • -
  • NEW +
  • + NEW Adds a display mode dropdown at the top of the interactive settings editor to reduce complexity
    - Settings Mode + Settings Mode
  • -
  • NEW - Adds (re-adds) support for handling single files — closes #321 +
  • + NEW + Adds (re-adds) support for handling single files — closes + #321
  • -
  • NEW - Adds a tree layout option to tags in the GitLens explorer — closes #358 +
  • + NEW + Adds a tree layout option to tags in the + GitLens explorer — closes + #358
  • -
  • NEW - Adds Show GitLens Explorer command (gitlens.showGitExplorer) — shows/expands the GitLens explorer +
  • + NEW + Adds + Show GitLens Explorer command ( + gitlens.showGitExplorer) — shows/expands the + GitLens explorer
  • -
  • NEW - Adds Show History Explorer command (gitlens.showHistoryExplorer) — shows/expands the GitLens History explorer +
  • + NEW + Adds + Show History Explorer command ( + gitlens.showHistoryExplorer) — shows/expands the + GitLens History explorer
  • -
  • NEW - Adds Show Results Explorer command (gitlens.showResultsExplorer) — shows/expands the GitLens Results explorer +
  • + NEW + Adds + Show Results Explorer command ( + gitlens.showResultsExplorer) — shows/expands the + GitLens Results explorer
  • -
  • NEW - Adds Close Repository command (gitlens.explorers.closeRepository) to repository and repository status nodes in the GitLens explorer — closes (hides) the repository in the GitLens explorer +
  • + NEW + Adds + Close Repository command ( + gitlens.explorers.closeRepository) to repository and repository status nodes in the + GitLens explorer — closes (hides) the repository in the + GitLens explorer
  • -
  • NEW - Adds clipboard support for Linux without requiring any external dependencies — thanks to PR #394 by CĂ©dric Malard (@cmalard) +
  • + NEW + Adds clipboard support for Linux without requiring any external dependencies — thanks to + PR #394 by + CĂ©dric Malard
  • -
  • NEW - Adds a select branch quick pick menu to the Open File in Remote command (gitlens.openFileInRemote) when the current branch has no upstream tracking branch — closes #209 +
  • + NEW + Adds a select branch quick pick menu to the + Open File in Remote command ( + gitlens.openFileInRemote) when the current branch has no upstream tracking branch — closes + #209
  • -
  • IMPROVED - Showing results in the GitLens Results explorer now properly shows the explorer first +
  • + IMPROVED + Showing results in the + GitLens Results explorer now properly shows the explorer first
  • -
  • IMPROVED - Renames Compare Line Revision with Previous command to Compare Commit with Previous for better consistency with other commands +
  • + IMPROVED + Renames + Compare Line Revision with Previous command to + Compare Commit with Previous for better consistency with other commands
  • -
  • IMPROVED - Renames Compare Line Revision with Working File command to Compare Commit with Working File for better consistency with other commands +
  • + IMPROVED + Renames + Compare Line Revision with Working File command to + Compare Commit with Working File for better consistency with other commands
  • -
  • IMPROVED - Renames Show Commit File Details command to Show Commit Details for better consistency with other commands +
  • + IMPROVED + Renames + Show Commit File Details command to + Show Commit Details for better consistency with other commands
  • -
  • IMPROVED +
  • + IMPROVED Reworks GitLens menu contributions and configuration — see menu settings above
  • -
  • IMPROVED - Renames the gitlens.advanced.menus setting to gitlens.menus +
  • + IMPROVED + Renames the + gitlens.advanced.menus setting to + gitlens.menus
  • -
  • IMPROVED +
  • + IMPROVED Uses the new Webview API for better interactions and behavior with the interactive settings editor and welcome page
  • -
  • IMPROVED - Moves the Open Working File command (gitlens.openWorkingFile) to the right of the Compare File with * Revision commands in the editor toolbar +
  • + IMPROVED + Moves the + Open Working File command ( + gitlens.openWorkingFile) to the right of the + Compare File with * Revision commands in the editor toolbar
  • -
  • FIXED - Fixes #366 — Running a GitLens command from a keybinding fails +
  • + FIXED + Fixes + #366 — Running a GitLens command from a keybinding fails
  • -
  • FIXED - Fixes #155 — Navigating file diffs with alt+, gets stuck +
  • + FIXED + Fixes + #155 — Navigating file diffs with + alt+, gets stuck
  • -
  • FIXED - Fixes #359 — Show changes of an added file in the first commit +
  • + FIXED + Fixes + #359 — Show changes of an added file in the first commit
  • -
  • FIXED - Fixes #372 — Wrong URL to VSTS work item when using hash work item id in commit +
  • + FIXED + Fixes + #372 — Wrong URL to VSTS work item when using hash work item id in commit
  • -
  • FIXED - Fixes #362 — Too many code lenses in postcss files +
  • + FIXED + Fixes + #362 — Too many code lenses in postcss files
  • -
  • FIXED - Fixes #381 — Can't stash single files with older versions of Git +
  • + FIXED + Fixes + #381 — Can't stash single files with older versions of Git
  • -
  • FIXED - Fixes #384 — Absolute dates not always honored in GitLens Results explorer +
  • + FIXED + Fixes + #384 — Absolute dates not always honored in + GitLens Results explorer
  • -
  • FIXED - Fixes #385 — Wrong git command to delete remote branch +
  • + FIXED + Fixes + #385 — Wrong git command to delete remote branch
  • -
  • FIXED - Fixes #400 — Reset TO commit also resets chosen one +
  • + FIXED + Fixes + #400 — Reset TO commit also resets chosen one
  • -
  • FIXED - Fixes #399 — "Open x in Remote" commands aren't always available +
  • + FIXED + Fixes + #399 — "Open x in Remote" commands aren't always available
  • -
  • FIXED - Fixes #397 — Error while opening the gitlens view using Open View command +
  • + FIXED + Fixes + #397 — Error while opening the gitlens view using + Open View command
  • -
  • FIXED - Fixes #391 — GitLens adds some settings in settings.json +
  • + FIXED + Fixes + #391 — GitLens adds some settings in settings.json
  • -
  • FIXED - Fixes #343 — Can't show blame when VSCode starts on branch without upstream — thanks to PR #390 by ryenus (@ryenus) +
  • + FIXED + Fixes + #343 — Can't show blame when VSCode starts on branch without upstream — thanks + to + PR #390 by + ryenus
  • -
  • FIXED - Fixes #392 — unable to contribute if default script shell is sh — thanks to PR #393 by CĂ©dric Malard (@cmalard) +
  • + FIXED + Fixes + #392 — unable to contribute if default script shell is sh — thanks to + PR #393 by + CĂ©dric Malard
  • -
  • FIXED - Fixes more instances of #295 and #318 — Any error encountered during the search for repositories could cause GitLens to die +
  • + FIXED + Fixes more instances of + #295 and + #318 — Any error encountered during the search for repositories could cause GitLens + to die
  • -
  • FIXED - Fixes issue with the chorded keyboard shortcut for the Compare File with Previous Revision command (gitlens.diffWithPreviousInDiff) — from #395 +
  • + FIXED + Fixes issue with the + chorded keyboard shortcut for the + Compare File with Previous Revision command ( + gitlens.diffWithPreviousInDiff) — from + #395
  • -
  • FIXED - Fixes bronze typo thanks to PR #361 by Cory Forsyth (@bantic) +
  • + FIXED + Fixes + bronze typo thanks to + PR #361 by + Cory Forsyth
  • -
  • FIXED - Fixes individually typo thanks to PR #364 by Brett Cannon (@brettcannon) +
  • + FIXED + Fixes + individually typo thanks to + PR #364 by + Brett Cannon
  • -
  • FIXED +
  • + FIXED Fixes issue where comparing previous revision during a merge/rebase conflict failed to show the correct contents
  • -
  • FIXED +
  • + FIXED Fixes issue with the current line blame toggle not working when current line blame starts disabled
  • -
  • FIXED +
  • + FIXED Fixes various issues when not on a branch
  • -
  • FIXED - Fixes many issues where commands wouldn't work if the active file wasn't part of an open repository — now GitLens will try to find the best repository otherwise it will open a repository quick pick menu if there is more than one +
  • + FIXED + Fixes many issues where commands wouldn't work if the active file wasn't part of an open repository — now GitLens will + try to find the best repository otherwise it will open a repository quick pick menu if there + is more than one
  • -
  • FIXED - Fixes the Open Working File command (gitlens.openWorkingFile) not always showing in the editor toolbar when appropriate +
  • + FIXED + Fixes the + Open Working File command ( + gitlens.openWorkingFile) not always showing in the editor toolbar when appropriate
  • -
  • 8.2 +
  • + 8.2 APRIL  2018
  • -
  • NEW - Adds new stand-alone GitLens History explorer to visualize the history of the current file — undocked version of the GitLens explorer history view +
  • + NEW + Adds new stand-alone + GitLens History explorer to visualize the history of the current file — undocked version + of the + GitLens explorer history view
    - GitLens History explorer + GitLens History explorer
  • -
  • NEW - Adds richer tooltips to the GitLens and GitLens Results explorers, and richer working tree and upstream status to the GitLens explorer +
  • + NEW + Adds richer tooltips to the + GitLens and + GitLens Results explorers, and richer working tree and upstream status to the + GitLens explorer
    - Richer tooltips and working tree and upstream status + Richer tooltips and working tree and upstream status
  • -
  • NEW - Adds an indicator to the GitLens explorer's branch history to mark the synchronization point between the local and remote branch (if available) +
  • + NEW + Adds an indicator to the + GitLens explorer's branch history to mark the synchronization point between the local and + remote branch (if available)
    - Branch upstream indicator + Branch upstream indicator
  • -
  • NEW - Adds ability to easily switch between relative and absolute dates via the gitlens.defaultDateStyle settings — closes #312 +
  • + NEW + Adds ability to easily switch between relative and absolute dates via the + gitlens.defaultDateStyle settings — closes + #312
    - General settings + General settings
  • -
  • NEW - Adds annotation format settings (gitlens.*.format) to the interactive settings editor +
  • + NEW + Adds annotation format settings ( + gitlens.*.format) to the interactive settings editor
    - Annotation format settings + Annotation format settings
  • -
  • NEW - Adds new gitlens.currentLine.scrollable setting to specify whether the current line blame annotation can be scrolled into view when it is outside the viewport — closes #149, #290, #265 +
  • + NEW + Adds new + gitlens.currentLine.scrollable setting to specify whether the current line blame annotation can be scrolled into view when + it is outside the viewport — closes + #149, + #290, + #265
    - Allow scrolling to annotation setting + Allow scrolling to annotation setting
  • -
  • NEW - Adds gitlens.statusBar.reduceFlicker setting to the interactive settings editor +
  • + NEW + Adds + gitlens.statusBar.reduceFlicker setting to the interactive settings editor
    - Reduce status bar flashing setting + Reduce status bar flashing setting
  • -
  • FIXED - Fixes #314 — Toggle line annotation doesn't work properly +
  • + FIXED + Fixes + #314 — Toggle line annotation doesn't work properly
  • -
  • FIXED - Fixes #310 — "via Terminal" commands need quoting around work directory +
  • + FIXED + Fixes + #310 — "via Terminal" commands need quoting around work directory
  • -
  • FIXED - Fixes issues with the active repository in the GitLens explorer failed to update properly +
  • + FIXED + Fixes issues with the active repository in the + GitLens explorer failed to update properly
  • -
  • FIXED - Fixes issues with Open File, Open Revision, and Show File History commands and images and other binary files +
  • + FIXED + Fixes issues with + Open File, + Open Revision, and + Show File History commands and images and other binary files
  • -
  • FIXED - Fixes issues preventing nodes in the GitLens explorer from expanding properly in certain cases +
  • + FIXED + Fixes issues preventing nodes in the + GitLens explorer from expanding properly in certain cases
  • -
  • FIXED - Fixes issues when refreshing nodes in the GitLens Results explorer +
  • + FIXED + Fixes issues when refreshing nodes in the + GitLens Results explorer
  • -
  • 8.1 +
  • + 8.1 MARCH  2018
  • -
  • NEW +
  • + NEW Adds automatic issue linking to Bitbucket, GitHub, GitLab, and Visual Studio Team Services for commit messages in hovers
    - Issue linking in commit messages + Issue linking in commit messages
  • -
  • NEW - Adds support to toggle annotations for each file individually or for all files at once — closes #289 +
  • + NEW + Adds support to toggle annotations for each file individually or for all files at once — closes + #289
    - Annotations toggle + Annotations toggle
  • -
  • NEW - Adds icons to remotes in the GitLens explorer based on the remote service provider +
  • + NEW + Adds icons to remotes in the + GitLens explorer based on the remote service provider
  • -
  • NEW - Adds multi-cursor support to current line annotations — closes #291 +
  • + NEW + Adds multi-cursor support to current line annotations — closes + #291
  • -
  • IMPROVED - Renames Compare Selected Ancestor with Working Tree command to Compare Ancestry with Working Tree and removes the need to select a branch first, since all compares are performed with the working tree — closes #279 +
  • + IMPROVED + Renames + Compare Selected Ancestor with Working Tree command to + Compare Ancestry with Working Tree and removes the need to select a branch first, since all + compares are performed with the working tree — closes + #279
  • -
  • FIXED - Fixes #294 — Keyboard shortcuts will now default to chorded to avoid conflicts. Only affects new installs or if you remove the gitlens.keymap setting +
  • + FIXED + Fixes + #294 — Keyboard shortcuts will now default to + chorded to avoid conflicts. Only affects new installs or if you remove the + gitlens.keymap setting
  • -
  • 8.0 +
  • + 8.0 FEBRUARY  2018
  • -
  • NEW +
  • + NEW Brand new welcome experience — you're looking at it
  • -
  • NEW - Brand new interactive settings editor — GitLens is easier than ever to customize to suit your needs +
  • + NEW + Brand new interactive + settings editor — GitLens is easier than ever to customize to suit your needs
    - +
  • -
  • NEW - Brand new website — check it out! +
  • + NEW + Brand new + website — check it out!
  • -
  • NEW - Adds a tree layout option to branches in the GitLens explorer — thanks to Yukai Huang (@Yukaii)! +
  • + NEW + Adds a tree layout option to branches in the + GitLens explorer — thanks to Yukai Huang ( + @Yukaii)!
  • -
  • IMPROVED +
  • + IMPROVED Reworked settings — clearer, simpler settings
  • -
  • FIXED +
  • + FIXED Previous settings will now be migrated properly — sorry everyone 😢

- See the release notes for the full set of changes + See the + release notes for the full set of changes

@@ -406,8 +698,9 @@

GitLens is an open-source extension for Visual Studio Code created by - Eric Amodio. - While GitLens is generously offered to everyone free of charge, if you find it useful please consider supporting it. + Eric Amodio. While GitLens is generously offered to everyone free of charge, if you find + it useful please consider + supporting it.

GitLens simply helps you understand code better. Quickly glimpse into whom, why, and when a line or code block was changed. @@ -416,26 +709,50 @@

Here are just some of the features that GitLens provides,

    -
  • a GitLens explorer to navigate and explore repositories
  • -
  • a GitLens History explorer to navigate and explore file histories
  • -
  • an on-demand GitLens Results explorer to navigate and explore commits, histories, and searches, or visualize comparisons between branches, tags, commits, and more
  • -
  • authorship code lens showing the most recent commit and # of authors to the top of files and/or on code blocks
  • -
  • an unobtrusive current line blame annotation at the end of the line
  • -
  • on-demand gutter blame annotations, including a heatmap, for the whole file
  • -
  • detailed blame information accessible via hovers
  • -
  • on-demand recent changes annotations to highlight lines changed by the most recent commit
  • -
  • a status bar blame annotation showing author and date for the current line
  • -
  • commit search — by message, author, filename, commit id, or code changes
  • -
  • many powerful commands for exploring commits and histories, comparing and navigating revisions, stash access, repository status, etc
  • -
  • and so much more
  • +
  • a + + GitLens explorer to navigate and explore repositories
  • +
  • a + + GitLens History explorer to navigate and explore file histories +
  • +
  • an on-demand + + GitLens Results explorer to navigate and explore commits, histories, and + searches, or visualize comparisons between branches, tags, commits, and more
  • +
  • authorship + code lens showing the most recent commit and # of authors to the top of files and/or + on code blocks
  • +
  • an unobtrusive + current line blame annotation at the end of the line
  • +
  • on-demand + gutter blame annotations, including a heatmap, for the whole file +
  • +
  • detailed blame information accessible via + hovers +
  • +
  • on-demand + recent changes annotations to highlight lines changed by the most recent commit
  • +
  • a + status bar blame annotation showing author and date for the current line +
  • +
  • + commit search — by message, author, filename, commit id, or code changes
  • +
  • many powerful commands for exploring commits and histories, comparing and navigating revisions, + stash access, repository status, etc
  • +
  • and so much + more +

-

GitLens is powerful, feature rich, and highly customizable to meet your specific needs - — find code lens intrusive or the current line blame annotation distracting — - no problem, it is quick and easy to turn them off or change how they behave via the built-in GitLens Settings editor, - an interactive editor covering many of GitLens' powerful settings. - While for more advanced customizations, refer to the GitLens settings docs - and edit your User Settings. +

GitLens is powerful, feature rich, and highly customizable to meet your specific needs — find + code lens intrusive or the current line blame annotation distracting — no problem, it is + quick and easy to turn them off or change how they behave via the built-in + GitLens Settings editor, an interactive editor covering many of GitLens' powerful settings. + While for more advanced customizations, refer to the + GitLens settings docs + and edit your + User Settings.

@@ -444,18 +761,22 @@ While GitLens is generously offered to everyone free of charge, if you find it useful please consider supporting it.

- I've been building GitLens in my spare time1 for almost 2 years now. - From its very humble beginnings, GitLens has grown wildly beyond my expectations — in both its reach as well as its demands on my time and attention. - While I enjoy giving my free time and attention to GitLens' development and growth, I would like to do even more. + I've been building GitLens in my spare time + + 1 + for almost 2 years now. From its very humble beginnings, GitLens has grown wildly beyond my expectations + — in both its reach as well as its demands on my time and attention. While I enjoy giving + my free time and attention to GitLens' development and growth, I would like to do even more.

Show Your Support ❤

- To my incredible backers — thank you so much for your contributions. - I am truly humbled by your generosity and support. - Please know that your support plays a important role in helping me realize GitLens' potential in making developer's lives easier. + To my incredible backers — thank you so much for your contributions. I am truly humbled by your generosity and support. + Please know that your support plays a important role in helping me realize GitLens' potential + in making developer's lives easier.

- If you'd like to join them in supporting GitLens, please consider the following — feel free to choose more than one. 😉 + If you'd like to join them in supporting GitLens, please consider the following — feel free to choose more than one. + 😉

@@ -478,18 +805,27 @@

Learn

@@ -504,9 +840,15 @@ Donations via Cash App