Skip to content

Commit 6dd54c0

Browse files
committed
refactor: Add gitutil.GetHEADRepository()
1 parent dc073c9 commit 6dd54c0

File tree

3 files changed

+21
-16
lines changed

3 files changed

+21
-16
lines changed

cmd/builder/copy.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,14 @@ func (builder *copyBuilder) copyReposList(buildReposMap map[pathutil.ReposPath]*
148148
func (builder *copyBuilder) copyReposGit(repos *lockjson.Repos, buildRepos *buildinfo.Repos, vimExePath string, done chan actionReposResult) (int, error) {
149149
src := pathutil.FullReposPath(repos.Path)
150150

151+
// Open ~/volt/repos/{repos}
152+
r, err := git.PlainOpen(src)
153+
if err != nil {
154+
return 0, errors.New("failed to open repository: " + err.Error())
155+
}
156+
151157
// Show warning when HEAD and locked revision are different
152-
head, err := gitutil.GetHEAD(repos.Path)
158+
head, err := gitutil.GetHEADRepository(r)
153159
if err != nil {
154160
return 0, fmt.Errorf("failed to get HEAD revision of %q: %s", src, err.Error())
155161
}
@@ -160,12 +166,6 @@ func (builder *copyBuilder) copyReposGit(repos *lockjson.Repos, buildRepos *buil
160166
logger.Warn(" Please run 'volt get -l' to update locked revision.")
161167
}
162168

163-
// Open ~/volt/repos/{repos}
164-
r, err := git.PlainOpen(src)
165-
if err != nil {
166-
return 0, errors.New("failed to open repository: " + err.Error())
167-
}
168-
169169
cfg, err := r.Config()
170170
if err != nil {
171171
return 0, errors.New("failed to get repository config: " + err.Error())

cmd/builder/symlink.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,17 @@ func (builder *symlinkBuilder) installRepos(repos *lockjson.Repos, vimExePath st
107107

108108
copied := false
109109
if repos.Type == lockjson.ReposGitType {
110+
// Open a repository to determine it is bare repository or not
111+
r, err := git.PlainOpen(src)
112+
if err != nil {
113+
done <- actionReposResult{
114+
err: fmt.Errorf("repository %q: %s", src, err.Error()),
115+
}
116+
return
117+
}
118+
110119
// Show warning when HEAD and locked revision are different
111-
head, err := gitutil.GetHEAD(repos.Path)
120+
head, err := gitutil.GetHEADRepository(r)
112121
if err != nil {
113122
done <- actionReposResult{
114123
err: fmt.Errorf("failed to get HEAD revision of %q: %s", src, err.Error()),
@@ -122,14 +131,6 @@ func (builder *symlinkBuilder) installRepos(repos *lockjson.Repos, vimExePath st
122131
logger.Warn(" Please run 'volt get -l' to update locked revision.")
123132
}
124133

125-
// Open a repository to determine it is bare repository or not
126-
r, err := git.PlainOpen(src)
127-
if err != nil {
128-
done <- actionReposResult{
129-
err: fmt.Errorf("repository %q: %s", src, err.Error()),
130-
}
131-
return
132-
}
133134
cfg, err := r.Config()
134135
if err != nil {
135136
done <- actionReposResult{
@@ -150,6 +151,7 @@ func (builder *symlinkBuilder) installRepos(repos *lockjson.Repos, vimExePath st
150151
copied = true
151152
}
152153
}
154+
153155
if !copied {
154156
// Make symlinks under vim dir
155157
if err := builder.symlink(src, dst); err != nil {

gitutil/gitutil.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ func GetHEAD(reposPath pathutil.ReposPath) (string, error) {
2222
if err != nil {
2323
return "", err
2424
}
25+
return GetHEADRepository(repos)
26+
}
2527

28+
func GetHEADRepository(repos *git.Repository) (string, error) {
2629
head, err := repos.Head()
2730
if err != nil {
2831
return "", err

0 commit comments

Comments
 (0)