diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dfe491b075b8..098bae6c13c85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## v0.8.1 (2018-09-10) +- Fix issue where changes were not pulled when tracking a branch (issue #567) + ## v0.8.0 (2018-09-04) ### Notes about upgrading from v0.7 diff --git a/VERSION b/VERSION index a3df0a6959e15..6f4eebdf6f68f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.8.0 +0.8.1 diff --git a/reposerver/repository/repository.go b/reposerver/repository/repository.go index f6c0c43b526e5..57c09e0b54508 100644 --- a/reposerver/repository/repository.go +++ b/reposerver/repository/repository.go @@ -82,7 +82,7 @@ func (s *Service) ListDir(ctx context.Context, q *ListDirRequest) (*FileList, er return &res, nil } - err = checkoutRevision(gitClient, q.Revision) + err = checkoutRevision(gitClient, commitSHA) if err != nil { return nil, err } @@ -116,7 +116,11 @@ func (s *Service) GetFile(ctx context.Context, q *GetFileRequest) (*GetFileRespo if err != nil { return nil, err } - err = checkoutRevision(gitClient, q.Revision) + commitSHA, err := gitClient.LsRemote(q.Revision) + if err != nil { + return nil, err + } + err = checkoutRevision(gitClient, commitSHA) if err != nil { return nil, err } @@ -165,7 +169,7 @@ func (s *Service) GenerateManifest(c context.Context, q *ManifestRequest) (*Mani log.Infof("manifest cache miss: %s", cacheKey) } - err = checkoutRevision(gitClient, q.Revision) + err = checkoutRevision(gitClient, commitSHA) if err != nil { return nil, err } @@ -280,16 +284,12 @@ func IdentifyAppSourceTypeByAppPath(appFilePath string) AppSourceType { } // checkoutRevision is a convenience function to initialize a repo, fetch, and checkout a revision -func checkoutRevision(gitClient git.Client, revision string) error { +func checkoutRevision(gitClient git.Client, commitSHA string) error { err := gitClient.Fetch() if err != nil { return err } - err = gitClient.Reset() - if err != nil { - log.Warn(err) - } - err = gitClient.Checkout(revision) + err = gitClient.Checkout(commitSHA) if err != nil { return err } diff --git a/util/git/client.go b/util/git/client.go index 388146083fda5..3ad04c23a12a5 100644 --- a/util/git/client.go +++ b/util/git/client.go @@ -136,7 +136,7 @@ func (m *nativeGitClient) setCredentials() error { func (m *nativeGitClient) Fetch() error { var err error log.Debugf("Fetching repo %s at %s", m.repoURL, m.root) - if _, err = m.runCmd("git", "fetch", "origin", "--tags"); err != nil { + if _, err = m.runCmd("git", "fetch", "origin", "--tags", "--force"); err != nil { return err } // git fetch does not update the HEAD reference. The following command will update the local @@ -192,7 +192,10 @@ func (m *nativeGitClient) Checkout(revision string) error { if revision == "" || revision == "HEAD" { revision = "origin/HEAD" } - if _, err := m.runCmd("git", "checkout", revision); err != nil { + if _, err := m.runCmd("git", "checkout", "--force", revision); err != nil { + return err + } + if _, err := m.runCmd("git", "clean", "-fd"); err != nil { return err } return nil