remote-helper: Prevent doubly verifying each push

The context of the invocation of `git push` "internally" by the
remote helper is the same as by the user invoking `git push` most
of the time. That is, these pushes run within the same repository,
thus the configuration for pre-push hooks applies to both. This
leads to every push being verified *twice*.

If the user intends to configure pre-push hooks, then they would
do that on the remote with URL `rad://…`, and so the hook would
be executed before `git-remote-rad` even gets called.

We thus specify `--no-verify` to not verify again.
This commit is contained in:
Lorenz Leutgeb 2025-09-11 10:02:51 +02:00 committed by Fintan Halpenny
parent a0f6cbf5f1
commit 379037956a
1 changed files with 12 additions and 2 deletions

View File

@ -890,8 +890,18 @@ fn push_ref(
// This happens during the `list for-push` phase.
let refspec = git::Refspec { src, dst, force };
let repo = working.workdir().unwrap_or_else(|| working.path());
let mut args = vec!["push".to_string()];
let mut args = vec![
"push".to_string(),
// This push is "internal" from the point of view of the user.
// If they want to run a pre-push hook, then they would configure
// this on their remote, and the hook would run before we get here.
// However, the context of this invocation of `git push` is
// the same repository, so if the user has configured a pre-push
// hook it would run twice, which is not what we want, so set this
// option.
"--no-verify".to_string(),
];
let verbosity: git::Verbosity = verbosity.into();
args.extend(verbosity.into_flag());