From 416cd66e296d9bd726fc5fe426bcd2bdf7922117 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 21 Mar 2021 04:23:04 +0100 Subject: [PATCH] maintainers/scripts/update.nix: Ensure the worktree is clean MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When an update script fails, it might still modify the source tree. These changes would then be committed in the next update attempt. Let’s make sure the worktree is clean before updating to avoid that. --- maintainers/scripts/update.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/maintainers/scripts/update.py b/maintainers/scripts/update.py index 8cc2bcbd67c9..eb26a472e926 100644 --- a/maintainers/scripts/update.py +++ b/maintainers/scripts/update.py @@ -39,6 +39,9 @@ async def run_update_script(nixpkgs_root: str, merge_lock: asyncio.Lock, temp_di if temp_dir is not None: worktree, _branch = temp_dir + # Ensure the worktree is clean before update. + await check_subprocess('git', 'reset', '--hard', '--quiet', 'HEAD', cwd=worktree) + # Update scripts can use $(dirname $0) to get their location but we want to run # their clones in the git worktree, not in the main nixpkgs repo. update_script_command = map(lambda arg: re.sub(r'^{0}'.format(re.escape(nixpkgs_root)), worktree, arg), update_script_command)