diff options
| author | Luke Tomlinson <luketomlinson@github.com> | 2023-05-30 19:07:40 +0000 |
|---|---|---|
| committer | Luke Tomlinson <luketomlinson@github.com> | 2023-05-30 19:07:40 +0000 |
| commit | 9e7181f04ac8e162cb17ec779d7c80b999c0e673 (patch) | |
| tree | 47f2ca3293ce9cddaaa36324544a9feab68d09e0 /src | |
| parent | b5131a22acef3cd19082a3e66b8389587b836391 (diff) | |
Use rev-list for tagsluketomlinson/tags
Diffstat (limited to 'src')
| -rw-r--r-- | src/git-command-manager.ts | 12 | ||||
| -rw-r--r-- | src/ref-helper.ts | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/git-command-manager.ts b/src/git-command-manager.ts index ab07524..8e6b901 100644 --- a/src/git-command-manager.ts +++ b/src/git-command-manager.ts @@ -35,6 +35,7 @@ export interface IGitCommandManager { log1(format?: string): Promise<string> remoteAdd(remoteName: string, remoteUrl: string): Promise<void> removeEnvironmentVariable(name: string): void + revList(ref: string, numberOfRefs: number): Promise<string> revParse(ref: string): Promise<string> setEnvironmentVariable(name: string, value: string): void shaExists(sha: string): Promise<boolean> @@ -314,6 +315,17 @@ class GitCommandManager { return output.stdout.trim() } + /** + * Lists SHAs pointed to by a revision. + * @param {string} ref For example: 'refs/heads/main' or '/refs/tags/v1' + * @param {number} numberOfRefs + * @param value + */ + async revList(ref: string, numberOfRefs: number): Promise<string> { + const output = await this.execGit(['rev-list', ref, `-${numberOfRefs}`]) + return output.stdout.trim() + } + setEnvironmentVariable(name: string, value: string): void { this.gitEnv[name] = value } diff --git a/src/ref-helper.ts b/src/ref-helper.ts index 1c25049..149989a 100644 --- a/src/ref-helper.ts +++ b/src/ref-helper.ts @@ -167,7 +167,7 @@ export async function testRef( else if (upperRef.startsWith('REFS/TAGS/')) { const tagName = ref.substring('refs/tags/'.length) return ( - (await git.tagExists(tagName)) && commit === (await git.revParse(ref)) + (await git.tagExists(tagName)) && commit === (await git.revList(ref, 1)) ) } // Unexpected |
