From 2428f2bbf6cdb67f3788ebfe0fa5ee3220a25b2a Mon Sep 17 00:00:00 2001 From: Waleed Khan Date: Sun, 30 Jun 2024 13:40:48 -0700 Subject: [PATCH] feat(submit): support passing `--jobs` This is currently used only by the Phabricator forge, which uses the `git test` infrastructure to run `arc` on several commits at once. I don't know how well it works when an error occurs. --- git-branchless-opts/src/lib.rs | 5 +++++ git-branchless-submit/src/lib.rs | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/git-branchless-opts/src/lib.rs b/git-branchless-opts/src/lib.rs index d7b7dbe38..d269e551f 100644 --- a/git-branchless-opts/src/lib.rs +++ b/git-branchless-opts/src/lib.rs @@ -408,6 +408,11 @@ pub struct SubmitArgs { #[clap(short = 'm', long = "message")] pub message: Option, + /// If the forge supports it, how many jobs to execute in parallel. The + /// value `0` indicates to use all CPUs. + #[clap(short = 'j', long = "jobs")] + pub num_jobs: Option, + /// If the forge supports it and uses a tool that needs access to the /// working copy, what kind of execution strategy to use. #[clap(short = 's', long = "strategy")] diff --git a/git-branchless-submit/src/lib.rs b/git-branchless-submit/src/lib.rs index 278a414ba..6762b3207 100644 --- a/git-branchless-submit/src/lib.rs +++ b/git-branchless-submit/src/lib.rs @@ -192,6 +192,7 @@ pub fn command_main(ctx: CommandContext, args: SubmitArgs) -> EyreExitOr<()> { create, draft, message, + num_jobs, execution_strategy, dry_run, } = args; @@ -204,6 +205,7 @@ pub fn command_main(ctx: CommandContext, args: SubmitArgs) -> EyreExitOr<()> { create, draft, message, + num_jobs, execution_strategy, dry_run, ) @@ -218,6 +220,7 @@ fn submit( create: bool, draft: bool, message: Option, + num_jobs: Option, execution_strategy: Option, dry_run: bool, ) -> EyreExitOr<()> { @@ -253,7 +256,7 @@ fn submit( bisect: false, no_cache: true, interactive: false, - jobs: None, + jobs: num_jobs, verbosity: Verbosity::None, apply_fixes: false, };