Homec4science

In Drydock, don't reset current branch to point at unrelated commit

Authored by epriestley <git@epriestley.com> on Dec 22 2015, 15:09.

Description

In Drydock, don't reset current branch to point at unrelated commit

Summary:
Fixes T10037. When we're building commit aabbccdd, we currently do this to check it out:

git reset --hard aabbccdd

However, this has an undesirable side effect of moving the current branch pointer to point at aabbccdd. The current branch pointer may be some totally different branch which aabbccdd is not part of, so this is confusing and misleading.

Instead, use git reset --hard HEAD to get the primary effect we want (destroying staged changes) and then git checkout aabbccdd to checkout the commit in a detached HEAD state.

Test Plan:

  • Ran a build (a commit-focused operation) successfully.
  • Verified working copy was pointed at a detached HEAD afterward:
builder@sbuild001:/var/drydock/workingcopy-167/repo/git-test-ii$ git status
HEAD detached at ffc7635
nothing to commit, working directory clean
  • Ran a land (a branch-foused operation) successfully.
  • Verified working copy was pointed at a branch afterward:
builder@sbuild001:/core/data/drydock/workingcopy-168/repo/git-test$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean

Reviewers: chad

Reviewed By: chad

Subscribers: yelirekim

Maniphest Tasks: T10037

Differential Revision: https://secure.phabricator.com/D14850

Details

Committed
epriestley <git@epriestley.com>Dec 22 2015, 15:47
Pushed
aubortJan 31 2017, 17:16
Parents
rPH57909a705ca8: Improve strings for creating blocking subtasks
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPH426d64868126: In Drydock, don't reset current branch to point at unrelated commit (authored by epriestley <git@epriestley.com>).Dec 22 2015, 15:47