From 299a181477322181573d6014c995c2e1db05c844 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Fri, 11 Oct 2024 03:40:57 +0200 Subject: [PATCH] ci/request-reviews: Fix for branches starting with "pr" Turns out if : is passed, a local branch is updated, which can conflict if the PR branch starts with "pr". I tried to avoid that with the original code but apparently that didn't work! https://github.com/NixOS/nixpkgs/actions/runs/11284183639/job/31384967152?pr=347822 Fetching the PR commit history From https://github.com/linj-fork/nixpkgs * [new branch] pr/kanata-add-version-check -> fork/pr error: cannot lock ref 'refs/remotes/fork/pr/kanata-add-version-check': 'refs/remotes/fork/pr' exists; cannot create 'refs/remotes/fork/pr/kanata-add-version-check' ! [new branch] pr/kanata-add-version-check -> fork/pr/kanata-add-version-check (unable to update local ref) error: some local refs could not be updated; try running --- ci/request-reviews/request-reviews.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ci/request-reviews/request-reviews.sh b/ci/request-reviews/request-reviews.sh index a70a95a65b3a..8a3d78a50d5f 100755 --- a/ci/request-reviews/request-reviews.sh +++ b/ci/request-reviews/request-reviews.sh @@ -60,10 +60,9 @@ git -C "$tmp/nixpkgs.git" remote add fork https://github.com/"$prRepo".git git -C "$tmp/nixpkgs.git" config remote.fork.partialclonefilter tree:0 git -C "$tmp/nixpkgs.git" config remote.fork.promisor true -# This should not conflict with any refs in Nixpkgs -headRef=refs/remotes/fork/pr -# Only fetch into a remote ref, because the local ref namespace is used by Nixpkgs, don't want any conflicts -git -C "$tmp/nixpkgs.git" fetch --no-tags fork "$prBranch":"$headRef" +# Our local branches mirror Nixpkgs, so make sure to not try to update any to avoid conflicts +git -C "$tmp/nixpkgs.git" fetch --no-tags fork "$prBranch" +headRef=$(git -C "$tmp/nixpkgs.git" rev-parse HEAD) log "Checking correctness of the base branch" if ! "$SCRIPT_DIR"/verify-base-branch.sh "$tmp/nixpkgs.git" "$headRef" "$baseRepo" "$baseBranch" "$prRepo" "$prBranch" | tee "$tmp/invalid-base-error" >&2; then