Page MenuHomePhabricator

arc diff --raw is not working
Closed, ResolvedPublic

Description

$ git diff 58db3363a6fdc3b8eec4fab320e763e994c57af3..e89ba327da0bd0a2f58e8dce82a55b855ef7dc2b | arc diff --raw --trace
libphutil loaded from '/opt/libphutil/src'.
arcanist loaded from '/opt/arcanist/src'.
Working Copy: Reading .arcconfig from "/Users/kblock/Documents/work/builds/prevent-gilroy/.arcconfig".
Working Copy: Path "/Users/kblock/Documents/work/builds/prevent-gilroy" is part of git working copy "/Users/kblock/Documents/work/builds/prevent-gilroy".
Working Copy: Project root is at "/Users/kblock/Documents/work/builds/prevent-gilroy".

[0] <conduit> conduit.connect() <bytes = 446>
[1] <http> https://codereview.sf.coverity.com/api/conduit.connect

<<< [1] <http> 498,609 us
<<< [0] <conduit> 498,863 us

[2] <event> diff.didCollectChanges <listeners = 0>

<<< [2] <event> 70 us

[3] <event> diff.didBuildMessage <listeners = 0>

<<< [3] <event> 55 us
Reading diff from stdin...

[4] <conduit> arcanist.projectinfo() <bytes = 187>
[5] <http> https://codereview.sf.coverity.com/api/arcanist.projectinfo

<<< [5] <http> 514,321 us
<<< [4] <conduit> 514,551 us

[2014-05-15 19:07:02] EXCEPTION: (Exception) This workflow ('ArcanistDiffWorkflow') requires a Repository API, override requiresRepositoryAPI() to return true. at [/opt/arcanist/src/workflow/ArcanistBaseWorkflow.php:766]

#0 ArcanistBaseWorkflow::getRepositoryAPI() called at [/opt/arcanist/src/workflow/ArcanistBaseWorkflow.php:1712]
#1 ArcanistBaseWorkflow::getRepositoryQuery() called at [/opt/arcanist/src/workflow/ArcanistBaseWorkflow.php:1620]
#2 ArcanistBaseWorkflow::loadRepositoryInformation() called at [/opt/arcanist/src/workflow/ArcanistBaseWorkflow.php:1607]
#3 ArcanistBaseWorkflow::getRepositoryInformation() called at [/opt/arcanist/src/workflow/ArcanistBaseWorkflow.php:1554]
#4 ArcanistBaseWorkflow::getRepositoryPHID() called at [/opt/arcanist/src/workflow/ArcanistDiffWorkflow.php:2295]
#5 ArcanistDiffWorkflow::buildDiffSpecification() called at [/opt/arcanist/src/workflow/ArcanistDiffWorkflow.php:514]
#6 ArcanistDiffWorkflow::run() called at [/opt/arcanist/scripts/arcanist.php:322]

Following change seems to work around the issue.

diff --git a/src/workflow/ArcanistDiffWorkflow.php b/src/workflow/ArcanistDiffWorkflow.\
php
index fe02de8..206dc3f 100644

  • a/src/workflow/ArcanistDiffWorkflow.php

+++ b/src/workflow/ArcanistDiffWorkflow.php
@@ -2290,10 +2290,12 @@ EOTEXT

  'arcanistProject'           => $project_id,
);

+ if (!$this->isRawDiffSource()) {

$repository_phid = $this->getRepositoryPHID();
if ($repository_phid) {
  $data['repositoryPHID'] = $repository_phid;
}

+ }

  return $data;
}

Event Timeline

kblock raised the priority of this task from to Needs Triage.
kblock updated the task description. (Show Details)
kblock added a subscriber: kblock.

That did not paste well, but should be clear enough.

Thanks, I think your fix is pretty much correct. I'll get a patch out.

This should be fixed in HEAD. Thanks for the report, let us know if you run into anything else.

Thank you. I'll give it a spin.