summaryrefslogtreecommitdiffstats
path: root/pkg/commands
diff options
context:
space:
mode:
authorStefan Haller <stefan@haller-berlin.de>2023-07-24 12:29:42 +0200
committerStefan Haller <stefan@haller-berlin.de>2023-07-31 11:38:52 +0200
commitd41a195ee6202b5754ba0e996f67a18675b85302 (patch)
tree1061fa26233c7efbfdf046b0715ccf191e5f271c /pkg/commands
parent71d2fd37e2ff8214d5af3135ab3a355971789dc2 (diff)
Allow force-tagging if tag exists
Diffstat (limited to 'pkg/commands')
-rw-r--r--pkg/commands/git_commands/tag.go18
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()