diff options
author | Stefan Haller <stefan@haller-berlin.de> | 2023-07-24 12:29:42 +0200 |
---|---|---|
committer | Stefan Haller <stefan@haller-berlin.de> | 2023-07-31 11:38:52 +0200 |
commit | d41a195ee6202b5754ba0e996f67a18675b85302 (patch) | |
tree | 1061fa26233c7efbfdf046b0715ccf191e5f271c /pkg/commands | |
parent | 71d2fd37e2ff8214d5af3135ab3a355971789dc2 (diff) |
Allow force-tagging if tag exists
Diffstat (limited to 'pkg/commands')
-rw-r--r-- | pkg/commands/git_commands/tag.go | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/pkg/commands/git_commands/tag.go b/pkg/commands/git_commands/tag.go index fb87db3b9..2517ce380 100644 --- a/pkg/commands/git_commands/tag.go +++ b/pkg/commands/git_commands/tag.go @@ -12,16 +12,19 @@ func NewTagCommands(gitCommon *GitCommon) *TagCommands { } } -func (self *TagCommands) CreateLightweight(tagName string, ref string) error { - cmdArgs := NewGitCmd("tag").Arg("--", tagName). +func (self *TagCommands) CreateLightweight(tagName string, ref string, force bool) error { + cmdArgs := NewGitCmd("tag"). + ArgIf(force, "--force"). + Arg("--", tagName). ArgIf(len(ref) > 0, ref). ToArgv() return self.cmd.New(cmdArgs).Run() } -func (self *TagCommands) CreateAnnotated(tagName, ref, msg string) error { +func (self *TagCommands) CreateAnnotated(tagName, ref, msg string, force bool) error { cmdArgs := NewGitCmd("tag").Arg(tagName). + ArgIf(force, "--force"). ArgIf(len(ref) > 0, ref). Arg("-m", msg). ToArgv() @@ -29,6 +32,15 @@ func (self *TagCommands) CreateAnnotated(tagName, ref, msg string) error { return self.cmd.New(cmdArgs).Run() } +func (self *TagCommands) HasTag(tagName string) bool { + cmdArgs := NewGitCmd("show-ref"). + Arg("--tags", "--quiet", "--verify", "--"). + Arg("refs/tags/" + tagName). + ToArgv() + + return self.cmd.New(cmdArgs).Run() == nil +} + func (self *TagCommands) Delete(tagName string) error { cmdArgs := NewGitCmd("tag").Arg("-d", tagName). ToArgv() |