commit: c852e4cb0089da63776d0b5939eadd1180da7080 Author: Magnus Granberg <zorry <AT> gentoo <DOT> org> AuthorDate: Sat Mar 20 13:41:42 2021 +0000 Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org> CommitDate: Sat Mar 20 13:41:42 2021 +0000 URL: https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=c852e4cb
Fix gitpull back to origin Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org> buildbot_gentoo_ci/steps/update_db.py | 45 +++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/buildbot_gentoo_ci/steps/update_db.py b/buildbot_gentoo_ci/steps/update_db.py index bfcd2ef..d35a967 100644 --- a/buildbot_gentoo_ci/steps/update_db.py +++ b/buildbot_gentoo_ci/steps/update_db.py @@ -65,7 +65,7 @@ class CheckPath(BuildStep): def run(self): self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] self.repository_basedir = self.gentooci.config.project['repository_basedir'] - self.portage_path = 'portage' + self.portage_path = yield os.path.join('etc', 'portage') self.profile_path = yield os.path.join(self.portage_path, 'make.profile') self.repos_path = yield os.path.join(self.portage_path, 'repos.conf') print(os.getcwd()) @@ -74,10 +74,11 @@ class CheckPath(BuildStep): success = True print(os.getcwd()) for x in [ - self.profile_path, - self.repos_path, - self.repository_basedir - ]: + self.portage_path, + self.profile_path, + self.repos_path, + self.repository_basedir + ]: if not os.path.isdir(x): os.makedirs(x) return SUCCESS @@ -96,48 +97,52 @@ class UpdateRepos(BuildStep): # Origin: https://github.com/MichaelBoselowitz/pygit2-examples/blob/master/examples.py#L54 # Modifyed by Gentoo Authors. - @defer.inlineCallbacks def gitPull(self, repo, remote_name='origin', branch='master'): for remote in repo.remotes: if remote.name == remote_name: - yield remote.fetch() - remote_master_id = yield repo.lookup_reference('refs/remotes/origin/%s' % (branch)).target - merge_result, _ = yield repo.merge_analysis(remote_master_id) + remote.fetch() + remote_master_id = repo.lookup_reference('refs/remotes/origin/%s' % (branch)).target + print(remote_master_id) + merge_result, _ = repo.merge_analysis(remote_master_id) + print(merge_result) # Up to date, do nothing if merge_result & pygit2.GIT_MERGE_ANALYSIS_UP_TO_DATE: + print('UP_TO_DATE') return # We can just fastforward elif merge_result & pygit2.GIT_MERGE_ANALYSIS_FASTFORWARD: - yield repo.checkout_tree(repo.get(remote_master_id)) + print('FASTFORWARD') + repo.checkout_tree(repo.get(remote_master_id)) try: - master_ref = yield repo.lookup_reference('refs/heads/%s' % (branch)) - yield master_ref.set_target(remote_master_id) + master_ref = repo.lookup_reference('refs/heads/%s' % (branch)) + master_ref.set_target(remote_master_id) except KeyError: - yield repo.create_branch(branch, repo.get(remote_master_id)) - yield repo.head.set_target(remote_master_id) + repo.create_branch(branch, repo.get(remote_master_id)) + repo.head.set_target(remote_master_id) elif merge_result & pygit2.GIT_MERGE_ANALYSIS_NORMAL: - yield repo.merge(remote_master_id) - + print('NORMAL') + repo.merge(remote_master_id) if repo.index.conflicts is not None: for conflict in repo.index.conflicts: print('Conflicts found in:', conflict[0].path) raise AssertionError('Conflicts, ahhhhh!!') - user = yield repo.default_signature - tree = yield repo.index.write_tree() - commit = yield repo.create_commit('HEAD', + user = repo.default_signature + tree = repo.index.write_tree() + commit = repo.create_commit('HEAD', user, user, 'Merge!', tree, [repo.head.target, remote_master_id]) # We need to do this or git CLI will think we are still merging. - yield repo.state_cleanup() + repo.state_cleanup() else: raise AssertionError('Unknown merge analysis result') @defer.inlineCallbacks def run(self): + #FIXME check HEAD agenst local and worker local tree so we don't gitpull evrytime self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] self.repository_basedir = self.gentooci.config.project['repository_basedir'] self.profile_repository_path = yield os.path.join(self.repository_basedir, self.getProperty("profile_repository_data")['name'])