diff --git a/src/command/Commands.js b/src/command/Commands.js
index 4f3a1cff60..ec82adfb48 100644
--- a/src/command/Commands.js
+++ b/src/command/Commands.js
@@ -568,6 +568,12 @@ define(function (require, exports, module) {
/** Toggles display of untracked files */
exports.CMD_GIT_TOGGLE_UNTRACKED = "git-toggle-untracked";
+ /** Toggles global history view in history panel */
+ exports.CMD_GIT_HISTORY_GLOBAL = "git-history-global";
+
+ /** Toggles file history view in history panel */
+ exports.CMD_GIT_HISTORY_FILE = "git-history-file";
+
// DEPRECATED: Working Set Commands
DeprecationWarning.deprecateConstant(exports, "SORT_WORKINGSET_BY_ADDED", "CMD_WORKINGSET_SORT_BY_ADDED");
DeprecationWarning.deprecateConstant(exports, "SORT_WORKINGSET_BY_NAME", "CMD_WORKINGSET_SORT_BY_NAME");
diff --git a/src/extensions/default/Git/src/Constants.js b/src/extensions/default/Git/src/Constants.js
index 10774e6672..2f851d7a52 100644
--- a/src/extensions/default/Git/src/Constants.js
+++ b/src/extensions/default/Git/src/Constants.js
@@ -58,4 +58,6 @@ define(function (require, exports) {
exports.CMD_GIT_AUTHORS_OF_SELECTION = Commands.CMD_GIT_AUTHORS_OF_SELECTION;
exports.CMD_GIT_AUTHORS_OF_FILE = Commands.CMD_GIT_AUTHORS_OF_FILE;
exports.CMD_GIT_TOGGLE_UNTRACKED = Commands.CMD_GIT_TOGGLE_UNTRACKED;
+ exports.CMD_GIT_HISTORY_GLOBAL = Commands.CMD_GIT_HISTORY_GLOBAL;
+ exports.CMD_GIT_HISTORY_FILE = Commands.CMD_GIT_HISTORY_FILE;
});
diff --git a/src/extensions/default/Git/src/Main.js b/src/extensions/default/Git/src/Main.js
index 8f6aa6439c..344987077c 100644
--- a/src/extensions/default/Git/src/Main.js
+++ b/src/extensions/default/Git/src/Main.js
@@ -29,8 +29,8 @@ define(function (require, exports) {
const CMD_ADD_TO_IGNORE = "git.addToIgnore",
CMD_REMOVE_FROM_IGNORE = "git.removeFromIgnore",
$icon = $(``)
- .addClass("forced-hidden")
- .prependTo($(".bottom-buttons"));
+ .addClass("forced-hidden")
+ .prependTo($(".bottom-buttons"));
let gitEnabled = false;
@@ -160,7 +160,7 @@ define(function (require, exports) {
const displayStr = StringUtils.format(Strings.RESET_DETAIL, commitDetailStr, gitCmdUsed);
Utils.askQuestion(title,
message + "
" + displayStr,
- { booleanResponse: true, noescape: true ,
+ { booleanResponse: true, noescape: true,
customOkBtn: Strings.RESET, customOkBtnClass: "danger"})
.then(function (response) {
if (response === true) {
@@ -228,7 +228,10 @@ define(function (require, exports) {
// "More options" context menu commands
Constants.CMD_GIT_DISCARD_ALL_CHANGES,
Constants.CMD_GIT_UNDO_LAST_COMMIT,
- Constants.CMD_GIT_TOGGLE_UNTRACKED
+ Constants.CMD_GIT_TOGGLE_UNTRACKED,
+
+ Constants.CMD_GIT_HISTORY_GLOBAL,
+ Constants.CMD_GIT_HISTORY_FILE
];
// Disable each command
@@ -257,6 +260,9 @@ define(function (require, exports) {
gitSubMenu.addMenuItem(Constants.CMD_GIT_GOTO_PREVIOUS_CHANGE);
gitSubMenu.addMenuItem(Constants.CMD_GIT_CLOSE_UNMODIFIED);
gitSubMenu.addMenuDivider();
+ gitSubMenu.addMenuItem(Constants.CMD_GIT_HISTORY_GLOBAL);
+ gitSubMenu.addMenuItem(Constants.CMD_GIT_HISTORY_FILE);
+ gitSubMenu.addMenuDivider();
gitSubMenu.addMenuItem(Constants.CMD_GIT_AUTHORS_OF_SELECTION);
gitSubMenu.addMenuItem(Constants.CMD_GIT_AUTHORS_OF_FILE);
gitSubMenu.addMenuDivider();
@@ -304,6 +310,9 @@ define(function (require, exports) {
optionsCmenu.addMenuItem(Constants.CMD_GIT_DISCARD_ALL_CHANGES);
optionsCmenu.addMenuItem(Constants.CMD_GIT_UNDO_LAST_COMMIT);
optionsCmenu.addMenuDivider();
+ optionsCmenu.addMenuItem(Constants.CMD_GIT_HISTORY_GLOBAL);
+ optionsCmenu.addMenuItem(Constants.CMD_GIT_HISTORY_FILE);
+ optionsCmenu.addMenuDivider();
optionsCmenu.addMenuItem(Constants.CMD_GIT_AUTHORS_OF_SELECTION);
optionsCmenu.addMenuItem(Constants.CMD_GIT_AUTHORS_OF_FILE);
optionsCmenu.addMenuDivider();
@@ -370,6 +379,9 @@ define(function (require, exports) {
Utils.enableCommand(Constants.CMD_GIT_AUTHORS_OF_SELECTION, enabled);
Utils.enableCommand(Constants.CMD_GIT_AUTHORS_OF_FILE, enabled);
+ Utils.enableCommand(Constants.CMD_GIT_HISTORY_GLOBAL, enabled);
+ Utils.enableCommand(Constants.CMD_GIT_HISTORY_FILE, enabled);
+
Utils.enableCommand(Constants.CMD_GIT_COMMIT_CURRENT, enabled);
Utils.enableCommand(Constants.CMD_GIT_COMMIT_ALL, enabled);
diff --git a/src/extensions/default/Git/src/Panel.js b/src/extensions/default/Git/src/Panel.js
index 63fe59f1f0..02a34cfcdc 100644
--- a/src/extensions/default/Git/src/Panel.js
+++ b/src/extensions/default/Git/src/Panel.js
@@ -1348,6 +1348,14 @@ define(function (require, exports) {
CommandManager.register(Strings.HIDE_UNTRACKED, Constants.CMD_GIT_TOGGLE_UNTRACKED, handleToggleUntracked);
CommandManager.register(Strings.GIT_INIT, Constants.CMD_GIT_INIT, EventEmitter.getEmitter(Events.HANDLE_GIT_INIT));
CommandManager.register(Strings.GIT_CLONE, Constants.CMD_GIT_CLONE, EventEmitter.getEmitter(Events.HANDLE_GIT_CLONE));
+ CommandManager.register(Strings.GIT_SHOW_HISTORY, Constants.CMD_GIT_HISTORY_GLOBAL, ()=>{
+ toggle(true);
+ EventEmitter.emit(Events.HISTORY_SHOW_GLOBAL);
+ });
+ CommandManager.register(Strings.GIT_SHOW_FILE_HISTORY, Constants.CMD_GIT_HISTORY_FILE, ()=>{
+ toggle(true);
+ EventEmitter.emit(Events.HISTORY_SHOW_FILE);
+ });
// Show gitPanel when appropriate
if (Preferences.get("panelEnabled") && Setup.isExtensionActivated()) {
diff --git a/src/nls/root/strings.js b/src/nls/root/strings.js
index 47d48061f1..92a1672dec 100644
--- a/src/nls/root/strings.js
+++ b/src/nls/root/strings.js
@@ -1446,6 +1446,8 @@ define({
"TOOLTIP_REFRESH_PANEL": "Refresh panel",
"TOOLTIP_SHOW_FILE_HISTORY": "Show file history",
"TOOLTIP_SHOW_HISTORY": "Show history",
+ "GIT_SHOW_FILE_HISTORY": "File Commit history",
+ "GIT_SHOW_HISTORY": "Commit history",
"UNDO_CHANGES": "Discard changes",
"UNDO_CHANGES_BTN": "Discard changes\u2026",
"UNDO_LAST_LOCAL_COMMIT": "Undo last local (not pushed) commit\u2026",
diff --git a/test/spec/Extn-Git-integ-test.js b/test/spec/Extn-Git-integ-test.js
index 6713ddc8d0..9a28701b97 100644
--- a/test/spec/Extn-Git-integ-test.js
+++ b/test/spec/Extn-Git-integ-test.js
@@ -310,12 +310,7 @@ define(function (require, exports, module) {
}, `History list to be visible: ${visible}`);
}
- async function testHistoryToggle(whichHistory) {
- const $historyToggleButton = $gitPanel.find(whichHistory);
-
- $historyToggleButton.trigger("click");
- await waitForHistoryVisible(true);
-
+ function _verifyHistoryCommits() {
const $historyList = $gitPanel.find("#git-history-list");
// Check if the first and second commits are displayed
@@ -325,6 +320,15 @@ define(function (require, exports, module) {
// Verify the content of the first and second commits
expect($historyCommits.eq(0).text().trim()).toBe("second commit");
expect($historyCommits.eq(1).text().trim()).toBe("first commit");
+ }
+
+ async function testHistoryToggle(whichHistory) {
+ const $historyToggleButton = $gitPanel.find(whichHistory);
+
+ $historyToggleButton.trigger("click");
+ await waitForHistoryVisible(true);
+
+ _verifyHistoryCommits();
$historyToggleButton.trigger("click");
await waitForHistoryVisible(false);
@@ -338,6 +342,20 @@ define(function (require, exports, module) {
await testHistoryToggle(".git-file-history");
});
+ it("should show history commands work as expected", async () => {
+ await waitForHistoryVisible(false);
+
+ await __PR.execCommand(Commands.CMD_GIT_HISTORY_GLOBAL);
+ await waitForHistoryVisible(true);
+ _verifyHistoryCommits();
+ await __PR.execCommand(Commands.CMD_GIT_TOGGLE_PANEL);
+ await waitForHistoryVisible(false);
+
+ await __PR.execCommand(Commands.CMD_GIT_HISTORY_FILE);
+ await waitForHistoryVisible(true);
+ _verifyHistoryCommits();
+ });
+
async function waitForHistoryViewerVisible(visible) {
await awaitsFor(() => {
return $("#history-viewer").is(":visible") === visible;