1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-22 23:02:41 +01:00

Remind user about 'arc amend' when they try to land a branch onto itself

Summary: If you develop in "master" and try to "arc land", you get an error. You can reasonably "arc amend" in this situation, most of the time. Give the user an explicit pointer.

Test Plan:
  $ arc land master
  Usage Exception: You can not land a branch onto itself -- you are trying to
  land 'master' onto 'master'. For more information on how to push changes, see
  'Pushing and Closing Revisions' in 'Arcanist User Guide: arc diff' in the
  documentation. You may be able to 'arc amend' instead.

Reviewers: csilvers, btrahan

Reviewed By: csilvers

CC: aran

Differential Revision: https://secure.phabricator.com/D2547
This commit is contained in:
epriestley 2012-05-23 11:40:20 -07:00
parent 833e8355d8
commit 833ae9c152

View file

@ -141,12 +141,18 @@ EOTEXT
$remote = $this->getArgument('remote', 'origin'); $remote = $this->getArgument('remote', 'origin');
$onto = $this->getArgument('onto', $onto_default); $onto = $this->getArgument('onto', $onto_default);
$is_immutable = $this->isHistoryImmutable();
if ($onto == $branch) { if ($onto == $branch) {
throw new ArcanistUsageException( $message =
"You can not land a branch onto itself -- you are trying to land ". "You can not land a branch onto itself -- you are trying to land ".
"'{$branch}' onto '{$onto}'. For more information on how to push ". "'{$branch}' onto '{$onto}'. For more information on how to push ".
"changes, see 'Pushing and Closing Revisions' in ". "changes, see 'Pushing and Closing Revisions' in ".
"'Arcanist User Guide: arc diff' in the documentation."); "'Arcanist User Guide: arc diff' in the documentation.";
if (!$is_immutable) {
$message .= " You may be able to 'arc amend' instead.";
}
throw new ArcanistUsageException($message);
} }
if ($this->getArgument('merge')) { if ($this->getArgument('merge')) {
@ -154,7 +160,7 @@ EOTEXT
} else if ($this->getArgument('squash')) { } else if ($this->getArgument('squash')) {
$use_squash = true; $use_squash = true;
} else { } else {
$use_squash = !$this->isHistoryImmutable(); $use_squash = !$is_immutable;
} }
list($err) = $repository_api->execManualLocal( list($err) = $repository_api->execManualLocal(