From 4b90d9ba82a3b7340139990dde9db87874a0ac44 Mon Sep 17 00:00:00 2001 From: al Date: Thu, 5 Sep 2019 00:03:16 +0300 Subject: [PATCH 1/3] Add branch name to commit input box --- extensions/git/src/commands.ts | 3 ++- extensions/git/src/repository.ts | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index dfc7bb75fb9..ffd729d002e 100755 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -1370,9 +1370,10 @@ export class CommandCenter { value = (await repository.getCommit(repository.HEAD.commit)).message; } + const branchName = repository.getBranchName(); return await window.showInputBox({ value, - placeHolder: localize('commit message', "Commit message"), + placeHolder: branchName ? localize('commitMessageWithHeadLabel2', "Message (commit on '{0}')", branchName) : localize('commit message', "Commit message"), prompt: localize('provide commit message', "Please provide a commit message"), ignoreFocusOut: true }); diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index 1b9f7fbd89a..c2cb0a8a25b 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -1653,20 +1653,26 @@ export class Repository implements Disposable { } private updateInputBoxPlaceholder(): void { - const HEAD = this.HEAD; - - if (HEAD) { - const tag = this.refs.filter(iref => iref.type === RefType.Tag && iref.commit === HEAD.commit)[0]; - const tagName = tag && tag.name; - const head = HEAD.name || tagName || (HEAD.commit || '').substr(0, 8); + const branchName = this.getBranchName(); + if (branchName) { // '{0}' will be replaced by the corresponding key-command later in the process, which is why it needs to stay. - this._sourceControl.inputBox.placeholder = localize('commitMessageWithHeadLabel', "Message ({0} to commit on '{1}')", "{0}", head); + this._sourceControl.inputBox.placeholder = localize('commitMessageWithHeadLabel', "Message ({0} to commit on '{1}')", "{0}", branchName); } else { this._sourceControl.inputBox.placeholder = localize('commitMessage', "Message ({0} to commit)"); } } + getBranchName(): string | undefined { + const HEAD = this.HEAD; + if (HEAD === undefined) { + return; + } + const tag = this.refs.filter(iref => iref.type === RefType.Tag && iref.commit === HEAD.commit)[0]; + const tagName = tag && tag.name; + return HEAD.name || tagName || (HEAD.commit || '').substr(0, 8); + } + dispose(): void { this.disposables = dispose(this.disposables); } From 4afe989cfad04b5f6eb961188a874d7c3e21f27b Mon Sep 17 00:00:00 2001 From: al Date: Sun, 8 Sep 2019 22:40:11 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=92=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/git/src/commands.ts | 12 +++++++++--- extensions/git/src/repository.ts | 25 ++++++++++++++----------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index ffd729d002e..cc6cbbaf16c 100755 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -5,7 +5,7 @@ import { Uri, commands, Disposable, window, workspace, QuickPickItem, OutputChannel, Range, WorkspaceEdit, Position, LineChange, SourceControlResourceState, TextDocumentShowOptions, ViewColumn, ProgressLocation, TextEditor, MessageOptions, WorkspaceFolder } from 'vscode'; import { Git, CommitOptions, Stash, ForcePushMode } from './git'; -import { Repository, Resource, ResourceGroupType } from './repository'; +import { Repository, Resource, ResourceGroupType, getBranchName } from './repository'; import { Model } from './model'; import { toGitUri, fromGitUri } from './uri'; import { grep, isDescendant, pathEquals } from './util'; @@ -1370,10 +1370,16 @@ export class CommandCenter { value = (await repository.getCommit(repository.HEAD.commit)).message; } - const branchName = repository.getBranchName(); + let placeHolder; + const branchName = getBranchName(repository.HEAD, repository.refs); + if (branchName) { + placeHolder = localize('commitMessageWithHeadLabel2', "Message (commit on '{0}')", branchName); + } else { + placeHolder = localize('commit message', "Commit message"); + } return await window.showInputBox({ value, - placeHolder: branchName ? localize('commitMessageWithHeadLabel2', "Message (commit on '{0}')", branchName) : localize('commit message', "Commit message"), + placeHolder, prompt: localize('provide commit message', "Please provide a commit message"), ignoreFocusOut: true }); diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index c2cb0a8a25b..781717c04d6 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -1653,7 +1653,7 @@ export class Repository implements Disposable { } private updateInputBoxPlaceholder(): void { - const branchName = this.getBranchName(); + const branchName = getBranchName(this.HEAD, this.refs); if (branchName) { // '{0}' will be replaced by the corresponding key-command later in the process, which is why it needs to stay. @@ -1663,17 +1663,20 @@ export class Repository implements Disposable { } } - getBranchName(): string | undefined { - const HEAD = this.HEAD; - if (HEAD === undefined) { - return; - } - const tag = this.refs.filter(iref => iref.type === RefType.Tag && iref.commit === HEAD.commit)[0]; - const tagName = tag && tag.name; - return HEAD.name || tagName || (HEAD.commit || '').substr(0, 8); - } - dispose(): void { this.disposables = dispose(this.disposables); } } + +export function getBranchName(HEAD: Repository['HEAD'], refs: Repository['refs']): string | undefined { + if (!HEAD) { + return; + } + const tag = refs.filter(iref => iref.type === RefType.Tag && iref.commit === HEAD.commit)[0]; + const tagName = tag && tag.name; + const branchName = HEAD.name || tagName || HEAD.commit; + if (!branchName) { + return; + } + return branchName.substr(0, 8); +} From 6ec5f47c0bfb8adb5b0676c76ff3f76725995a47 Mon Sep 17 00:00:00 2001 From: al Date: Mon, 9 Sep 2019 21:40:13 +0300 Subject: [PATCH 3/3] Just compare to undefined --- extensions/git/src/repository.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index 781717c04d6..9882b79ff12 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -1669,13 +1669,13 @@ export class Repository implements Disposable { } export function getBranchName(HEAD: Repository['HEAD'], refs: Repository['refs']): string | undefined { - if (!HEAD) { + if (HEAD === undefined) { return; } const tag = refs.filter(iref => iref.type === RefType.Tag && iref.commit === HEAD.commit)[0]; const tagName = tag && tag.name; const branchName = HEAD.name || tagName || HEAD.commit; - if (!branchName) { + if (branchName === undefined) { return; } return branchName.substr(0, 8);