Skip to content

BLD: update merge script to update on github #15917

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Apr 7, 2017
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 49 additions & 2 deletions scripts/merge-py.py → scripts/merge-pr.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,14 @@ def continue_maybe(prompt):
fail("Okay, exiting")


def continue_maybe2(prompt):
result = input("\n%s (y/n): " % prompt)
if result.lower() != "y":
return False
else:
return True


original_head = run_cmd("git rev-parse HEAD")[:8]


Expand Down Expand Up @@ -193,6 +201,40 @@ def merge_pr(pr_num, target_ref):
return merge_hash


def update_pr(pr_num, user_login, base_ref):

pr_branch_name = "%s_MERGE_PR_%s" % (BRANCH_PREFIX, pr_num)

run_cmd("git fetch %s pull/%s/head:%s" % (PR_REMOTE_NAME, pr_num,
pr_branch_name))
run_cmd("git checkout %s" % pr_branch_name)

continue_maybe("Update ready (local ref %s)? Push to %s/%s?" % (
pr_branch_name, user_login, base_ref))

push_user_remote = "https://github.com/%s/pandas.git" % user_login

try:
run_cmd('git push %s %s:%s' % (push_user_remote, pr_branch_name,
base_ref))
except Exception as e:

if continue_maybe2("Force push?"):
try:
run_cmd(
'git push -f %s %s:%s' % (push_user_remote, pr_branch_name,
base_ref))
except Exception as e:
fail("Exception while pushing: %s" % e)
clean_up()
else:
fail("Exception while pushing: %s" % e)
clean_up()

clean_up()
print("Pull request #%s updated!" % pr_num)


def cherry_pick(pr_num, merge_hash, default_branch):
pick_ref = input("Enter a branch name [%s]: " % default_branch)
if pick_ref == "":
Expand Down Expand Up @@ -257,8 +299,13 @@ def fix_version_from_branch(branch, versions):
print("\n=== Pull Request #%s ===" % pr_num)
print("title\t%s\nsource\t%s\ntarget\t%s\nurl\t%s"
% (title, pr_repo_desc, target_ref, url))
continue_maybe("Proceed with merging pull request #%s?" % pr_num)
continue_maybe("Proceed with updating or merging pull request #%s?" % pr_num)

merged_refs = [target_ref]

merge_hash = merge_pr(pr_num, target_ref)
update = continue_maybe2("Update PR and push to github (y) or merge locally (n)?")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's make this explicity, maybe r (remote) or l (local) or q/n to do nothing.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any thoughts on this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's good, will upate


if update:
merge_hash = update_pr(pr_num, user_login, base_ref)
else:
merge_hash = merge_pr(pr_num, target_ref)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing an else block? or an elif update == 'n'?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh nevermind, that's do nothing :)