diff options
| author | Shulhan <ms@kilabit.info> | 2018-09-15 00:37:38 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2018-09-15 00:37:38 +0700 |
| commit | 2574021d0d90966f54a436ebdb061905ba95ab50 (patch) | |
| tree | 2bb1feed5135af2a10a8d60658ea2c69f123e576 | |
| parent | 7517e896ed261567e73df10899ef95913b03f291 (diff) | |
| download | beku-2574021d0d90966f54a436ebdb061905ba95ab50.tar.xz | |
package: get remote branch if its empty
| -rw-r--r-- | package.go | 7 | ||||
| -rw-r--r-- | package_git.go | 21 | ||||
| -rw-r--r-- | package_test.go | 41 |
3 files changed, 46 insertions, 23 deletions
@@ -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, }, }} |
