diff --git a/debian-build.cabal b/debian-build.cabal
--- a/debian-build.cabal
+++ b/debian-build.cabal
@@ -1,5 +1,5 @@
 name:                debian-build
-version:             0.2.1.1
+version:             0.2.2.0
 synopsis:            Debian package build sequence tools
 description:         This package provides build sequence functions
                      for debian package, and includes on-the-fly
diff --git a/src/Debian/Package/Build/Command.hs b/src/Debian/Package/Build/Command.hs
--- a/src/Debian/Package/Build/Command.hs
+++ b/src/Debian/Package/Build/Command.hs
@@ -43,7 +43,7 @@
 import Data.Version (Version, versionBranch, showVersion)
 
 import Debian.Package.Data (Hackage, ghcLibraryBinPackages, ghcLibraryPackages, Source, parseChangeLog, DebianVersion, readDebianVersion, origVersion')
-import Debian.Package.Build.Monad (Trace, traceCommand, traceOut, bracketTrace_)
+import Debian.Package.Build.Monad (Trace, traceCommand, traceOut, putLog, bracketTrace_)
 
 
 splitCommand :: [a] -> (a, [a])
@@ -116,7 +116,7 @@
 -- | Unpack .tar.gz under directory.
 unpackInDir :: FilePath -> FilePath -> Trace ()
 apath `unpackInDir` dir = do
-  lift . putStrLn $ unwords ["Unpacking", apath, "in", dir, "."]
+  putLog $ unwords ["Unpacking", apath, "in", dir, "."]
   rawSystem' ["tar", "-C", dir, "-zxf", apath]
 
 -- | Unpack .tar.gz under archive place.
@@ -126,7 +126,7 @@
 -- | Pack directory into .tar.gz under working directory
 packInDir' :: FilePath -> FilePath -> FilePath -> Trace ()
 packInDir' pdir apath wdir = do
-  lift . putStrLn $ unwords ["Packing", pdir, "in", wdir, "into", apath, "."]
+  putLog $ unwords ["Packing", pdir, "in", wdir, "into", apath, "."]
   rawSystem' ["tar", "-C", wdir, "-zcf", apath, pdir]
 
 -- | Pack directory into same location .tar.gz under working directory
@@ -214,4 +214,4 @@
 removeGhcLibrary mode hkg = do
   let pkgs All = ghcLibraryBinPackages
       pkgs Bin = ghcLibraryPackages
-  system' $ unwords ["yes '' |", "sudo apt-get remove", unwords $ pkgs mode hkg, "|| true"]
+  system' $ unwords ["echo '' |", "sudo apt-get remove", unwords $ pkgs mode hkg, "|| true"]
diff --git a/src/Debian/Package/Build/Monad.hs b/src/Debian/Package/Build/Monad.hs
--- a/src/Debian/Package/Build/Monad.hs
+++ b/src/Debian/Package/Build/Monad.hs
@@ -9,7 +9,7 @@
 --
 -- This module provides monad types to control build scripts.
 module Debian.Package.Build.Monad
-       ( Trace, runTrace, traceCommand, traceOut
+       ( Trace, runTrace, traceCommand, traceOut, putLog
        , bracketTrace, bracketTrace_
 
        , BaseDir, baseDirCurrent, baseDirSpecify
@@ -18,14 +18,14 @@
 
        , BuildDir, buildDirRelative, buildDirAbsolute
 
-       , Config, defaultConfig, buildDir, mayDebianDirName
+       , Config, defaultConfig, buildDir, mayDebianDirName, sourceExcludes
 
        , Build, liftTrace, runBuild, askConfig
        , bracketBuild, bracketBuild_
        ) where
 
 import System.FilePath ((</>))
-import System.IO (hPutStrLn, hFlush, stderr)
+import System.IO (hPutStrLn, hFlush, stderr, stdout)
 import Data.Maybe (fromMaybe)
 import Control.Applicative ((<$>))
 import Control.Monad (when)
@@ -90,6 +90,12 @@
 traceOut :: String -> Trace ()
 traceOut =  traceIO . tprint '>'
 
+-- | Put log stinrg with flush.
+putLog :: String -> Trace ()
+putLog s = traceIO $ do
+  let fh = stdout
+  hPutStrLn fh s
+  hFlush fh
 
 -- | Type to specify base directory filepath
 newtype BaseDir = BaseDir { unBaseDir :: Maybe FilePath }
@@ -128,11 +134,12 @@
   Config
   { buildDir         :: BuildDir        -- ^ Specify build dir
   , mayDebianDirName :: Maybe FilePath  -- ^ Name of debian directory
+  , sourceExcludes   :: [FilePath]      -- ^ Exclude directories to setup source directory
   } deriving Show
 
 -- | Default configuration
 defaultConfig :: (Config, Bool)
-defaultConfig =  (Config (buildDirRelative ".debian-build") Nothing, True)
+defaultConfig =  (Config (buildDirRelative ".debian-build") Nothing [".git", ".hg"], True)
 
 -- | Monad type with build base directory and build configuration.
 type Build = ReaderT BaseDir (ReaderT Config Trace)
diff --git a/src/Debian/Package/Build/Sequence.hs b/src/Debian/Package/Build/Sequence.hs
--- a/src/Debian/Package/Build/Sequence.hs
+++ b/src/Debian/Package/Build/Sequence.hs
@@ -118,10 +118,11 @@
   debDN    <- debianDirName
   baseDir  <- getBaseDir
   bldDir   <- getBuildDir
+  confEXs  <- sourceExcludes <$> askConfig
   let excludes = [takeFileName d
                  | d <- [bldDir]
                  , baseDir `isPrefixOf` d ]
-                 ++ [debDN]
+                 ++ [debDN] ++ confEXs
   liftTrace $ do
     createDirectoryIfMissing srcDir
     rawSystem'
