diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2020-03-30 20:48:29 +0200 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2020-03-30 20:48:29 +0200 |
| commit | e962f86b50215af4486bd73155c603e715ce1ab1 (patch) | |
| tree | a910b8c9141f0fd90f09953d50d683986d4ee32c | |
| parent | 0361bc3af31a06ec64adeab0ca2d1534a1c35ed0 (diff) | |
| download | gofu-e962f86b50215af4486bd73155c603e715ce1ab1.tar.gz | |
rtree index: reformat remote URLs into their compact formsv2020.1
| -rw-r--r-- | internal/rtree/main.go | 10 | ||||
| -rw-r--r-- | internal/rtree/repo.go | 15 |
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 +} |
