From e962f86b50215af4486bd73155c603e715ce1ab1 Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Mon, 30 Mar 2020 20:48:29 +0200 Subject: rtree index: reformat remote URLs into their compact forms --- internal/rtree/main.go | 10 ++++++++++ internal/rtree/repo.go | 15 +++++++++++++++ 2 files changed, 25 insertions(+) (limited to 'internal') 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 +} -- cgit v1.3.1