From c4c8241fc366c7f8b0a4b283c8537e8e44e5ec1d Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Sun, 2 Feb 2025 23:01:21 +0800 Subject: [PATCH] stackage-diff: add a previous diff link allowing navigating back to earlier consecutive diffs Arguably we could also navigate name1 and name2 separately Thanks to @chreekat for reviewing and improving the code (#340) --- src/Handler/StackageHome.hs | 3 ++- templates/stackage-diff.hamlet | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Handler/StackageHome.hs b/src/Handler/StackageHome.hs index 613d9c0..66ca1f0 100644 --- a/src/Handler/StackageHome.hs +++ b/src/Handler/StackageHome.hs @@ -53,7 +53,8 @@ instance ToJSON SnapshotInfo where getStackageDiffR :: SnapName -> SnapName -> Handler TypedContent getStackageDiffR name1 name2 = track "Handler.StackageHome.getStackageDiffR" $ do cacheSeconds $ 60 * 60 * 48 - Entity sid1 _ <- lookupSnapshot name1 >>= maybe notFound return + Entity sid1 prevSnap <- lookupSnapshot name1 >>= maybe notFound return + mprevprevSnapName <- map snd <$> snapshotBefore (snapshotName prevSnap) Entity sid2 _ <- lookupSnapshot name2 >>= maybe notFound return snapDiff <- getSnapshotDiff sid1 sid2 selectRep $ do diff --git a/templates/stackage-diff.hamlet b/templates/stackage-diff.hamlet index 2e729c6..4b049a2 100644 --- a/templates/stackage-diff.hamlet +++ b/templates/stackage-diff.hamlet @@ -1,5 +1,10 @@

Compare Stackage snapshots +$maybe prevprev <- mprevprevSnapName +
+ + \< previous diff +