diff --git a/Git/Commit/Push.hs b/Git/Commit/Push.hs
--- a/Git/Commit/Push.hs
+++ b/Git/Commit/Push.hs
@@ -57,6 +57,7 @@
 copyRepository factory mname refName gitDir isBare =
     withRepository' factory RepositoryOptions
         { repoPath       = gitDir
+        , repoWorkingDir = Nothing
         , repoIsBare     = isBare
         , repoAutoCreate = True
         }
diff --git a/Git/Repository.hs b/Git/Repository.hs
--- a/Git/Repository.hs
+++ b/Git/Repository.hs
@@ -18,6 +18,7 @@
     -- we want exceptions to leave the repo behind
     a <- withRepository' factory RepositoryOptions
         { repoPath       = path
+        , repoWorkingDir = Nothing
         , repoIsBare     = True
         , repoAutoCreate = True
         } action
@@ -35,6 +36,7 @@
     bracket_ recover recover $
         withRepository' factory RepositoryOptions
             { repoPath       = path
+            , repoWorkingDir = Nothing
             , repoIsBare     = True
             , repoAutoCreate = True
             } action
diff --git a/Git/Tree/Builder.hs b/Git/Tree/Builder.hs
--- a/Git/Tree/Builder.hs
+++ b/Git/Tree/Builder.hs
@@ -28,6 +28,7 @@
 import           Control.Failure
 import           Control.Monad
 import           Control.Monad.Fix
+import           Control.Monad.Logger
 import           Control.Monad.IO.Class
 import           Control.Monad.Trans.Class
 import           Control.Monad.Trans.State
@@ -85,6 +86,9 @@
 
 instance (MonadIO m) => MonadIO (TreeT r m) where
     liftIO = lift . liftIO
+
+instance (MonadLogger m) => MonadLogger (TreeT r m) where
+    monadLoggerLog a b c d = lift $ monadLoggerLog a b c d
 
 getBuilder :: Monad m => TreeT r m (TreeBuilder r m)
 getBuilder = TreeT get
diff --git a/Git/Types.hs b/Git/Types.hs
--- a/Git/Types.hs
+++ b/Git/Types.hs
@@ -106,12 +106,13 @@
 
 data RepositoryOptions = RepositoryOptions
     { repoPath       :: !FilePath
+    , repoWorkingDir :: !(Maybe FilePath)
     , repoIsBare     :: !Bool
     , repoAutoCreate :: !Bool
     }
 
 defaultRepositoryOptions :: RepositoryOptions
-defaultRepositoryOptions = RepositoryOptions "" False False
+defaultRepositoryOptions = RepositoryOptions "" Nothing False False
 
 data RepositoryFactory n m r = RepositoryFactory
     { openRepository :: RepositoryOptions -> m r
diff --git a/gitlib.cabal b/gitlib.cabal
--- a/gitlib.cabal
+++ b/gitlib.cabal
@@ -1,10 +1,10 @@
 Name:                gitlib
-Version:             3.0.0
+Version:             3.0.2
 Synopsis:            API library for working with Git repositories
 License-file:        LICENSE
 License:             MIT
 Author:              John Wiegley
-Maintainer:          johnw@fpcomplete.com
+Maintainer:          johnw@newartisans.com
 Build-Type:          Simple
 Cabal-Version:       >=1.10
 Category:            FFI
@@ -21,7 +21,7 @@
 
 Source-repository head
   type: git
-  location: git://github.com/fpco/gitlib.git
+  location: git://github.com/jwiegley/gitlib.git
 
 -- Test-suite doctests
 --     Default-language: Haskell98
@@ -50,6 +50,7 @@
         , hashable             >= 1.1.2.5
         , lifted-base          >= 0.2
         , monad-control        >= 0.3.2.1
+        , monad-logger         >= 0.3.4.1
         , mtl                  >= 2.1.2
         , resourcet            >= 0.4.8
         , semigroups           >= 0.11
