diff --git a/lib/util/git/index.spec.ts b/lib/util/git/index.spec.ts index 30bc0924b80ad919dfeb0454e268399cc19d5351..1d17075dae0f145848ac0659b7217ed40876f650 100644 --- a/lib/util/git/index.spec.ts +++ b/lib/util/git/index.spec.ts @@ -1033,4 +1033,15 @@ describe('util/git/index', () => { expect(await git.getSubmodules()).toHaveLength(0); }); }); + + describe('fetchRevSpec()', () => { + it('fetchRevSpec()', async () => { + await git.fetchRevSpec( + `refs/heads/${defaultBranch}:refs/heads/other/${defaultBranch}` + ); + //checkout this duplicate + const sha = await git.checkoutBranch(`other/${defaultBranch}`); + expect(sha).toBe(git.getBranchCommit(defaultBranch)); + }); + }); }); diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts index 5cdeb178aa8f1a9a2b8e4a398f65224c8abd64f3..1b2c749cfb77631f57e26e43fe017b69db949953 100644 --- a/lib/util/git/index.ts +++ b/lib/util/git/index.ts @@ -229,6 +229,10 @@ async function fetchBranchCommits(): Promise<void> { } } +export async function fetchRevSpec(revSpec: string): Promise<void> { + await gitRetry(() => git.fetch(['origin', revSpec])); +} + export async function initRepo(args: StorageConfig): Promise<void> { config = { ...args } as any; config.ignoredAuthors = [];