aboutsummaryrefslogtreecommitdiff
path: root/internal/rtree/index.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rtree/index.go')
-rw-r--r--internal/rtree/index.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/internal/rtree/index.go b/internal/rtree/index.go
index b802ef8..226689a 100644
--- a/internal/rtree/index.go
+++ b/internal/rtree/index.go
@@ -128,8 +128,7 @@ func (i *Index) Rebuild() error {
//check if existing index entries are still checked out
var newRepos []*Repo
for _, repo := range i.Repos {
- gitDirPath := filepath.Join(repo.AbsolutePath(), ".git")
- fi, err := os.Stat(gitDirPath)
+ fi, err := os.Stat(repo.GitDirPath())
switch {
case err == nil:
// in a normal repo .git is a directory but when the repo is a submodule of another repo
@@ -139,7 +138,7 @@ func (i *Index) Rebuild() error {
newRepos = append(newRepos, repo)
continue
}
- return fmt.Errorf("expected repository at %s, but is not a directory or file", gitDirPath)
+ return fmt.Errorf("expected repository at %s, but is not a directory or file", repo.GitDirPath())
case !os.IsNotExist(err):
return err
}
@@ -227,7 +226,8 @@ func (i *Index) FindRepo(rawRemoteURL string, allowClone bool) (*Repo, error) {
for _, repo := range i.Repos {
isCandidate := false
for _, remote := range repo.Remotes {
- if remoteURL == remote.URL {
+ // be flexible about .git ending in remote
+ if remoteURL == remote.URL || remoteURL+".git" == remote.URL || remoteURL == remote.URL+".git" {
return repo, nil
}
if basename == path.Base(remote.URL.CanonicalURL()) {