From 5e2f32fe1398ba1dbdee81a248ab88d6f269002d Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 5 Dec 2020 22:57:19 -0500 Subject: [PATCH] init: reset hard to --repo-rev When updating the tracking ref to whatever the user requested, make sure we reset state completely rather than trying to update the ref to it. This avoids confusing git as to the current state of the tree, and is more inline with user intentions: if they made a local change to the checkout, but ran repo init with a specific rev, we shouldn't stay wedged forever until they manually clean it all up. Bug: https://crbug.com/gerrit/12801 Change-Id: Ieba8d9c15781b4d0649bf01c7460694da63387b2 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/290923 Reviewed-by: Michael Mortensen Tested-by: Mike Frysinger --- subcmds/init.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subcmds/init.py b/subcmds/init.py index f46babfe..af3685a0 100644 --- a/subcmds/init.py +++ b/subcmds/init.py @@ -521,7 +521,7 @@ to update the working directory files. rp.gitdir, opt.repo_rev, repo_verify=opt.repo_verify, quiet=opt.quiet) branch = rp.GetBranch('default') branch.merge = remote_ref - rp.work_git.update_ref('refs/heads/default', rev) + rp.work_git.reset('--hard', rev) branch.Save() if opt.worktree: