From b31704fa68c712bbcb587d5ea583de5bfadb8c62 Mon Sep 17 00:00:00 2001 From: Muir Manders Date: Mon, 13 Mar 2023 21:33:40 -0700 Subject: [PATCH] pr submit: prefer default-push when pushing commits Summary: If a user cloned the upstream repo then added their fork as "default-push", we would still try pushing commits to the "default" upstream repo. With this change, we prefer "default-push" when pushing commits. Reviewed By: zzl0 Differential Revision: D43919071 fbshipit-source-id: fc1ab73ba8ff0b5aee3e34fdf92f8969b9269650 --- eden/scm/edenscm/ext/github/__init__.py | 12 +++++++++++- eden/scm/edenscm/ext/github/submit.py | 6 +++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/eden/scm/edenscm/ext/github/__init__.py b/eden/scm/edenscm/ext/github/__init__.py index eeea7c6b5a..001768647a 100644 --- a/eden/scm/edenscm/ext/github/__init__.py +++ b/eden/scm/edenscm/ext/github/__init__.py @@ -113,7 +113,17 @@ subcmd = pull_request_command.subcommand( ], ) def submit_cmd(ui, repo, *args, **opts): - """create or update GitHub pull requests from local commits""" + """create or update GitHub pull requests from local commits + + Commit(s) will be pushed to ``default-push``, if configured, else + ``default`` (see :prog:`help urls` and :prog:`help path`). + + Pull request(s) will be created against ``default``. If + ``default`` is a fork, they will be created against default's + upstream repository. + + Returns 0 on success. + """ return submit.submit(ui, repo, *args, **opts) diff --git a/eden/scm/edenscm/ext/github/submit.py b/eden/scm/edenscm/ext/github/submit.py index 552d00a397..56531e2777 100644 --- a/eden/scm/edenscm/ext/github/submit.py +++ b/eden/scm/edenscm/ext/github/submit.py @@ -160,7 +160,7 @@ async def update_commits_in_stack( if not partitions: ui.status_err(_("no commits to submit\n")) return 0 - origin = get_origin(ui) + origin = get_push_origin(ui) use_placeholder_strategy = ui.configbool("github", "placeholder-strategy") if use_placeholder_strategy: params = await create_placeholder_strategy_params( @@ -612,12 +612,12 @@ async def get_repository_for_origin(origin: str, hostname: str) -> Repository: return await get_repo(hostname, origin_owner, origin_name) -def get_origin(ui) -> str: +def get_push_origin(ui) -> str: test_url = os.environ.get("SL_TEST_GH_URL") if test_url: origin = test_url else: - origin = ui.config("paths", "default") + origin = ui.expandpath("default-push", "default") if origin: return origin else: