HomePhabricator

phabricator: add a `phabimport` command

Authored by mharbison72.

Description

phabricator: add a phabimport command

I've had alias.phabimport = $hg phabread --stack $1 | $hg import --bypass -
for a while now, and I suspect others do too. That's limited though, in that it
can't use the information on Phabricator to restore it in the original location,
so I'm making it a first class command.

This doesn't do anything ambitious like that- this is mostly a simplification of
hg import to get the equivalent of the alias mentioned above. The --bypass
option is hardcoded to be enabled and the message about amending rejects
dropped (rejects aren't created with --bypass), because editing patches on
Phabricator seems like an unusual workflow.

This will need other options, like --obsolete and --secret. I think these
would be more useful as config settings, as I imagine the workflows are pretty
fixed depending on roles. Reviewers who don't queue patches probably never want
--obsolete, but may need --secret. Reviewers who do will want the former,
but not the latter. I left --stack as an option, but that should probably be
a config knob too (or at least default to on)- if the point of this is to avoid
rejects, it doesn't make sense to skip dependencies in most cases.

Evolve is going to need a fix to its wrapping of cmdutil.tryimportone(), as it
currently assumes opts has an obsolete key. It's worked around for now.

Differential Revision: https://phab.mercurial-scm.org/D8136

Details