From 4128acdee32eadfef1fb8c3c3ce2e512a267cdf4 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: --- bin/pick/core.py | 8 ++++++++ bin/pick/ui.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) 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