1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-22 23:02:42 +01:00

When leasing a Working Copy in Drydock, just "git reset --hard" so empty repositories work

Summary:
Ref T13210. We currently "git reset --hard HEAD" during working copy leasing, mostly by convention/familiarity.

However, this command does not work in an empty repository, because there is no HEAD yet.

The command "git reset --hard" appears to have the same meaning and effect in all cases, except that it also works correctly in an empty repository.

The manual suggests that omitting HEAD should be the same as specifying HEAD, too:

> The <tree-ish>/<commit> defaults to HEAD in all forms.

Test Plan: Successfully leased a working copy for an empty repository using Drydock.

Reviewers: amckinley

Reviewed By: amckinley

Subscribers: yelirekim, PHID-OPKG-gm6ozazyms6q6i22gyam

Maniphest Tasks: T13210

Differential Revision: https://secure.phabricator.com/D19750
This commit is contained in:
epriestley 2018-10-24 06:05:36 -07:00
parent e2cf1e4288
commit 6deb09efcd

View file

@ -256,8 +256,9 @@ final class DrydockWorkingCopyBlueprintImplementation
$ref = idx($spec, 'ref'); $ref = idx($spec, 'ref');
// Reset things first, in case previous builds left anything staged or // Reset things first, in case previous builds left anything staged or
// dirty. // dirty. Note that we don't reset to "HEAD" because that does not work
$cmd[] = 'git reset --hard HEAD'; // in empty repositories.
$cmd[] = 'git reset --hard';
if ($commit !== null) { if ($commit !== null) {
$cmd[] = 'git checkout %s --'; $cmd[] = 'git checkout %s --';