vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software:2222/vole.git
A free and open-source forge that lives in your Git repo.
refactor
c5902451905acdaa478f8476844ccd4a510d9ca9 · Keenan Nemetz · 17d ago · parent ec2aba4b
cmd/vole/release.go +4−4
| @@ -2,10 +2,11 @@ package main | |||
| 2 | 2 | ||
| 3 | 3 | import ( | |
| 4 | 4 | "bytes" | |
| 5 | "errors" | ||
| 6 | 5 | "fmt" | |
| 7 | 6 | "os/exec" | |
| 8 | 7 | "strings" | |
| 8 | |||
| 9 | "github.com/rodent-software/vole/client" | ||
| 9 | 10 | ) | |
| 10 | 11 | ||
| 11 | 12 | // releaseCLI creates the one thing a release is: an annotated tag. | |
| @@ -73,11 +74,10 @@ func cmdReleaseCreate(args []string) error { | |||
| 73 | 74 | "An annotated tag with an empty message is a bare tag; use git tag %s if that is what you want", name) | |
| 74 | 75 | } | |
| 75 | 76 | ||
| 76 | out, err := exec.Command("git", "rev-parse", "--absolute-git-dir").Output() | ||
| 77 | dir, err := client.CurrentGitDir() | ||
| 77 | 78 | if err != nil { | |
| 78 | return errors.New("not inside a git repository") | ||
| 79 | return err | ||
| 79 | 80 | } | |
| 80 | dir := strings.TrimSpace(string(out)) | ||
| 81 | 81 | ||
| 82 | 82 | // git refuses the tag too, but its message ("already exists") does not say | |
| 83 | 83 | // that the existing tag is what the web is already serving. | |