Browse files

Fix hg amend during arc diff

When doing an arc diff with pending changes in your working copy
it was creating a new commit with the pending changes instead of amending
the existing one.  The problem was the author comparison was comparing
values like "John Smith <>" with "John Smith". The fix changes
$api->getAuthor() to return "John Smith" instead of the full string. This
matches the behavior (and implementation) found in the git api.

Test Plan:
hg book foo
touch a && hg commit -Ama
touch b && hg add b
arc diff
When prompted, amend the pending changes to the existing commit.

Verified that the changes were amended instead of making a new commit.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision:
  • Loading branch information...
1 parent b0a0414 commit bfc1eeba078a089dbf2a94101d040a1b01106705 @DurhamG DurhamG committed Apr 16, 2013
Showing with 4 additions and 1 deletion.
  1. +4 −1 src/repository/api/ArcanistMercurialAPI.php
@@ -693,7 +693,10 @@ private function getMercurialConfig($key, $default = null) {
public function getAuthor() {
- return $this->getMercurialConfig('ui.username');
+ $full_author = $this->getMercurialConfig('ui.username');
+ $email = new PhutilEmailAddress($full_author);
+ $author = $email->getDisplayName();
+ return $author;
public function addToCommit(array $paths) {

0 comments on commit bfc1eeb

Please sign in to comment.