From e9db3823080ce4aebae3fb4481610e32e1edcdf4 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 17 Dec 2020 16:49:17 -0400 Subject: [PATCH] avoid redundant set of a S3 verison ID that is already recorded I think this could cause unnecessary changes to the git-annex branch, and retrieveExportWithContentIdentifier is now also used for getting content from importtree=yes remotes, so it would happen more frequently so let's avoid. --- Remote/S3.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Remote/S3.hs b/Remote/S3.hs index ea8bab5d50..b35a62186e 100644 --- a/Remote/S3.hs +++ b/Remote/S3.hs @@ -656,7 +656,10 @@ retrieveExportWithContentIdentifierS3 hv r rs info loc cid dest mkkey p = withS3 S3.getObject (bucket info) o k <- mkkey case extractContentIdentifier cid o of - Right vid -> setS3VersionID info rs k vid + Right vid -> do + vids <- getS3VersionID rs k + unless (vid `elem` map Just vids) $ + setS3VersionID info rs k vid Left _ -> noop return k Nothing -> giveup $ needS3Creds (uuid r) @@ -1132,7 +1135,7 @@ getPublicUrlMaker info = case publicurl info of -- version id involves a request for an object, so this keeps track of what -- the object is. data S3VersionID = S3VersionID S3.Object T.Text - deriving (Show) + deriving (Show, Eq) -- smart constructor mkS3VersionID :: S3.Object -> Maybe T.Text -> Maybe S3VersionID