aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2018-09-15 00:37:38 +0700
committerShulhan <ms@kilabit.info>2018-09-15 00:37:38 +0700
commit2574021d0d90966f54a436ebdb061905ba95ab50 (patch)
tree2bb1feed5135af2a10a8d60658ea2c69f123e576
parent7517e896ed261567e73df10899ef95913b03f291 (diff)
downloadbeku-2574021d0d90966f54a436ebdb061905ba95ab50.tar.xz
package: get remote branch if its empty
-rw-r--r--package.go7
-rw-r--r--package_git.go21
-rw-r--r--package_test.go41
3 files changed, 46 insertions, 23 deletions
diff --git a/package.go b/package.go
index 54f019a..23fcb31 100644
--- a/package.go
+++ b/package.go
@@ -531,6 +531,13 @@ func (pkg *Package) Update(newPkg *Package) (err error) {
pkg.FullPath = newPkg.FullPath
}
+ if len(pkg.RemoteBranch) == 0 {
+ err = pkg.gitGetBranch()
+ if err != nil {
+ return
+ }
+ }
+
switch pkg.vcsMode {
case VCSModeGit:
err = pkg.gitUpdate(newPkg)
diff --git a/package_git.go b/package_git.go
index ba538fa..6247916 100644
--- a/package_git.go
+++ b/package_git.go
@@ -57,6 +57,13 @@ func (pkg *Package) gitInstall() (err error) {
}
}
+ if len(pkg.RemoteBranch) == 0 {
+ err = pkg.gitGetBranch()
+ if err != nil {
+ return
+ }
+ }
+
if pkg.isTag {
err = git.CheckoutRevision(pkg.FullPath, pkg.RemoteName,
pkg.RemoteBranch, pkg.Version)
@@ -138,12 +145,18 @@ func (pkg *Package) gitUpdate(newPkg *Package) (err error) {
if err != nil {
return
}
+
+ err = git.FetchAll(pkg.FullPath)
+ if err != nil {
+ return
+ }
}
- err = git.FetchAll(pkg.FullPath)
- if err != nil {
- err = fmt.Errorf("gitUpdate: %s", err)
- return
+ if len(pkg.RemoteBranch) == 0 {
+ err = pkg.gitGetBranch()
+ if err != nil {
+ return
+ }
}
err = git.CheckoutRevision(pkg.FullPath, pkg.RemoteName,
diff --git a/package_test.go b/package_test.go
index 8bda079..7ae665f 100644
--- a/package_test.go
+++ b/package_test.go
@@ -560,11 +560,12 @@ func testUpdate(t *testing.T) {
RemoteURL: testGitRepoSrcLocal,
},
expPkg: &Package{
- vcsMode: VCSModeGit,
- ImportPath: testGitRepo,
- FullPath: filepath.Join(testEnv.dirSrc, testGitRepo),
- RemoteName: gitDefRemoteName,
- RemoteURL: testGitRepoSrcLocal,
+ vcsMode: VCSModeGit,
+ ImportPath: testGitRepo,
+ FullPath: filepath.Join(testEnv.dirSrc, testGitRepo),
+ RemoteName: gitDefRemoteName,
+ RemoteURL: testGitRepoSrcLocal,
+ RemoteBranch: "master",
},
}, {
desc: "Update version",
@@ -585,13 +586,14 @@ func testUpdate(t *testing.T) {
isTag: true,
},
expPkg: &Package{
- vcsMode: VCSModeGit,
- ImportPath: testGitRepo,
- FullPath: filepath.Join(testEnv.dirSrc, testGitRepo),
- RemoteName: gitDefRemoteName,
- RemoteURL: testGitRepoSrcLocal,
- Version: "v0.1.0",
- isTag: true,
+ vcsMode: VCSModeGit,
+ ImportPath: testGitRepo,
+ FullPath: filepath.Join(testEnv.dirSrc, testGitRepo),
+ RemoteName: gitDefRemoteName,
+ RemoteURL: testGitRepoSrcLocal,
+ RemoteBranch: "master",
+ Version: "v0.1.0",
+ isTag: true,
},
}, {
desc: "Update version back",
@@ -612,13 +614,14 @@ func testUpdate(t *testing.T) {
isTag: true,
},
expPkg: &Package{
- vcsMode: VCSModeGit,
- ImportPath: testGitRepo,
- FullPath: filepath.Join(testEnv.dirSrc, testGitRepo),
- RemoteName: gitDefRemoteName,
- RemoteURL: testGitRepoSrcLocal,
- Version: "c9f69fb",
- isTag: false,
+ vcsMode: VCSModeGit,
+ ImportPath: testGitRepo,
+ FullPath: filepath.Join(testEnv.dirSrc, testGitRepo),
+ RemoteName: gitDefRemoteName,
+ RemoteURL: testGitRepoSrcLocal,
+ RemoteBranch: "master",
+ Version: "c9f69fb",
+ isTag: false,
},
}}