Page MenuHomePhabricator

Project ... is unknown. Upload a diff to implicitly create it.
Closed, ResolvedPublic

Description

When I run this command:

find . -type f -name '*.java' | /path/to/phabricator/scripts/symbols/generate_ctags_symbols.php | /path/to/phabricator/www/phabricator/scripts/symbols/import_project_symbols.php blah

I receive the following message:

Project 'blah' is unknown. Upload a diff to implicitly create it.

Here's what my .arcconfig file contains:

{
   "project_id" : "blah",
   "conduit_uri" : "http://www.myphabricatorinstall.com/"
 }

I've created a diff using arc diff and it seemed to work (i.e., it showed up on the web interface), although I can't say I really understand Differential.

What do?

Event Timeline

jonah214 assigned this task to epriestley.
jonah214 raised the priority of this task from to Normal.
jonah214 updated the task description. (Show Details)
jonah214 added a subscriber: jonah214.

I'd expect that to have created "blah". You can see if it actually exists in the Repositories application (/repository/).

Alas, the project shows up under Repositories, but not Arcanist Projects.

If you run arc list --trace, does it show the .arcconfig file you expect to be loaded actually getting loaded? That is, the first few lines should look like this:

>>> orbital ~/devtools/phabricator $ arc list --trace
libphutil loaded from '/INSECURE/devtools/libphutil/src'.
arcanist loaded from '/INSECURE/devtools/arcanist/src'.
Working Copy: Reading .arcconfig from "/INSECURE/devtools/phabricator/.arcconfig".
...

The third line there shows where .arcconfig is being read from.

(Generally, we're moving to de-emphasize Arcanist Projects because they're dumb and bad, but aren't quite there yet.)

Ugh, there's no line about .arcconfig. How do I tell it where to look?

The next couple lines should say something like:

...
Working Copy: Path "/INSECURE/devtools/phabricator" is part of `git` working copy "/INSECURE/devtools/phabricator".
Working Copy: Project root is at "/INSECURE/devtools/phabricator".
...

Putting it directly inside the project root is the most general way to get it picked up. Here, the project root is /INSECURE/devtools/phabricator so the place to put it would be /INSECURE/devtools/phabricator/.arcconfig.

That seems to have worked; thanks.

Cool. See also T3130 for Java -- searching for symbols will work fine, but we could link more symbols in actual diffs with a smarter lexer.