From 5cbfe54ddccb7aa81f873dab834f0c6d84fe3682 Mon Sep 17 00:00:00 2001 From: John Wesley Walker III <81404201+jww3@users.noreply.github.com> Date: Thu, 14 Mar 2024 15:40:14 +0100 Subject: Check git version before attempting to disable `sparse-checkout` (#1656) * Check git version before attempting to disable `sparse-checkout` * Bump `MinimumGitSparseCheckoutVersion` to 2.28 due to #1386 * Initial prep for release 4.1.3 --- __test__/git-auth-helper.test.ts | 3 ++- __test__/git-directory-helper.test.ts | 3 ++- __test__/git-version.test.ts | 43 ++++++++++++++++++++++++++++++++++- 3 files changed, 46 insertions(+), 3 deletions(-) (limited to '__test__') diff --git a/__test__/git-auth-helper.test.ts b/__test__/git-auth-helper.test.ts index a75b79d..4081cb1 100644 --- a/__test__/git-auth-helper.test.ts +++ b/__test__/git-auth-helper.test.ts @@ -796,7 +796,8 @@ async function setup(testName: string): Promise { ), tryDisableAutomaticGarbageCollection: jest.fn(), tryGetFetchUrl: jest.fn(), - tryReset: jest.fn() + tryReset: jest.fn(), + version: jest.fn() } settings = { diff --git a/__test__/git-directory-helper.test.ts b/__test__/git-directory-helper.test.ts index 79e0538..22e9ae6 100644 --- a/__test__/git-directory-helper.test.ts +++ b/__test__/git-directory-helper.test.ts @@ -501,6 +501,7 @@ async function setup(testName: string): Promise { }), tryReset: jest.fn(async () => { return true - }) + }), + version: jest.fn() } } diff --git a/__test__/git-version.test.ts b/__test__/git-version.test.ts index aa3ae4b..27f702e 100644 --- a/__test__/git-version.test.ts +++ b/__test__/git-version.test.ts @@ -1,4 +1,5 @@ -import {GitVersion} from '../lib/git-version' +import {GitVersion} from '../src/git-version' +import {MinimumGitSparseCheckoutVersion} from '../src/git-command-manager' describe('git-version tests', () => { it('basics', async () => { @@ -42,4 +43,44 @@ describe('git-version tests', () => { expect(version.checkMinimum(new GitVersion('5.1'))).toBeFalsy() expect(version.checkMinimum(new GitVersion('5.1.2'))).toBeFalsy() }) + + it('sparse checkout', async () => { + const minSparseVer = MinimumGitSparseCheckoutVersion + expect(new GitVersion('1.0').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('1.99').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.0').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.24').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.24.0').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.24.9').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.25').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.25.0').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.25.1').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.25.9').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.26').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.26.0').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.26.1').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.26.9').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.27').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.27.0').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.27.1').checkMinimum(minSparseVer)).toBeFalsy() + expect(new GitVersion('2.27.9').checkMinimum(minSparseVer)).toBeFalsy() + // /--------------------------------------- + // ^^^ before / after vvv + // --------------------------/ + expect(new GitVersion('2.28').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('2.28.0').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('2.28.1').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('2.28.9').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('2.29').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('2.29.0').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('2.29.1').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('2.29.9').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('2.99').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('3.0').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('3.99').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('4.0').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('4.99').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('5.0').checkMinimum(minSparseVer)).toBeTruthy() + expect(new GitVersion('5.99').checkMinimum(minSparseVer)).toBeTruthy() + }) }) -- cgit v1.2.3