mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-21 22:32:41 +01:00
Use git diff a b
for ranges, not git diff a..b
Summary: These are documented as being identical, but `git diff a b` works if `a` is a tree (for example, `4b825d...`, the empty tree hash), but `git diff a..b` does not. Particularly, with the `a..b` form, `arc diff --base arc:empty` does not work. With the `a b` form, it does. Test Plan: Ran `arc diff --base arc:empty` in a repository and got a diff. Reviewers: btrahan, talshiri Reviewed By: talshiri Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D9898
This commit is contained in:
parent
09cf64bec3
commit
f9f2092246
1 changed files with 10 additions and 7 deletions
|
@ -429,17 +429,20 @@ final class ArcanistGitAPI extends ArcanistRepositoryAPI {
|
|||
* @param head revision. If this is null, the generated diff will include the
|
||||
* working copy
|
||||
*/
|
||||
public function getFullGitDiff($base, $head=null) {
|
||||
public function getFullGitDiff($base, $head = null) {
|
||||
$options = $this->getDiffFullOptions();
|
||||
|
||||
$diff_revision = $base;
|
||||
if ($head) {
|
||||
$diff_revision .= '..'.$head;
|
||||
if ($head !== null) {
|
||||
list($stdout) = $this->execxLocal(
|
||||
"diff {$options} %s %s --",
|
||||
$base,
|
||||
$head);
|
||||
} else {
|
||||
list($stdout) = $this->execxLocal(
|
||||
"diff {$options} %s --",
|
||||
$base);
|
||||
}
|
||||
|
||||
list($stdout) = $this->execxLocal(
|
||||
"diff {$options} %s --",
|
||||
$diff_revision);
|
||||
return $stdout;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue