From bfc1eeba078a089dbf2a94101d040a1b01106705 Mon Sep 17 00:00:00 2001 From: durham Date: Tue, 16 Apr 2013 10:22:00 -0700 Subject: [PATCH] Fix hg amend during arc diff Summary: 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: https://secure.phabricator.com/D5706 --- src/repository/api/ArcanistMercurialAPI.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/repository/api/ArcanistMercurialAPI.php b/src/repository/api/ArcanistMercurialAPI.php index 7b9d78ab..5f9eebb3 100644 --- a/src/repository/api/ArcanistMercurialAPI.php +++ b/src/repository/api/ArcanistMercurialAPI.php @@ -693,7 +693,10 @@ final class ArcanistMercurialAPI extends ArcanistRepositoryAPI { } 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) {