Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Imms <daimms@microsoft.com>2019-10-15 21:05:41 +0300
committerDaniel Imms <daimms@microsoft.com>2019-10-15 21:05:41 +0300
commit2cbf51458e5d74f39c4f19fb69c5c75f6a27529b (patch)
tree0a52ac580ee0cb0ab59a23742e30af366f1984f4
parent9d47c99bab712c0ffd0e0dfccaa1eab1994ecfdf (diff)
parent43e85c223cb523081fa76afd8375a181ee39d54c (diff)
Merge remote-tracking branch 'origin/oss/master' into distrovsda-v1.39.1tyriar/vsda-v1.39.1
-rw-r--r--extensions/git/src/commands.ts41
-rw-r--r--extensions/git/src/git.ts19
-rw-r--r--extensions/git/src/repository.ts20
-rw-r--r--package.json4
-rw-r--r--remote/package.json2
-rw-r--r--remote/web/package.json2
-rw-r--r--remote/web/yarn.lock8
-rw-r--r--remote/yarn.lock8
-rw-r--r--src/vs/vscode.d.ts2
-rw-r--r--src/vs/workbench/api/browser/mainThreadSCM.ts2
-rw-r--r--src/vs/workbench/api/common/extHostSCM.ts4
-rw-r--r--src/vs/workbench/contrib/scm/browser/repositoryPanel.ts18
-rw-r--r--src/vs/workbench/contrib/scm/common/scm.ts4
-rw-r--r--yarn.lock8
14 files changed, 89 insertions, 53 deletions
diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts
index 349435d7aeb..895a4640e68 100644
--- a/extensions/git/src/commands.ts
+++ b/extensions/git/src/commands.ts
@@ -1361,37 +1361,38 @@ export class CommandCenter {
private async commitWithAnyInput(repository: Repository, opts?: CommitOptions): Promise<void> {
const message = repository.inputBox.value;
const getCommitMessage = async () => {
- if (message) {
- return message;
- }
+ let _message: string | undefined = message;
+ if (!_message) {
+ let value: string | undefined = undefined;
- let value: string | undefined = undefined;
+ if (opts && opts.amend && repository.HEAD && repository.HEAD.commit) {
+ value = (await repository.getCommit(repository.HEAD.commit)).message;
+ }
- if (opts && opts.amend && repository.HEAD && repository.HEAD.commit) {
- value = (await repository.getCommit(repository.HEAD.commit)).message;
- }
+ const branchName = repository.headShortName;
+ let placeHolder: string;
- const branchName = repository.headShortName;
- let placeHolder: string;
+ if (branchName) {
+ placeHolder = localize('commitMessageWithHeadLabel2', "Message (commit on '{0}')", branchName);
+ } else {
+ placeHolder = localize('commit message', "Commit message");
+ }
- if (branchName) {
- placeHolder = localize('commitMessageWithHeadLabel2', "Message (commit on '{0}')", branchName);
- } else {
- placeHolder = localize('commit message', "Commit message");
+ _message = await window.showInputBox({
+ value,
+ placeHolder,
+ prompt: localize('provide commit message', "Please provide a commit message"),
+ ignoreFocusOut: true
+ });
}
- return await window.showInputBox({
- value,
- placeHolder,
- prompt: localize('provide commit message', "Please provide a commit message"),
- ignoreFocusOut: true
- });
+ return _message ? repository.cleanUpCommitEditMessage(_message) : _message;
};
const didCommit = await this.smartCommit(repository, getCommitMessage, opts);
if (message && didCommit) {
- repository.inputBox.value = await repository.getCommitTemplate();
+ repository.inputBox.value = await repository.getInputTemplate();
}
}
diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts
index 5d47228c455..3dcf493277e 100644
--- a/extensions/git/src/git.ts
+++ b/extensions/git/src/git.ts
@@ -1748,6 +1748,23 @@ export class Repository {
}
}
+ cleanupCommitEditMessage(message: string): string {
+ //TODO: Support core.commentChar
+ return message.replace(/^\s*#.*$\n?/gm, '').trim();
+ }
+
+
+ async getMergeMessage(): Promise<string | undefined> {
+ const mergeMsgPath = path.join(this.repositoryRoot, '.git', 'MERGE_MSG');
+
+ try {
+ const raw = await readfile(mergeMsgPath, 'utf8');
+ return raw.trim();
+ } catch {
+ return undefined;
+ }
+ }
+
async getCommitTemplate(): Promise<string> {
try {
const result = await this.run(['config', '--get', 'commit.template']);
@@ -1766,7 +1783,7 @@ export class Repository {
}
const raw = await readfile(templatePath, 'utf8');
- return raw.replace(/^\s*#.*$\n?/gm, '');
+ return raw.trim();
} catch (err) {
return '';
diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts
index f5cc030c0b6..6f792d34cd7 100644
--- a/extensions/git/src/repository.ts
+++ b/extensions/git/src/repository.ts
@@ -750,8 +750,6 @@ export class Repository implements Disposable {
const onDidChangeCountBadge = filterEvent(workspace.onDidChangeConfiguration, e => e.affectsConfiguration('git.countBadge', root));
onDidChangeCountBadge(this.setCountBadge, this, this.disposables);
this.setCountBadge();
-
- this.updateCommitTemplate();
}
validateInput(text: string, position: number): SourceControlInputBoxValidation | undefined {
@@ -827,12 +825,14 @@ export class Repository implements Disposable {
return toGitUri(uri, '', { replaceFileExtension: true });
}
- private async updateCommitTemplate(): Promise<void> {
- try {
- this._sourceControl.commitTemplate = await this.repository.getCommitTemplate();
- } catch (e) {
- // noop
+ async getInputTemplate(): Promise<string> {
+ const mergeMessage = await this.repository.getMergeMessage();
+
+ if (mergeMessage) {
+ return mergeMessage;
}
+
+ return await this.repository.getCommitTemplate();
}
getConfigs(): Promise<{ key: string; value: string; }[]> {
@@ -1257,6 +1257,10 @@ export class Repository implements Disposable {
return await this.run(Operation.GetCommitTemplate, async () => this.repository.getCommitTemplate());
}
+ async cleanUpCommitEditMessage(editMessage: string): Promise<string> {
+ return this.repository.cleanupCommitEditMessage(editMessage);
+ }
+
async ignore(files: Uri[]): Promise<void> {
return await this.run(Operation.Ignore, async () => {
const ignoreFile = `${this.repository.root}${path.sep}.gitignore`;
@@ -1528,6 +1532,8 @@ export class Repository implements Disposable {
this.setCountBadge();
this._onDidChangeStatus.fire();
+
+ this._sourceControl.commitTemplate = await this.getInputTemplate();
}
private setCountBadge(): void {
diff --git a/package.json b/package.json
index f1854355432..44bf9ab3686 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "code-oss-dev",
"version": "1.40.0",
- "distro": "82c617d0e12653f83c0757f3dea3f8c11911908d",
+ "distro": "9d47c99bab712c0ffd0e0dfccaa1eab1994ecfdf",
"author": {
"name": "Microsoft Corporation"
},
@@ -53,7 +53,7 @@
"vscode-sqlite3": "4.0.8",
"vscode-textmate": "^4.2.2",
"vsda": "https://github.com/microsoft/vsda.git#45edd3db96a5e308a5cfc817d1ee42f6d96e1659",
- "xterm": "4.2.0-beta4",
+ "xterm": "4.2.0-beta8",
"xterm-addon-search": "0.3.0-beta5",
"xterm-addon-web-links": "0.2.0",
"yauzl": "^2.9.2",
diff --git a/remote/package.json b/remote/package.json
index 06e27d93615..ccc9d32b2f5 100644
--- a/remote/package.json
+++ b/remote/package.json
@@ -21,7 +21,7 @@
"vscode-ripgrep": "^1.5.7",
"vscode-textmate": "^4.2.2",
"vsda": "https://github.com/microsoft/vsda.git#45edd3db96a5e308a5cfc817d1ee42f6d96e1659",
- "xterm": "4.2.0-beta4",
+ "xterm": "4.2.0-beta8",
"xterm-addon-search": "0.3.0-beta5",
"xterm-addon-web-links": "0.2.0",
"yauzl": "^2.9.2",
diff --git a/remote/web/package.json b/remote/web/package.json
index db6e5d18e12..c588cd9db32 100644
--- a/remote/web/package.json
+++ b/remote/web/package.json
@@ -5,7 +5,7 @@
"onigasm-umd": "^2.2.2",
"semver-umd": "^5.5.3",
"vscode-textmate": "^4.2.2",
- "xterm": "4.2.0-beta4",
+ "xterm": "4.2.0-beta8",
"xterm-addon-search": "0.3.0-beta5",
"xterm-addon-web-links": "0.2.0"
}
diff --git a/remote/web/yarn.lock b/remote/web/yarn.lock
index 759deded50b..36e92301303 100644
--- a/remote/web/yarn.lock
+++ b/remote/web/yarn.lock
@@ -41,7 +41,7 @@ xterm-addon-web-links@0.2.0:
resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.2.0.tgz#b408a0be46211d8d4a0bb5e701d8f3c2bd07d473"
integrity sha512-dq81c4Pzli2PgKVBgY2REte9sCVibR3df8AP3SEvCTM9uYFnUFxtxzMTplPnc7+rXabVhFdbU6x+rstIk8HNQg==
-xterm@4.2.0-beta4:
- version "4.2.0-beta4"
- resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.2.0-beta4.tgz#596577f94a1da372119d192363ea2b19d1f8b50c"
- integrity sha512-BmkpxCpqdOJoNdIcddkRT8S65sGjgBbWI0uIJNSnzZvj81OKcraMSTmF/ODw0TF/MDLc33Fx9cpDx/D6lQgl8Q==
+xterm@4.2.0-beta8:
+ version "4.2.0-beta8"
+ resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.2.0-beta8.tgz#f375cfef7d58240c56ba23c8ca1c36399ab7ccb1"
+ integrity sha512-oka51TIzcmxwpJaoV180bkynYiMW2H0rN7J9gehofEFFX7nHRxIh/tm9EzUEA8I9ELYB91a9TQc7V1PQSN+Mlw==
diff --git a/remote/yarn.lock b/remote/yarn.lock
index 5bd11e9c30a..bc028c3ba92 100644
--- a/remote/yarn.lock
+++ b/remote/yarn.lock
@@ -425,10 +425,10 @@ xterm-addon-web-links@0.2.0:
resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.2.0.tgz#b408a0be46211d8d4a0bb5e701d8f3c2bd07d473"
integrity sha512-dq81c4Pzli2PgKVBgY2REte9sCVibR3df8AP3SEvCTM9uYFnUFxtxzMTplPnc7+rXabVhFdbU6x+rstIk8HNQg==
-xterm@4.2.0-beta4:
- version "4.2.0-beta4"
- resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.2.0-beta4.tgz#596577f94a1da372119d192363ea2b19d1f8b50c"
- integrity sha512-BmkpxCpqdOJoNdIcddkRT8S65sGjgBbWI0uIJNSnzZvj81OKcraMSTmF/ODw0TF/MDLc33Fx9cpDx/D6lQgl8Q==
+xterm@4.2.0-beta8:
+ version "4.2.0-beta8"
+ resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.2.0-beta8.tgz#f375cfef7d58240c56ba23c8ca1c36399ab7ccb1"
+ integrity sha512-oka51TIzcmxwpJaoV180bkynYiMW2H0rN7J9gehofEFFX7nHRxIh/tm9EzUEA8I9ELYB91a9TQc7V1PQSN+Mlw==
yauzl@^2.9.2:
version "2.10.0"
diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts
index b60d66b6b4f..06746e9fe99 100644
--- a/src/vs/vscode.d.ts
+++ b/src/vs/vscode.d.ts
@@ -6333,7 +6333,7 @@ declare module 'vscode' {
export function executeCommand<T>(command: string, ...rest: any[]): Thenable<T | undefined>;
/**
- * Retrieve the list of all available commands. Commands starting an underscore are
+ * Retrieve the list of all available commands. Commands starting with an underscore are
* treated as internal commands.
*
* @param filterInternal Set `true` to not see internal commands (starting with an underscore)
diff --git a/src/vs/workbench/api/browser/mainThreadSCM.ts b/src/vs/workbench/api/browser/mainThreadSCM.ts
index 4488720cf9a..926cc4d8286 100644
--- a/src/vs/workbench/api/browser/mainThreadSCM.ts
+++ b/src/vs/workbench/api/browser/mainThreadSCM.ts
@@ -114,7 +114,7 @@ class MainThreadSCMProvider implements ISCMProvider {
get rootUri(): URI | undefined { return this._rootUri; }
get contextValue(): string { return this._contextValue; }
- get commitTemplate(): string | undefined { return this.features.commitTemplate; }
+ get commitTemplate(): string { return this.features.commitTemplate || ''; }
get acceptInputCommand(): Command | undefined { return this.features.acceptInputCommand; }
get statusBarCommands(): Command[] | undefined { return this.features.statusBarCommands; }
get count(): number | undefined { return this.features.count; }
diff --git a/src/vs/workbench/api/common/extHostSCM.ts b/src/vs/workbench/api/common/extHostSCM.ts
index 6bc3d01ff2c..2cca3f54ca5 100644
--- a/src/vs/workbench/api/common/extHostSCM.ts
+++ b/src/vs/workbench/api/common/extHostSCM.ts
@@ -395,6 +395,10 @@ class ExtHostSourceControl implements vscode.SourceControl {
}
set commitTemplate(commitTemplate: string | undefined) {
+ if (commitTemplate === this._commitTemplate) {
+ return;
+ }
+
this._commitTemplate = commitTemplate;
this._proxy.$updateSourceControl(this.handle, { commitTemplate });
}
diff --git a/src/vs/workbench/contrib/scm/browser/repositoryPanel.ts b/src/vs/workbench/contrib/scm/browser/repositoryPanel.ts
index 7ca8bac8f86..262b2780427 100644
--- a/src/vs/workbench/contrib/scm/browser/repositoryPanel.ts
+++ b/src/vs/workbench/contrib/scm/browser/repositoryPanel.ts
@@ -596,6 +596,7 @@ export class RepositoryPanel extends ViewletPanel {
private menus: SCMMenus;
private toggleViewModelModeAction: ToggleViewModeAction | undefined;
protected contextKeyService: IContextKeyService;
+ private commitTemplate = '';
constructor(
readonly repository: ISCMRepository,
@@ -698,10 +699,10 @@ export class RepositoryPanel extends ViewletPanel {
this._register(this.inputBox.onDidHeightChange(() => this.layoutBody()));
if (this.repository.provider.onDidChangeCommitTemplate) {
- this._register(this.repository.provider.onDidChangeCommitTemplate(this.updateInputBox, this));
+ this._register(this.repository.provider.onDidChangeCommitTemplate(this.onDidChangeCommitTemplate, this));
}
- this.updateInputBox();
+ this.onDidChangeCommitTemplate();
// Input box visibility
this._register(this.repository.input.onDidChangeVisibility(this.updateInputBoxVisibility, this));
@@ -922,12 +923,19 @@ export class RepositoryPanel extends ViewletPanel {
.filter(r => !!r && !isSCMResourceGroup(r))! as any;
}
- private updateInputBox(): void {
- if (typeof this.repository.provider.commitTemplate === 'undefined' || !this.repository.input.visible || this.inputBox.value) {
+ private onDidChangeCommitTemplate(): void {
+ if (typeof this.repository.provider.commitTemplate === 'undefined' || !this.repository.input.visible) {
return;
}
- this.inputBox.value = this.repository.provider.commitTemplate;
+ const oldCommitTemplate = this.commitTemplate;
+ this.commitTemplate = this.repository.provider.commitTemplate;
+
+ if (this.inputBox.value && this.inputBox.value !== oldCommitTemplate) {
+ return;
+ }
+
+ this.inputBox.value = this.commitTemplate;
}
private updateInputBoxVisibility(): void {
diff --git a/src/vs/workbench/contrib/scm/common/scm.ts b/src/vs/workbench/contrib/scm/common/scm.ts
index 106a85c5f81..9b4a7f1d103 100644
--- a/src/vs/workbench/contrib/scm/common/scm.ts
+++ b/src/vs/workbench/contrib/scm/common/scm.ts
@@ -56,8 +56,8 @@ export interface ISCMProvider extends IDisposable {
readonly rootUri?: URI;
readonly count?: number;
- readonly commitTemplate?: string;
- readonly onDidChangeCommitTemplate?: Event<string>;
+ readonly commitTemplate: string;
+ readonly onDidChangeCommitTemplate: Event<string>;
readonly onDidChangeStatusBarCommands?: Event<Command[]>;
readonly acceptInputCommand?: Command;
readonly statusBarCommands?: Command[];
diff --git a/yarn.lock b/yarn.lock
index e873811b5f3..13da7565b61 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9280,10 +9280,10 @@ xterm-addon-web-links@0.2.0:
resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.2.0.tgz#b408a0be46211d8d4a0bb5e701d8f3c2bd07d473"
integrity sha512-dq81c4Pzli2PgKVBgY2REte9sCVibR3df8AP3SEvCTM9uYFnUFxtxzMTplPnc7+rXabVhFdbU6x+rstIk8HNQg==
-xterm@4.2.0-beta4:
- version "4.2.0-beta4"
- resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.2.0-beta4.tgz#596577f94a1da372119d192363ea2b19d1f8b50c"
- integrity sha512-BmkpxCpqdOJoNdIcddkRT8S65sGjgBbWI0uIJNSnzZvj81OKcraMSTmF/ODw0TF/MDLc33Fx9cpDx/D6lQgl8Q==
+xterm@4.2.0-beta8:
+ version "4.2.0-beta8"
+ resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.2.0-beta8.tgz#f375cfef7d58240c56ba23c8ca1c36399ab7ccb1"
+ integrity sha512-oka51TIzcmxwpJaoV180bkynYiMW2H0rN7J9gehofEFFX7nHRxIh/tm9EzUEA8I9ELYB91a9TQc7V1PQSN+Mlw==
y18n@^3.2.1:
version "3.2.1"