mirror of
https://github.com/ckaczor/vscode-gitlens.git
synced 2026-01-14 10:03:15 -05:00
41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
'use strict';
|
|
|
|
export class GitBranch {
|
|
|
|
current: boolean;
|
|
name: string;
|
|
remote: boolean;
|
|
tracking?: string;
|
|
|
|
constructor(public readonly repoPath: string, branch: string, current: boolean = false, tracking?: string) {
|
|
if (branch.startsWith('remotes/')) {
|
|
branch = branch.substring(8);
|
|
this.remote = true;
|
|
}
|
|
|
|
const index = branch.indexOf(' ');
|
|
if (index !== -1) {
|
|
branch = branch.substring(0, index);
|
|
}
|
|
|
|
this.current = current;
|
|
this.name = branch;
|
|
this.tracking = tracking;
|
|
}
|
|
|
|
getName(): string {
|
|
return this.remote
|
|
? this.name.substring(this.name.indexOf('/') + 1)
|
|
: this.name;
|
|
}
|
|
|
|
getRemote(): string | undefined {
|
|
if (this.remote) return GitBranch.getRemote(this.name);
|
|
if (this.tracking !== undefined) return GitBranch.getRemote(this.tracking);
|
|
return undefined;
|
|
}
|
|
|
|
static getRemote(branch: string): string {
|
|
return branch.substring(0, branch.indexOf('/'));
|
|
}
|
|
} |