From c64a3bc148390174a3b1140e56551645bd66329a Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Mon, 9 Aug 2021 21:44:21 +0100 Subject: [PATCH] pick-ui: show commit date With our ff-only merge setup, the commit date ends up being when the commit actually landed (as opposed to when it was first written). Signed-off-by: Eric Engestrom Reviewed-by: Dylan Baker Cc: mesa-stable Part-of: (cherry picked from commit 4128acdee32eadfef1fb8c3c3ce2e512a267cdf4) --- .pick_status.json | 2 +- bin/pick/core.py | 8 ++++++++ bin/pick/ui.py | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 9bd6d1d5d13..f6df2df1135 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -247,7 +247,7 @@ "description": "pick-ui: show commit date", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/bin/pick/core.py b/bin/pick/core.py index de5d0715cee..766749c471f 100644 --- a/bin/pick/core.py +++ b/bin/pick/core.py @@ -138,6 +138,14 @@ class Commit: c.resolution = Resolution(data['resolution']) return c + def date(self) -> str: + # Show commit date, ie. when the commit actually landed + # (as opposed to when it was first written) + return subprocess.check_output( + ['git', 'show', '--no-patch', '--format=%cs', self.sha], + stderr=subprocess.DEVNULL + ).decode("ascii").strip() + async def apply(self, ui: 'UI') -> typing.Tuple[bool, str]: # FIXME: This isn't really enough if we fail to cherry-pick because the # git tree will still be dirty diff --git a/bin/pick/ui.py b/bin/pick/ui.py index b9a1c44db67..5fb4ff8dfda 100644 --- a/bin/pick/ui.py +++ b/bin/pick/ui.py @@ -67,7 +67,7 @@ class CommitWidget(urwid.Text): def __init__(self, ui: 'UI', commit: 'core.Commit'): reason = commit.nomination_type.name.ljust(6) - super().__init__(f'{reason} {commit.sha[:10]} {commit.description}') + super().__init__(f'{commit.date()} {reason} {commit.sha[:10]} {commit.description}') self.ui = ui self.commit = commit