Changelog of @hackage/filestore 0.3.2.2

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.