fix is_dirty when switching branch with updated (#36162)

* clean

* fix
This commit is contained in:
Maxime Desroches
2025-09-18 00:07:06 -07:00
committed by GitHub
parent b622e3e0a7
commit 30c388aea8
2 changed files with 6 additions and 3 deletions
+2
View File
@@ -113,6 +113,7 @@ def setup_git_options(cwd: str) -> None:
("protocol.version", "2"),
("gc.auto", "0"),
("gc.autoDetach", "false"),
("remote.origin.fetch", "+refs/heads/*:refs/remotes/origin/*"),
]
for option, value in git_cfg:
run(["git", "config", option, value], cwd)
@@ -389,6 +390,7 @@ class Updater:
cloudlog.info("git reset in progress")
cmds = [
["git", "checkout", "--force", "--no-recurse-submodules", "-B", branch, "FETCH_HEAD"],
["git", "branch", "--set-upstream-to", f"origin/{branch}"],
["git", "reset", "--hard"],
["git", "clean", "-xdff"],
["git", "submodule", "sync"],
+4 -3
View File
@@ -37,9 +37,7 @@ def is_prebuilt(path: str = BASEDIR) -> bool:
@cache
def is_dirty(cwd: str = BASEDIR) -> bool:
origin = get_origin()
branch = get_branch()
if not origin or not branch:
if not get_origin() or not get_short_branch():
return True
dirty = False
@@ -52,6 +50,9 @@ def is_dirty(cwd: str = BASEDIR) -> bool:
except subprocess.CalledProcessError:
pass
branch = get_branch()
if not branch:
return True
dirty = (subprocess.call(["git", "diff-index", "--quiet", branch, "--"], cwd=cwd)) != 0
except subprocess.CalledProcessError:
cloudlog.exception("git subprocess failed while checking dirty")