From 6255728e636eee77451521ded983e50ec57be9b0 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Tue, 9 Jan 2024 13:27:35 +0100 Subject: [PATCH] Add a method GitVersion.IsAtLeast --- pkg/commands/git_commands/rebase.go | 4 ++-- pkg/commands/git_commands/version.go | 8 ++++++++ pkg/commands/git_commands/version_test.go | 9 +++++++++ pkg/integration/components/test.go | 2 +- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/pkg/commands/git_commands/rebase.go b/pkg/commands/git_commands/rebase.go index 2dd1ee886..fde049cda 100644 --- a/pkg/commands/git_commands/rebase.go +++ b/pkg/commands/git_commands/rebase.go @@ -221,9 +221,9 @@ func (self *RebaseCommands) PrepareInteractiveRebaseCommand(opts PrepareInteract Arg("--interactive"). Arg("--autostash"). Arg("--keep-empty"). - ArgIf(opts.keepCommitsThatBecomeEmpty && !self.version.IsOlderThan(2, 26, 0), "--empty=keep"). + ArgIf(opts.keepCommitsThatBecomeEmpty && self.version.IsAtLeast(2, 26, 0), "--empty=keep"). Arg("--no-autosquash"). - ArgIf(!self.version.IsOlderThan(2, 22, 0), "--rebase-merges"). + ArgIf(self.version.IsAtLeast(2, 22, 0), "--rebase-merges"). ArgIf(opts.onto != "", "--onto", opts.onto). Arg(opts.baseShaOrRoot). ToArgv() diff --git a/pkg/commands/git_commands/version.go b/pkg/commands/git_commands/version.go index a089d7e06..aab912ba5 100644 --- a/pkg/commands/git_commands/version.go +++ b/pkg/commands/git_commands/version.go @@ -69,3 +69,11 @@ func (v *GitVersion) IsOlderThan(major, minor, patch int) bool { func (v *GitVersion) IsOlderThanVersion(version *GitVersion) bool { return v.IsOlderThan(version.Major, version.Minor, version.Patch) } + +func (v *GitVersion) IsAtLeast(major, minor, patch int) bool { + return !v.IsOlderThan(major, minor, patch) +} + +func (v *GitVersion) IsAtLeastVersion(version *GitVersion) bool { + return v.IsAtLeast(version.Major, version.Minor, version.Patch) +} diff --git a/pkg/commands/git_commands/version_test.go b/pkg/commands/git_commands/version_test.go index 0c57813ef..46b002f60 100644 --- a/pkg/commands/git_commands/version_test.go +++ b/pkg/commands/git_commands/version_test.go @@ -45,3 +45,12 @@ func TestGitVersionIsOlderThan(t *testing.T) { assert.True(t, (&GitVersion{2, 0, 1, ""}).IsOlderThan(2, 1, 0)) assert.True(t, (&GitVersion{2, 0, 1, ""}).IsOlderThan(3, 0, 0)) } + +func TestGitVersionIsAtLeast(t *testing.T) { + assert.True(t, (&GitVersion{2, 0, 0, ""}).IsAtLeast(1, 99, 99)) + assert.True(t, (&GitVersion{2, 0, 0, ""}).IsAtLeast(2, 0, 0)) + assert.True(t, (&GitVersion{2, 1, 0, ""}).IsAtLeast(2, 0, 9)) + + assert.False(t, (&GitVersion{2, 0, 1, ""}).IsAtLeast(2, 1, 0)) + assert.False(t, (&GitVersion{2, 0, 1, ""}).IsAtLeast(3, 0, 0)) +} diff --git a/pkg/integration/components/test.go b/pkg/integration/components/test.go index 41c16ac0d..7a088c80a 100644 --- a/pkg/integration/components/test.go +++ b/pkg/integration/components/test.go @@ -100,7 +100,7 @@ func (self GitVersionRestriction) shouldRunOnVersion(version *git_commands.GitVe if err != nil { panic("Invalid git version string: " + self.from) } - return !version.IsOlderThanVersion(from) + return version.IsAtLeastVersion(from) } if self.before != "" { before, err := git_commands.ParseGitVersion(self.before)