Version 0.6.0.6 released 2 April 2014

* Added compatibility module Data.FileStore.Compat.Locale
  so that filestore will compile against time 1.5.

Version 0.6.0.5 released 2 April 2014

* Mark post-update as a bash script (not a generic shell script).

* Bump version bounds for dependencies.

Version 0.6.0.4 released 31 Oct 2014

* Fixed test suite so that it returns error status if tests fail (#16).

Version 0.6.0.3 released 26 Jul 2014

* Disable the broken mercurial command server on Windows, falling back
  on direct running of each command (Alan Brooks).

* Added a script demonstrating use of filestore to query darcs repositories
  (gwern).

Version 0.6.0.2 released 08 Apr 2014

* Bumped version for process so it will compile with GHC 7.8.1.

Version 0.6.0.1 released 20 Mar 2013

* runProcess now allows access to the current environment, instead of
  running in a bare environment.  This fixes problems for those who have
  git in a nonstandard path. (Jochen Keil)

* Allow latest Diff.

* Reconfigured cabal file to use new Cabal test framework.  Run tests with
  `cabal configure --enable-tests && cabal build &&  cabal test`.

* Set environment variable HGENCODING for mercurial.  Closes #6.

Version 0.6 released 31 Dec 2012

* Updated to use Diff 0.2.  This involves an API change:
  diff now returns [Diff [String]] rather than [(DI, String)].
  Thanks to markwright for the patch.

* Test revDescription more thoroughly (Ben Millwood).

* Fixed error handling in withVerifyDir.

Version 0.5.0.1 released 21 Oct 2012

* Bumped version limits on dependencies.

* Upgraded Utils to use Control.Exception.

Version 0.5 released 30 Apr 2012

* Added 'limit' parameter to 'history', so that in large repositories
  you don't need to generate and parse the entire log.

* Revised the git log parser, so it is faster and lazy.  This is
  helpful for applications where we may not need to parse the whole
  history.  It would be good to make similar modifications to the hg
  and darcs log parsers in the future.

Version 0.3.4.3 released 26 Sep 2010

* runShellCommand: reverted to older version with temp files.
  The new version caused lazy-IO related problems with large
  files. Thanks to Pavel Perikov diagnosing the problem.

Version 0.3.4.2 released 03 Aug 2010

* gitInit:  Set up repository to allow push to the current
  branch.  This is needed for recent versions of git,
  which don't allow a push to the master branch.  Resolves
  Issue #104.

* New version of runShellCommand that does not require
  temp files, using runInteractiveProcess.

* Suppress "unused do bind" warnings in build.

Version 0.3.4.1 released 22 Jan 2010

* Rewrote splitEmailAuthor with list fns not regexes.
  Also removed regex-posix from cabal build-depends.

* Corrected error message for richDirectory

* Improved git search:
  + Previously git search would fail in some cases, with an error
    in parseMatchLine (for example, with unicode search term).
  + We replaced the regex with a simpler match-line parser using
    Preface functions.
  + We also now use --null to force a NUL separator in git grep.
  + The test case that previously failed now passes.

Version 0.3.4 released 10 Dec 2009

* Added Mercurial module and associated tests.
  Thanks to John Lenz for the patch.

* Added test case for nonascii directory name

* gitLatestRevId - added check to make sure resource hasn't been removed.
  Without this, you get a ResourceExists error when creating a file
  that has been previously deleted from the repo.

* Use -z with git ls-tree.  This resolves Issue #77.
  When 'git ls-tree' is used with -z, it prints regular UTF8 instead of
  octal encoding it. So we can avoid the problem we were having with
  filenames like Foo\230\331/Bar.

* Use -z for 'git whatchanged'. This allows us to remove the kludgy
  'convertEncoded' function, which parsed encoded filenames.

Version 0.3.3.1 released 22 Nov 2009

* Raise an IllegalResourceName error if the user tries to
  delete a file inside .git or _darcs subdirectory.

* Have gitSearch return no matches, instead of raising an error,
  if error status = 1.  Recent versions of git-grep return 1 if
  no matches found.

* Fix git log parsing so that it allows log comments to start with ':'
  Thanks to thorben for uncovering the bug.

Version 0.3.3 released 06 Nov 2009

* isInsideDir is again exported.

Version 0.3.2.2 released 06 Nov 2009

* Raise an IllegalResourceName error if the user tries to create
  a file inside the .git or _darcs subdirectory.  Previously the
  file would be written (or overwritten) before the error was caught
  in the add/commit phase.  This introduced the risk of corrupting
  the repository or, worse, overwriting hooks.

* isInsideDir is no longer exported.

* checkAndWriteFile has been replaced with withSanityCheck, to avoid
  code duplication between create and rename functions.

Version 0.3.2.1 released 24 Oct 2009

* Convert pathname to UTF8 in withVerifyDir.

Version 0.3.2 released 22 Aug 2009

* Made maxcount default to True, as '--max-count' is supported by
  the latest released version of darcs (2.3.0). Print an informative
  error message if the version of darcs being used does not support
  --max-count.

* Made 'initialize' throw RepoExists error only if the repo
  exists; catch permission or other errors separately. (Thomas Hartmann)

* Made 'index' throw an error if the directory is not present or
  there are insufficient permissions.  (Thomas Hartmann)

* Improved error message for search match helper.

Version 0.3.1 released 04 Jul 2009

* Added -I flag to grep in regSearchFiles. Ignore binary files
  in the repository when searching.

* Added maxcount Cabal flag, defaulting to False.  When true,
  this flag causes 'latest' to run 'darcs changes' with the
  flag '--max-count=1', which dramatically increases performance.
  (Without this, filestore has to retrieve the entire changelog
  just to get the latest revision ID.) '--max-count' is at this
  point only in development versions of darcs.

* Removed quoting from --match=hash in Darcs module (since it doesn't
  go through /bin/sh).  Thanks to Ganesh Sittampalam.

* Efficiency improvements and refactoring in Darcs module.

* Moved darcs utility functions to Util module.

Version 0.3 released 08 Apr 2009

* Added new 'directory' function, which returns a list of resources given
  a directory name. Resources are marked as either FSFile or
  FSDirectory. Thanks to Thomas Hartman for showing the need for
  'directory', and for distinguishing explicitly between files and
  directories. In 'index' the distinction was previously left implicit,
  which worked for git but not darcs: 'index' provided no way of
  distinguishing an empty directory from a file.

* In 'directory' and 'index', git ls-tree is used instead of git ls-files;
  this guarantees that only files that have been committed are returned.
  'index' now lists only files, and no longer includes empty directories
  even in darcs.

* Added new richDirectory function to Data.FileStore.Generic.
  richDirectory returns a directory that includes information
  about the latest revision of each file. Thanks to Thomas Hartman for
  the patch.

* Replaced ResourceName type with FilePath.

* Added repository information to cabal file.

Version 0.2 released 08 Feb 2009

* Changed diff to do a line-by-line rather than word-by-word diff.
  The word-by-word diff led to excessive memory usage and confusing
  output in some cases.  NOTE:  diff now returns lists of lines,
  not including newlines.  So calling programs may need to be changed.

  diff also now skips calling getGroupedDiff when the left document
  is empty, for better performance.

* Added ghc-prof-options to cabal file.

* Clean up code in gitRetrieve.

* Added ensureFileExists to Darcs module. Added checks to ensure that file
  exists in darcsLatestRevId and darcsRetrieve.  If not, return
  NotFound.

* gitRetrieve:  check to make sure object is a file before retrieving.
  Also, if Nothing is the revision ID, use gitLatestRevId rather than
  going directly to the file system. This is a step in the direction of
  making filestore compatible with bare repositories.

* Test suite has been wired into Setup.lhs:  'cabal test' now runs tests.

* Added new test case for attempting to retrieve a subdirectory,
  and for creating a second file in a subdirectory.

* Minor code cleanup.

* Added CHANGES.

Version 0.1 released 24 Jan 2009

* Initial release.
