module VCSGui.Svn.Log (
showLogGUI
) where
import qualified VCSGui.Common.Log as C
import VCSGui.Svn.AskPassword
import qualified VCSWrapper.Svn as Svn
import qualified VCSWrapper.Common as WC
showLogGUI :: Either Handler (Maybe String)
-> Svn.Ctx ()
showLogGUI eitherHandlerOrPw = do
logEntries <- Svn.simpleLog
C.showLogGUI logEntries [] Nothing (okCallback eitherHandlerOrPw) False
okCallback :: Either Handler (Maybe String)
-> WC.LogEntry
-> Maybe String
-> WC.Ctx()
okCallback eitherHandlerOrPw logEntry _ = do
case eitherHandlerOrPw of
Left handler -> do
showAskpassGUI (ownHandler handler)
return ()
Right pw -> doRevert logEntry pw
where
ownHandler :: Handler
-> Handler
ownHandler handler = \result -> do
case result of
Nothing -> handler result
Just (_,mbPw) -> do
doRevert logEntry mbPw
handler result
doRevert logEntry mbPw = do
Svn.mergeHeadToRevision (revision logEntry) mbPw []
return()
revision logEntry = read $ Svn.commitID logEntry :: Integer