ソースを参照

Removes statics for better tree shaking

main
Eric Amodio 2年前
コミット
9229adfd22
16個のファイルの変更101行の追加91行の削除
  1. +4
    -4
      src/commands/base.ts
  2. +3
    -2
      src/commands/diffWith.ts
  3. +5
    -5
      src/commands/git/show.ts
  4. +27
    -26
      src/commands/gitCommands.actions.ts
  5. +6
    -6
      src/commands/quickCommand.steps.ts
  6. +3
    -3
      src/commands/showQuickCommitFile.ts
  7. +2
    -2
      src/extension.ts
  8. +5
    -4
      src/git/formatters/commitFormatter.ts
  9. +24
    -24
      src/git/models/commit.ts
  10. +3
    -2
      src/quickpicks/items/commits.ts
  11. +3
    -2
      src/quickpicks/items/gitCommands.ts
  12. +3
    -2
      src/views/branchesView.ts
  13. +3
    -2
      src/views/commitsView.ts
  14. +3
    -2
      src/views/nodes/pullRequestNode.ts
  15. +3
    -2
      src/views/remotesView.ts
  16. +4
    -3
      src/views/repositoriesView.ts

+ 4
- 4
src/commands/base.ts ファイルの表示

@ -11,8 +11,8 @@ import type { ActionContext } from '../api/gitlens';
import type { Commands } from '../constants';
import type { GitBranch } from '../git/models/branch';
import { isBranch } from '../git/models/branch';
import type { GitStashCommit } from '../git/models/commit';
import { GitCommit } from '../git/models/commit';
import type { GitCommit, GitStashCommit } from '../git/models/commit';
import { isCommit } from '../git/models/commit';
import { GitContributor } from '../git/models/contributor';
import type { GitFile } from '../git/models/file';
import type { GitReference } from '../git/models/reference';
@ -99,7 +99,7 @@ export function isCommandContextViewNodeHasCommit
): context is CommandViewNodeContext & { node: ViewNode & { commit: T } } {
if (context.type !== 'viewItem') return false;
return GitCommit.is((context.node as ViewNode & { commit: GitCommit | GitStashCommit }).commit);
return isCommit((context.node as ViewNode & { commit: GitCommit | GitStashCommit }).commit);
}
export function isCommandContextViewNodeHasContributor(
@ -125,7 +125,7 @@ export function isCommandContextViewNodeHasFileCommit(
if (context.type !== 'viewItem') return false;
const node = context.node as ViewNode & { commit: GitCommit; file: GitFile; repoPath: string };
return node.file != null && GitCommit.is(node.commit) && (node.file.repoPath != null || node.repoPath != null);
return node.file != null && isCommit(node.commit) && (node.file.repoPath != null || node.repoPath != null);
}
export function isCommandContextViewNodeHasFileRefs(context: CommandContext): context is CommandViewNodeContext & {

+ 3
- 2
src/commands/diffWith.ts ファイルの表示

@ -2,7 +2,8 @@ import type { TextDocumentShowOptions, Uri } from 'vscode';
import { Range, ViewColumn } from 'vscode';
import { Commands, CoreCommands, GlyphChars } from '../constants';
import type { Container } from '../container';
import { GitCommit } from '../git/models/commit';
import type { GitCommit } from '../git/models/commit';
import { isCommit } from '../git/models/commit';
import { GitRevision } from '../git/models/reference';
import { Logger } from '../logger';
import { showGenericErrorMessage } from '../messages';
@ -31,7 +32,7 @@ export class DiffWithCommand extends Command {
static getMarkdownCommandArgs(commit: GitCommit, line?: number): string;
static getMarkdownCommandArgs(argsOrCommit: DiffWithCommandArgs | GitCommit, line?: number): string {
let args: DiffWithCommandArgs | GitCommit;
if (GitCommit.is(argsOrCommit)) {
if (isCommit(argsOrCommit)) {
const commit = argsOrCommit;
if (commit.file == null || commit.unresolvedPreviousSha == null) {
debugger;

+ 5
- 5
src/commands/git/show.ts ファイルの表示

@ -1,6 +1,6 @@
import type { Container } from '../../container';
import type { GitStashCommit } from '../../git/models/commit';
import { GitCommit } from '../../git/models/commit';
import type { GitCommit, GitStashCommit } from '../../git/models/commit';
import { isCommit } from '../../git/models/commit';
import type { GitRevisionReference } from '../../git/models/reference';
import { Repository } from '../../git/models/repository';
import { CommitFilesQuickPickItem } from '../../quickpicks/items/commits';
@ -48,7 +48,7 @@ function assertStateStepRepository(state: PartialStepState): asserts stat
type CommitStepState = SomeNonNullable<RepositoryStepState<State<GitCommit | GitStashCommit>>, 'reference'>;
function assertsStateStepCommit(state: RepositoryStepState): asserts state is CommitStepState {
if (GitCommit.is(state.reference)) return;
if (isCommit(state.reference)) return;
debugger;
throw new Error('Missing reference');
@ -138,10 +138,10 @@ export class ShowGitCommand extends QuickCommand {
if (
state.counter < 2 ||
state.reference == null ||
!GitCommit.is(state.reference) ||
!isCommit(state.reference) ||
state.reference.file != null
) {
if (state.reference != null && !GitCommit.is(state.reference)) {
if (state.reference != null && !isCommit(state.reference)) {
state.reference = await this.container.git.getCommit(state.reference.repoPath, state.reference.ref);
}

+ 27
- 26
src/commands/gitCommands.actions.ts ファイルの表示

@ -11,7 +11,8 @@ import type { FileAnnotationType } from '../configuration';
import { Commands, CoreCommands } from '../constants';
import { Container } from '../container';
import { GitUri } from '../git/gitUri';
import { GitCommit } from '../git/models/commit';
import type { GitCommit } from '../git/models/commit';
import { isCommit } from '../git/models/commit';
import type { GitContributor } from '../git/models/contributor';
import type { GitFile } from '../git/models/file';
import type {
@ -170,7 +171,7 @@ export namespace GitActions {
ref2?: GitRevisionReference,
) {
// Open the working file to ensure undo will work
(await GitActions.Commit.openFile(file, ref1, { preserveFocus: true, preview: false }));
await GitActions.Commit.openFile(file, ref1, { preserveFocus: true, preview: false });
let ref = ref1.ref;
// If the file is `?` (untracked), then this must be a stash, so get the ^3 commit to access the untracked file
@ -178,22 +179,22 @@ export namespace GitActions {
ref = `${ref}^3`;
}
(await Container.instance.git.applyChangesToWorkingFile(
await Container.instance.git.applyChangesToWorkingFile(
GitUri.fromFile(file, ref1.repoPath, ref),
ref,
ref2?.ref,
));
);
}
export async function copyIdToClipboard(ref: { repoPath: string; ref: string } | GitCommit) {
(await env.clipboard.writeText(ref.ref));
await env.clipboard.writeText(ref.ref);
}
export async function copyMessageToClipboard(
ref: { repoPath: string; ref: string } | GitCommit,
): Promise<void> {
let commit;
if (GitCommit.is(ref)) {
if (isCommit(ref)) {
commit = ref;
if (commit.message == null) {
await commit.ensureFullDetails();
@ -204,7 +205,7 @@ export namespace GitActions {
}
const message = commit.message ?? commit.summary;
(await env.clipboard.writeText(message));
await env.clipboard.writeText(message);
}
export async function openAllChanges(commit: GitCommit, options?: TextDocumentShowOptions): Promise<void>;
@ -220,7 +221,7 @@ export namespace GitActions {
) {
let files;
let refs;
if (GitCommit.is(commitOrFiles)) {
if (isCommit(commitOrFiles)) {
if (commitOrFiles.files == null) {
await commitOrFiles.ensureFullDetails();
}
@ -265,7 +266,7 @@ export namespace GitActions {
ref?: { repoPath: string; ref: string },
) {
let files;
if (GitCommit.is(commitOrFiles)) {
if (isCommit(commitOrFiles)) {
if (commitOrFiles.files == null) {
await commitOrFiles.ensureFullDetails();
}
@ -309,7 +310,7 @@ export namespace GitActions {
) {
let files;
let ref;
if (GitCommit.is(commitOrFiles)) {
if (isCommit(commitOrFiles)) {
if (commitOrFiles.files == null) {
await commitOrFiles.ensureFullDetails();
}
@ -338,7 +339,7 @@ export namespace GitActions {
options = { preserveFocus: true, preview: false, ...options };
for (const file of files) {
(await openChangesWithWorking(file, ref, options));
await openChangesWithWorking(file, ref, options);
}
}
@ -358,7 +359,7 @@ export namespace GitActions {
options?: TextDocumentShowOptions,
) {
if (typeof file === 'string') {
if (!GitCommit.is(commitOrRefs)) throw new Error('Invalid arguments');
if (!isCommit(commitOrRefs)) throw new Error('Invalid arguments');
const f = await commitOrRefs.findFile(file);
if (f == null) throw new Error('Invalid arguments');
@ -368,7 +369,7 @@ export namespace GitActions {
if (file.status === 'A') return;
const refs = GitCommit.is(commitOrRefs)
const refs = isCommit(commitOrRefs)
? {
repoPath: commitOrRefs.repoPath,
// Don't need to worry about verifying the previous sha, as the DiffWith command will
@ -409,7 +410,7 @@ export namespace GitActions {
tool?: string,
) {
if (typeof file === 'string') {
if (!GitCommit.is(commitOrRef)) throw new Error('Invalid arguments');
if (!isCommit(commitOrRef)) throw new Error('Invalid arguments');
const f = await commitOrRef.findFile(file);
if (f == null) throw new Error('Invalid arguments');
@ -445,7 +446,7 @@ export namespace GitActions {
options?: TextDocumentShowOptions,
) {
if (typeof file === 'string') {
if (!GitCommit.is(commitOrRef)) throw new Error('Invalid arguments');
if (!isCommit(commitOrRef)) throw new Error('Invalid arguments');
const f = await commitOrRef.findFile(file);
if (f == null) throw new Error('Invalid arguments');
@ -456,7 +457,7 @@ export namespace GitActions {
if (file.status === 'D') return;
let ref;
if (GitCommit.is(commitOrRef)) {
if (isCommit(commitOrRef)) {
ref = {
repoPath: commitOrRef.repoPath,
ref: commitOrRef.sha,
@ -541,12 +542,12 @@ export namespace GitActions {
): Promise<void> {
let uri;
if (fileOrRevisionUri instanceof Uri) {
if (GitCommit.is(commitOrOptions)) throw new Error('Invalid arguments');
if (isCommit(commitOrOptions)) throw new Error('Invalid arguments');
uri = fileOrRevisionUri;
options = commitOrOptions;
} else {
if (!GitCommit.is(commitOrOptions)) throw new Error('Invalid arguments');
if (!isCommit(commitOrOptions)) throw new Error('Invalid arguments');
const commit = commitOrOptions;
@ -586,7 +587,7 @@ export namespace GitActions {
}
export async function openDetails(commit: GitCommit): Promise<void> {
(await Container.instance.commitDetailsView.show({ commit: commit }));
await Container.instance.commitDetailsView.show({ commit: commit });
}
export async function openFiles(commit: GitCommit): Promise<void>;
@ -597,7 +598,7 @@ export namespace GitActions {
ref?: string,
): Promise<void> {
let files;
if (GitCommit.is(commitOrFiles)) {
if (isCommit(commitOrFiles)) {
if (commitOrFiles.files == null) {
await commitOrFiles.ensureFullDetails();
}
@ -642,7 +643,7 @@ export namespace GitActions {
ref2?: string,
): Promise<void> {
let files;
if (GitCommit.is(commitOrFiles)) {
if (isCommit(commitOrFiles)) {
if (commitOrFiles.files == null) {
await commitOrFiles.ensureFullDetails();
}
@ -683,7 +684,7 @@ export namespace GitActions {
file.status === `?` ? `${revision.ref}^3` : file.status === 'D' ? `${revision.ref}^` : revision.ref;
}
(await Container.instance.git.checkout(revision.repoPath, ref, { path: path }));
await Container.instance.git.checkout(revision.repoPath, ref, { path: path });
}
export async function reveal(
@ -766,8 +767,8 @@ export namespace GitActions {
if (url == null || url.length === 0) return undefined;
repo = ensureRepo(repo);
(await Container.instance.git.addRemote(repo.path, name, url));
(await repo.fetch({ remote: name }));
await Container.instance.git.addRemote(repo.path, name, url);
await repo.fetch({ remote: name });
return name;
}
@ -780,11 +781,11 @@ export namespace GitActions {
repo = r;
}
(await repo.fetch({ remote: remote }));
await repo.fetch({ remote: remote });
}
export async function prune(repo: string | Repository, remote: string) {
(await Container.instance.git.pruneRemote(typeof repo === 'string' ? repo : repo.path, remote));
await Container.instance.git.pruneRemote(typeof repo === 'string' ? repo : repo.path, remote);
}
export async function reveal(

+ 6
- 6
src/commands/quickCommand.steps.ts ファイルの表示

@ -6,8 +6,8 @@ import type { PlusFeatures } from '../features';
import type { PagedResult } from '../git/gitProvider';
import type { BranchSortOptions, GitBranch } from '../git/models/branch';
import { sortBranches } from '../git/models/branch';
import type { GitStashCommit } from '../git/models/commit';
import { GitCommit } from '../git/models/commit';
import type { GitCommit, GitStashCommit } from '../git/models/commit';
import { isCommit, isStash } from '../git/models/commit';
import type { GitContributor } from '../git/models/contributor';
import type { GitLog } from '../git/models/log';
import type { GitBranchReference, GitRevisionReference, GitTagReference } from '../git/models/reference';
@ -1626,7 +1626,7 @@ async function getShowCommitOrStashStepItems<
let unpublished: boolean | undefined;
if (GitCommit.isStash(state.reference)) {
if (isStash(state.reference)) {
items.push(
QuickPickSeparator.create('Actions'),
new GitCommandQuickPickItem('Apply Stash...', {
@ -1672,7 +1672,7 @@ async function getShowCommitOrStashStepItems<
branch != null
? Container.instance.git.getCommitBranches(state.repo.path, state.reference.ref, {
branch: branch.name,
commitDate: GitCommit.is(state.reference) ? state.reference.committer.date : undefined,
commitDate: isCommit(state.reference) ? state.reference.committer.date : undefined,
})
: undefined,
!branch?.remote && branch?.upstream != null ? state.reference.isPushed() : undefined,
@ -1852,7 +1852,7 @@ export function* showCommitOrStashFilesStep<
items: [
new CommitFilesQuickPickItem(state.reference, {
picked: state.fileName == null,
hint: `Click to see ${GitCommit.isStash(state.reference) ? 'stash' : 'commit'} actions`,
hint: `Click to see ${isStash(state.reference) ? 'stash' : 'commit'} actions`,
}),
QuickPickSeparator.create('Files'),
...(state.reference.files?.map(
@ -1990,7 +1990,7 @@ async function getShowCommitOrStashFileStepItems<
const items: (CommandQuickPickItem | QuickPickSeparator)[] = [];
if (GitCommit.isStash(state.reference)) {
if (isStash(state.reference)) {
items.push(
QuickPickSeparator.create(),
new CommitCopyMessageQuickPickItem(state.reference),

+ 3
- 3
src/commands/showQuickCommitFile.ts ファイルの表示

@ -3,8 +3,8 @@ import { Uri, window } from 'vscode';
import { Commands } from '../constants';
import type { Container } from '../container';
import { GitUri } from '../git/gitUri';
import type { GitStashCommit } from '../git/models/commit';
import { GitCommit } from '../git/models/commit';
import type { GitCommit, GitStashCommit } from '../git/models/commit';
import { isCommit } from '../git/models/commit';
import type { GitLog } from '../git/models/log';
import { Logger } from '../logger';
import {
@ -136,7 +136,7 @@ export class ShowQuickCommitFileCommand extends ActiveEditorCachedCommand {
}
const path = args.commit?.file?.path ?? gitUri.fsPath;
if (GitCommit.is(args.commit)) {
if (isCommit(args.commit)) {
if (args.commit.files == null) {
await args.commit.ensureFullDetails();
}

+ 2
- 2
src/extension.ts ファイルの表示

@ -10,7 +10,7 @@ import { Container } from './container';
import { setContext } from './context';
import { isGitUri } from './git/gitUri';
import { getBranchNameWithoutRemote } from './git/models/branch';
import { GitCommit } from './git/models/commit';
import { isCommit } from './git/models/commit';
import { Logger, LogLevel } from './logger';
import { showDebugLoggingWarningMessage, showInsidersErrorMessage, showWhatsNewMessage } from './messages';
import { registerPartnerActionRunners } from './partners';
@ -34,7 +34,7 @@ export async function activate(context: ExtensionContext): Promise
})`;
}
if (GitCommit.is(o)) {
if (isCommit(o)) {
return `GitCommit(${o.sha ? ` sha=${o.sha}` : ''}${o.repoPath ? ` repoPath=${o.repoPath}` : ''})`;
}

+ 5
- 4
src/git/formatters/commitFormatter.ts ファイルの表示

@ -25,7 +25,8 @@ import type { TokenOptions } from '../../system/string';
import { escapeMarkdown, getSuperscript } from '../../system/string';
import type { ContactPresence } from '../../vsls/vsls';
import type { PreviousLineComparisonUrisResult } from '../gitProvider';
import { GitCommit } from '../models/commit';
import type { GitCommit } from '../models/commit';
import { isCommit } from '../models/commit';
import type { IssueOrPullRequest } from '../models/issue';
import { PullRequest } from '../models/pullRequest';
import { GitRevision } from '../models/reference';
@ -256,21 +257,21 @@ export class CommitFormatter extends Formatter {
get changes(): string {
return this._padOrTruncate(
GitCommit.is(this._item) ? this._item.formatStats() : '',
isCommit(this._item) ? this._item.formatStats() : '',
this._options.tokenOptions.changes,
);
}
get changesDetail(): string {
return this._padOrTruncate(
GitCommit.is(this._item) ? this._item.formatStats({ expand: true, separator: ', ' }) : '',
isCommit(this._item) ? this._item.formatStats({ expand: true, separator: ', ' }) : '',
this._options.tokenOptions.changesDetail,
);
}
get changesShort(): string {
return this._padOrTruncate(
GitCommit.is(this._item) ? this._item.formatStats({ compact: true, separator: '' }) : '',
isCommit(this._item) ? this._item.formatStats({ compact: true, separator: '' }) : '',
this._options.tokenOptions.changesShort,
);
}

+ 24
- 24
src/git/models/commit.ts ファイルの表示

@ -23,27 +23,6 @@ import type { Repository } from './repository';
const stashNumberRegex = /stash@{(\d+)}/;
export class GitCommit implements GitRevisionReference {
static is(commit: any): commit is GitCommit {
return commit instanceof GitCommit;
}
static isStash(commit: any): commit is GitStashCommit {
return commit instanceof GitCommit && commit.refType === 'stash' && Boolean(commit.stashName);
}
static isOfRefType(commit: GitReference | undefined): boolean {
return commit?.refType === 'revision' || commit?.refType === 'stash';
}
static hasFullDetails(commit: GitCommit): commit is GitCommit & SomeNonNullable<GitCommit, 'message' | 'files'> {
return (
commit.message != null &&
commit.files != null &&
commit.parents.length !== 0 &&
(commit.refType !== 'stash' || commit._stashUntrackedFilesLoaded)
);
}
private _stashUntrackedFilesLoaded = false;
private _recomputeStats = false;
@ -194,9 +173,18 @@ export class GitCommit implements GitRevisionReference {
);
}
hasFullDetails(commit: GitCommit): commit is GitCommit & SomeNonNullable<GitCommit, 'message' | 'files'> {
return (
commit.message != null &&
commit.files != null &&
commit.parents.length !== 0 &&
(commit.refType !== 'stash' || commit._stashUntrackedFilesLoaded)
);
}
@gate()
async ensureFullDetails(): Promise<void> {
if (this.isUncommitted || GitCommit.hasFullDetails(this)) return;
if (this.isUncommitted || this.hasFullDetails(this)) return;
const [commitResult, untrackedResult] = await Promise.allSettled([
this.refType !== 'stash' ? this.container.git.getCommit(this.repoPath, this.sha) : undefined,
@ -300,7 +288,7 @@ export class GitCommit implements GitRevisionReference {
async findFile(path: string): Promise<GitFileChange | undefined>;
async findFile(uri: Uri): Promise<GitFileChange | undefined>;
async findFile(pathOrUri: string | Uri): Promise<GitFileChange | undefined> {
if (!GitCommit.hasFullDetails(this)) {
if (!this.hasFullDetails(this)) {
await this.ensureFullDetails();
if (this._files == null) return undefined;
}
@ -424,7 +412,7 @@ export class GitCommit implements GitRevisionReference {
}
async getCommitsForFiles(): Promise<GitCommit[]> {
if (!GitCommit.hasFullDetails(this)) {
if (!this.hasFullDetails(this)) {
await this.ensureFullDetails();
if (this._files == null) return [];
}
@ -552,6 +540,18 @@ export class GitCommit implements GitRevisionReference {
}
}
export function isCommit(commit: any): commit is GitCommit {
return commit instanceof GitCommit;
}
export function isStash(commit: any): commit is GitStashCommit {
return commit instanceof GitCommit && commit.refType === 'stash' && Boolean(commit.stashName);
}
export function isOfCommitOrStashRefType(commit: GitReference | undefined): boolean {
return commit?.refType === 'revision' || commit?.refType === 'stash';
}
export class GitCommitIdentity {
constructor(
public readonly name: string,

+ 3
- 2
src/quickpicks/items/commits.ts ファイルの表示

@ -6,7 +6,8 @@ import { QuickCommandButtons } from '../../commands/quickCommand.buttons';
import { Commands, GlyphChars } from '../../constants';
import { Container } from '../../container';
import { CommitFormatter } from '../../git/formatters/commitFormatter';
import { GitCommit } from '../../git/models/commit';
import type { GitCommit } from '../../git/models/commit';
import { isStash } from '../../git/models/commit';
import type { GitFileChange } from '../../git/models/file';
import { GitFile } from '../../git/models/file';
import type { GitStatusFile } from '../../git/models/status';
@ -46,7 +47,7 @@ export class CommitFilesQuickPickItem extends CommandQuickPickItem {
}${options?.hint != null ? `${pad(GlyphChars.Dash, 4, 2, GlyphChars.Space)}${options.hint}` : ''}`,
alwaysShow: true,
picked: options?.picked ?? true,
buttons: GitCommit.isStash(commit)
buttons: isStash(commit)
? [QuickCommandButtons.RevealInSideBar]
: [QuickCommandButtons.RevealInSideBar, QuickCommandButtons.SearchInSideBar],
},

+ 3
- 2
src/quickpicks/items/gitCommands.ts ファイルの表示

@ -5,7 +5,8 @@ import { Commands, GlyphChars } from '../../constants';
import { Container } from '../../container';
import { emojify } from '../../emojis';
import type { GitBranch } from '../../git/models/branch';
import { GitCommit } from '../../git/models/commit';
import type { GitCommit } from '../../git/models/commit';
import { isStash } from '../../git/models/commit';
import type { GitContributor } from '../../git/models/contributor';
import { GitReference, GitRevision } from '../../git/models/reference';
import { GitRemoteType } from '../../git/models/remote';
@ -150,7 +151,7 @@ export namespace CommitQuickPickItem {
picked?: boolean,
options?: { alwaysShow?: boolean; buttons?: QuickInputButton[]; compact?: boolean; icon?: boolean },
) {
if (GitCommit.isStash(commit)) {
if (isStash(commit)) {
const number = commit.number == null ? '' : `${commit.number}: `;
if (options?.compact) {

+ 3
- 2
src/views/branchesView.ts ファイルの表示

@ -5,7 +5,8 @@ import { configuration, ViewBranchesLayout, ViewFilesLayout, ViewShowBranchCompa
import { Commands } from '../constants';
import type { Container } from '../container';
import { GitUri } from '../git/gitUri';
import { GitCommit } from '../git/models/commit';
import type { GitCommit } from '../git/models/commit';
import { isCommit } from '../git/models/commit';
import type { GitBranchReference, GitRevisionReference } from '../git/models/reference';
import { GitReference } from '../git/models/reference';
import type { RepositoryChangeEvent } from '../git/models/repository';
@ -228,7 +229,7 @@ export class BranchesView extends ViewBase
const branches = await this.container.git.getCommitBranches(
commit.repoPath,
commit.ref,
GitCommit.is(commit) ? { commitDate: commit.committer.date } : undefined,
isCommit(commit) ? { commitDate: commit.committer.date } : undefined,
);
if (branches.length === 0) return undefined;

+ 3
- 2
src/views/commitsView.ts ファイルの表示

@ -6,7 +6,8 @@ import { Commands, ContextKeys, GlyphChars } from '../constants';
import { Container } from '../container';
import { setContext } from '../context';
import { GitUri } from '../git/gitUri';
import { GitCommit } from '../git/models/commit';
import type { GitCommit } from '../git/models/commit';
import { isCommit } from '../git/models/commit';
import type { GitRevisionReference } from '../git/models/reference';
import { GitReference } from '../git/models/reference';
import type { RepositoryChangeEvent } from '../git/models/repository';
@ -279,7 +280,7 @@ export class CommitsView extends ViewBase {
// Check if the commit exists on the current branch
const branches = await Container.instance.git.getCommitBranches(commit.repoPath, commit.ref, {
branch: branch.name,
commitDate: GitCommit.is(commit) ? commit.committer.date : undefined,
commitDate: isCommit(commit) ? commit.committer.date : undefined,
});
if (!branches.length) return undefined;

+ 3
- 2
src/views/nodes/pullRequestNode.ts ファイルの表示

@ -1,7 +1,8 @@
import { MarkdownString, TreeItem, TreeItemCollapsibleState } from 'vscode';
import { GitUri } from '../../git/gitUri';
import type { GitBranch } from '../../git/models/branch';
import { GitCommit } from '../../git/models/commit';
import type { GitCommit } from '../../git/models/commit';
import { isCommit } from '../../git/models/commit';
import { PullRequest, PullRequestState } from '../../git/models/pullRequest';
import type { ViewsWithCommits } from '../viewBase';
import { RepositoryNode } from './repositoryNode';
@ -62,7 +63,7 @@ export class PullRequestNode extends ViewNode {
tooltip.supportHtml = true;
tooltip.isTrusted = true;
if (GitCommit.is(this.branchOrCommit)) {
if (isCommit(this.branchOrCommit)) {
tooltip.appendMarkdown(
`Commit \`$(git-commit) ${this.branchOrCommit.shortSha}\` was introduced by $(git-pull-request) PR #${this.pullRequest.id}\n\n`,
);

+ 3
- 2
src/views/remotesView.ts ファイルの表示

@ -6,7 +6,8 @@ import { Commands } from '../constants';
import type { Container } from '../container';
import { GitUri } from '../git/gitUri';
import { getRemoteNameFromBranchName } from '../git/models/branch';
import { GitCommit } from '../git/models/commit';
import type { GitCommit } from '../git/models/commit';
import { isCommit } from '../git/models/commit';
import type { GitBranchReference, GitRevisionReference } from '../git/models/reference';
import { GitReference } from '../git/models/reference';
import type { GitRemote } from '../git/models/remote';
@ -225,7 +226,7 @@ export class RemotesView extends ViewBase {
const branches = await this.container.git.getCommitBranches(
commit.repoPath,
commit.ref,
GitCommit.is(commit) ? { commitDate: commit.committer.date, remotes: true } : { remotes: true },
isCommit(commit) ? { commitDate: commit.committer.date, remotes: true } : { remotes: true },
);
if (branches.length === 0) return undefined;

+ 4
- 3
src/views/repositoriesView.ts ファイルの表示

@ -6,7 +6,8 @@ import { Commands, ContextKeys } from '../constants';
import type { Container } from '../container';
import { setContext } from '../context';
import { getRemoteNameFromBranchName } from '../git/models/branch';
import { GitCommit } from '../git/models/commit';
import type { GitCommit } from '../git/models/commit';
import { isCommit } from '../git/models/commit';
import type { GitContributor } from '../git/models/contributor';
import type {
GitBranchReference,
@ -336,7 +337,7 @@ export class RepositoriesView extends ViewBase
let branches = await this.container.git.getCommitBranches(
commit.repoPath,
commit.ref,
GitCommit.is(commit) ? { commitDate: commit.committer.date } : undefined,
isCommit(commit) ? { commitDate: commit.committer.date } : undefined,
);
if (branches.length !== 0) {
return this.findNode((n: any) => n.commit !== undefined && n.commit.ref === commit.ref, {
@ -371,7 +372,7 @@ export class RepositoriesView extends ViewBase
branches = await this.container.git.getCommitBranches(
commit.repoPath,
commit.ref,
GitCommit.is(commit) ? { commitDate: commit.committer.date, remotes: true } : { remotes: true },
isCommit(commit) ? { commitDate: commit.committer.date, remotes: true } : { remotes: true },
);
if (branches.length === 0) return undefined;

||||||
x
 
000:0
読み込み中…
キャンセル
保存