Skip to content

Commit

Permalink
gofed tools: add --merge-master to run 'git merge master' on selected…
Browse files Browse the repository at this point in the history
… branches
  • Loading branch information
ingvagabund committed Jul 25, 2015
1 parent 24ac17e commit 3900918
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 7 deletions.
41 changes: 34 additions & 7 deletions modules/Tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,22 @@ def runGitReset(self, branch):
else:
return runCommand("git reset --hard remotes/origin/%s" % branch)

def runGitMerge(self, branch):
"""
Run 'git merge BRANCH'.
It returns so, se, rc triple.
"""
if self.debug == True:
print "Running 'git merge %s'" % branch

if self.dry == True:
so = ""
se = ""
rc = 0
return so, se, rc
else:
return runCommand("git merge %s" % branch)

def runBodhiOverride(self, branch, name):
"""
Run 'bodhi --buildroot-override=BUILD for TAG --duration=DURATION --notes=NOTES'.
Expand Down Expand Up @@ -327,6 +343,13 @@ def updateBranch(self, branch):

return ""

def mergeMaster(self):
so, se, rc = self.llc.runGitMerge("master")
if rc != 0 or se != "":
return se

return ""

def overrideBuild(self, branch, name):
so, se, rc = self.llc.runBodhiOverride(branch, name)
if rc != 0 or se != "":
Expand Down Expand Up @@ -625,6 +648,11 @@ def cherryPickMaster(self, branches, verbose=True, start_commit="", depth=20):
for commit in gcp_commits:
print commit

def mergeMaster(self, branches, verbose=True):
print "Merging branches: %s" % ",".join(branches)

err = []

for branch in branches:
if branch == "master":
continue
Expand All @@ -640,14 +668,13 @@ def cherryPickMaster(self, branches, verbose=True, start_commit="", depth=20):
if verbose:
print "Switched to %s branch" % branch

for commit in gcp_commits:
_, se, rc = self.llc.runGitCherryPick(commit)
if rc != 0:
err.append("%s: unable to cherry pick master: %s" % (branch, se))
if verbose:
print err[-1]
se = self.sc.mergeMaster()
if se != "":
err.append("%s: unable to git merge master: %s" % (branch, se))
if verbose:
print err[-1]

return err
return err

return err

Expand Down
7 changes: 7 additions & 0 deletions tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
help = SH if sln else "git cherry-pick master all branches"
)

parser.add_option(
"", "", "--merge-master", dest="mergemaster", action = "store_true", default = False,
help = SH if sln else "git merge master all branches"
)

parser.add_option(
"", "", "--git-reset", dest="greset", action = "store_true", default = False,
help = SH if sln else "git reset --hard all branches to remotes/origin/*"
Expand Down Expand Up @@ -131,6 +136,8 @@
err = mc.cherryPickMaster(branches, start_commit=options.commit, verbose=options.debug)
if err != []:
print "\n".join(err)
if options.mergemaster:
mc.mergeMaster(branches)
if options.greset:
mc.resetBranchesToOrigin(branches)
if options.pull:
Expand Down

0 comments on commit 3900918

Please sign in to comment.