mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-25 16:22:42 +01:00
Fix "arc diff" under Mercurial with a dirty working copy
Summary: In D962, I switched us from using "hg summary" to "hg id" to find the working copy revision. However, "hg id" reports the revision with a trailing "+" if the working copy is dirty, so we fail before hitting the explicit check for this later. Trim off the trailing '+' if it is present. Test Plan: Ran "arc diff" in a dirty Mercurial working copy and got a good error message about uncommitted changes. ~/repos/hg-working-copy $ arc diff WARNING: Mercurial support is largely imaginary right now. Usage Exception: You have uncommitted changes in this branch. Commit (or revert) them before proceeding. Working copy: /INSECURE/repos/hg-working-copy/ Uncommitted changes in working copy hello.c Reviewers: Makinde, jungejason, nh, tuomaspelkonen, aran Reviewed By: Makinde CC: aran, Makinde Differential Revision: 1070
This commit is contained in:
parent
c0007ffd44
commit
f1874ddf33
1 changed files with 6 additions and 1 deletions
|
@ -283,7 +283,12 @@ class ArcanistMercurialAPI extends ArcanistRepositoryAPI {
|
|||
list($stdout) = execx(
|
||||
'(cd %s && hg --debug id --id)',
|
||||
$this->getPath());
|
||||
return trim($stdout);
|
||||
|
||||
// Even with "--id", "hg id" will print a trailing "+" after the hash
|
||||
// if the working copy is dirty (has uncommitted changes). We'll explicitly
|
||||
// detect this later by calling getWorkingCopyStatus(); ignore it for now.
|
||||
$stdout = trim($stdout);
|
||||
return rtrim($stdout, '+');
|
||||
}
|
||||
|
||||
public function supportsRelativeLocalCommits() {
|
||||
|
|
Loading…
Reference in a new issue