In Development.Bake.Server.Web the following line adds a quote in front of patch name when hitting Retry:
do br_; admin (AddPatch (paAuthor pi) $ toPatch $ '\'' : fromPatch p) $ str_ "Retry"
I understand this ensures Brain enqueues the patch:
update mem@Memory{..} (AddPatch author p) =
if storeIsPatch store p then
return $ Left "patch has already been submitted"
else do
let queued = storeAlive store `Set.difference` Set.fromList (snd active)
supersede = filter (\old -> ovenSupersede oven old p) $ Set.toList queued
store <- storeUpdate store $ IUQueue p author : map IUSupersede supersede
return $ Right mem{store = store}
But this supernumerary quote prevents proper merging later on in the chain, AFAICT. How about creating a RetryPatch command that will follow roughly same semantic than AddPatch except it will not check the store?