summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2020-03-30 20:48:29 +0200
committerStefan Majewsky <majewsky@gmx.net>2020-03-30 20:48:29 +0200
commite962f86b50215af4486bd73155c603e715ce1ab1 (patch)
treea910b8c9141f0fd90f09953d50d683986d4ee32c
parent0361bc3af31a06ec64adeab0ca2d1534a1c35ed0 (diff)
downloadgofu-e962f86b50215af4486bd73155c603e715ce1ab1.tar.gz
rtree index: reformat remote URLs into their compact formsv2020.1
-rw-r--r--internal/rtree/main.go10
-rw-r--r--internal/rtree/repo.go15
2 files changed, 25 insertions, 0 deletions
diff --git a/internal/rtree/main.go b/internal/rtree/main.go
index de92ead..f401ced 100644
--- a/internal/rtree/main.go
+++ b/internal/rtree/main.go
@@ -125,10 +125,20 @@ func commandDrop(index *Index, url string) error {
}
func commandIndex(index *Index) error {
+ //rebuild index (may delete index entries or restore repos from index entries)
err := index.Rebuild()
if err != nil {
return err
}
+
+ //shorten all actually-installed remote URLs into their compact forms
+ for _, repo := range index.Repos {
+ err := repo.ReformatRemoteURLs()
+ if err != nil {
+ return err
+ }
+ }
+
return index.Write()
}
diff --git a/internal/rtree/repo.go b/internal/rtree/repo.go
index 8529bfa..59f3811 100644
--- a/internal/rtree/repo.go
+++ b/internal/rtree/repo.go
@@ -223,3 +223,18 @@ func (r *Repo) Move(checkoutPath string, makeSymlink bool) error {
}
return nil
}
+
+//ReformatRemoteURLs rewrites the remote URLs in this repo's .git/config into
+//their compact forms.
+func (r Repo) ReformatRemoteURLs() error {
+ for _, remote := range r.Remotes {
+ err := cli.Interface.Run(cli.Command{
+ Program: []string{"git", "remote", "set-url", remote.Name, remote.URL.CompactURL()},
+ WorkDir: r.AbsolutePath(),
+ })
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}