[darcs-users] darcs 2.10.0 release

Hi all, The darcs team is pleased to announce the release of darcs 2.10.0. # Downloading # The easiest way to install darcs 2.10.0 from source is by first installing the Haskell Platform (http://www.haskell.org/platform). If you have installed the Haskell Platform or cabal-install, you can install this release by doing: $ cabal update $ cabal install darcs-2.10.0 Alternatively, you can download the tarball from http://darcs.net/releases/darcs-2.10.0.tar.gz and build it by hand as explained in the README file. The 2.10 branch is also available as a darcs repository from http://darcs.net/releases/branch-2.10 # Feedback # If you have an issue with darcs 2.10.0, you can report it via the web on http://bugs.darcs.net/ . You can also report bugs by email to bugs at darcs.net, or come to #darcs on irc.freenode.net. # What's new since darcs 2.8.5 # ## New features ## - darcs rebase: enable deep amending of history (Ganesh Sittampalam) - darcs pull --reorder: keep local-only patches on top of mainstream patches (Ale Gadea, Ganesh Sittampalam) - darcs dist --zip: generate a zip archive from a repository (Guillaume Hoffmann) - patch bundle contexts are minimized by default. Enables bundles to be applied to more repositories. (Guillaume Hoffmann) - darcs convert export/import for conversion to/from VCSes supporting the fast-export protocol (Petr Rockai, Owen Stephens, Guillaume Hoffmann, Lele Gaifax, Ben Franksen) - darcs test --backoff: exponential backoff test strategy, faster than bisect on big repositories (Michael Hendricks) - work normally on sshfs-mounted repositories (Nathaniel Filardo) - automatic detection of file/directory moves, and of token replaces (Jose Neder) - patience diff algorithm by default (Jose Neder) - interactive mode for whatsnew (Dan Frumin) - "tag --ask-deps" to create tags that may not include some patches (Ganesh Sittampalam) ## User Interface ## - add a last question after all patches have been selected to confirm the whole selection (Florent Becker) - command names: - clone is the new name of get and put - log is the new name of changes - amend is the new name of amend-record - show output of log into a pager by default (Guillaume Hoffmann) - the output of log is more similar to git's: - show patch hash in UI (hash of the patch's metadata) - put author and date on separate lines (Guillaume Hoffmann) - enable to match on patch hash prefix with -h and --hash (Guillaume Hoffmann, Gian Piero Carrubba) - better messages: - better error messages for http and ssh errors (Ernesto Rodriguez) - init, add, remove, move and replace print confirmation messages (Guillaume Hoffmann) - rollback only happens in the working copy (Florent Becker, Guillaume Hoffmann) - darcs send no longer tries to send a mail by default (Eric Kow) - when no patch name given, directly invoke text editor (Jose Neder, Guillaume Hoffmann) - use nano as default text editor instead of vi (Guillaume Hoffmann) - keep log files for patch name and mail content in _darcs (Ale Gadea) - optimize and convert are now supercommands (Guillaume Hoffmann) - improve darcs help environment and darcs help markdown (Radoslav Dorcik, Guillaume Hoffmann) - warn about duplicate tags when creating a new one (Ale Gadea) - allow darcs mv into known, but deleted in working, file (Owen Stephens) - improve --not-in-remote, allowing multiple repos and use default (Owen Stephens) ## Performance ## - faster darcs diff (Petr Rockai) - faster log and annotate thanks to patch index data structure (BSRK Aditya, Benedikt Schmidt, Eric Kow, Guillaume Hoffmann, Ganesh Sittampalam) - faster push via ssh by using compression (Ben Franksen) - cloning to an ssh destination (formerly darcs put) is more efficient (Guillaume Hoffmann) - faster internal representation of patch hashes (Guillaume Hoffmann) - when cloning from http, use packs in a more predictable way (Guillaume Hoffmann) - store global cache in bucketed format (Marcio Diaz) ## Developer-related ## - require and support GHC 7.4 to 7.10 (Ganesh Sittampalam) - replace type witness CPP macros with plain Haskell (Eric Kow) - hashed-storage is bundled into darcs (Ganesh Sittampalam) - replace C SHA256 bindings with external libraries (Ganesh Sittampalam) - move the bits of the datetime package we need into Darcs.Util.DateTime (Ganesh Sittampalam) - build Darcs once rather than thrice. (Eric Kow) - remove home page and manual from darcs' repository (Guillaume Hoffmann) - run tests through cabal test (Ryan Desfosses) - run fewer darcs-1 related tests in testsuite (Ganesh Sittampalam) - Use custom replHook to fix cabal repl (Owen Stephens) - darcs.cabal: make Haskell2010 the default-language for all stanzas (Ben Franksen) - always compile with mmap support (Ganesh Sittampalam) - new options subsystem (Ben Franksen) - various cleanups, code restructurations and refactoring, haddocks (Will Langstroth, Owen Stephens, Florent Becker, Guillaume Hoffmann, Michael Hendricks, Eric Kow, Dan Frumin, Ganesh Sittampalam) ## Issues resolved in Darcs 2.10 ## - issue346: implement "patience diff" from bzr (Jose Neder) - issue642: Automatic detection of file renames (Jose Neder) - issue822: generalized the IO Type for better error messages and exception handling (Ernesto Rodriguez) - issue851: interactive mode for whatsnew (Dan Frumin) - issue904: Fix record on Linux/FUSE/sshfs (fall back to sloppy locks automatically) (Nathaniel Filardo) - issue1066: clone to ssh URL by locally cloning then copying by scp (Guillaume Hoffmann) - issue1268: enable to write darcs init x (Radoslav Dorcik) - issue1416: put log files in tempdir instead of in working dir (Ale Gadea) - issue1514: send --minimize-context flag for send (Guillaume Hoffmann) - issue1624: bucketed cache (Marcio Diaz) - issue1828: file listing and working --dry-run for mark-conflicts (Guillaume Hoffmann) - issue1987: Garbage collection for inventories and patches (Marcio Diaz) - issue2181: put cache in $XDG_CACHE_HOME (~/.cache by default) (Guillaume Hoffmann) - issue2193: make that finalizeTentativeChanges no longer run tests (Guillaume Hoffmann) - issue2198: move repo testing code to Darcs.Repository.Test (Guillaume Hoffmann) - issue2200: darcs replace complains if no filepaths given (Owen Stephens) - issue2204: do not send mail by default (Eric Kow) - issue2237: prevent patch index creation for non-hashed repos (Owen Stephens) - issue2235: Accept RFC2822 dates (Dave Love) - issue2246: add default boring entry for emacs session save files (Owen Stephens) - issue2253: attempting to use the patch index shouldn't create it on OF repos (Owen Stephens) - Issue2278: Document default value for --keep-date / --no-keep-date (Mark Stosberg) - issue2199: getMatchingTag needs to commute for dirty tags (Ganesh Sittampalam) - issue2247: move patch index creation into the job running code (Ganesh Sittampalam) - issue2238: let optsModifier remove all occurrences of LookForAdds (Gian Piero Carrubba) - issue2236: make 'n' an alias for 'q' in lastregret questions (Gian Piero Carrubba) - issue2155: Expurgate the non-functional annotate --xml-output option (Dave Love) - issue2248: always clean up rebase-in-progress state (Ganesh Sittampalam) - issue2270: fixed darcs changes -i --only-to-files (Sebastian Fischer) - issue2282: don't allow remote operations to copy the rebase patch (Ganesh Sittampalam) - issue2287: obliterate -O doesn't overwrite existing file. (Radoslav Dorcik) - issue2227: move the rebase patch to the end before an amend-record (Ganesh Sittampalam) - issue2277: rebase suspend and unsuspend supports --summary. (Radoslav Dorcik) - issue2311: posthook for 'get' should run in created repo (Sebastian Fischer) - issue2312: posthooks for 'record' and 'amend-record' should receive DARCS_PATCHES (Sebastian Fischer) - issue2163: new option for amend, select author for patch stealing. (Radoslav Dorcik) - issue2321: when no patch name given, directly invoke text editor (Jose Neder) - issue2320: save prompted author name in ~/.darcs/author instead of ./_darcs/prefs/author (Jose Neder) - issue2250: tabbing in usageHelper - pad by max length of command name (BSRK Aditya) - issue2309: annotate includes line numbers (Owen Stephens) - issue2334: fix win32 build removing file permission functions (Guillaume Hoffmann) - issue2343: darcs amend-record does not record my change (Jose Neder) - issue2335: one liner when adding tracked files if not verbose (Guillaume Hoffmann) - issue2313: whatsnew -l: Stack space overflow (Jose Neder) - issue2347: fix amend-record --prompt-long-comment (Guillaume Hoffmann) - issue2348: switch to cabal's test framework (Ryan Desfosses) - issue2209: Automatically detect replace (Jose Neder) - issue2332: ignore case of characters in prompt (Guillaume Hoffmann) - issue2263: Option --set-scripts-executable is not properly documented (Ale Gadea) - issue2367: rename amend-record to amend, make --unrecord more visible (Guillaume Hoffmann) - issue2345: solution using cabal's checkForeignDeps (Dan Frumin) - issue2357: switching to regex-compat-tdfa for unicode support (Dan Frumin) - issue2379: only use packs to copy pristine when up-to-date (Guillaume Hoffmann) - issue2365: correctly copy pristine in no-working-dir clones (Guillaume Hoffmann) - issue2244: darcs tag should warn about duplicate tags (Ale Gadea) - issue2364: don't break list of 'bad sources' (Sergei Trofimovich) - issue2361: optimize --reorder runs forever with one repository (Ale Gadea) - issue2364: fix file corruption on double fetch (Sergei Trofimovich) - issue2394: make optimize a supercommand (Guillaume Hoffmann) - issue2396: make convert a supercommand and enhance help strings (Guillaume Hoffmann) - issue2314: output-auto-name in defaults file (Ben Franksen) - issue2388: check if inventories dir has been created (Owen Stephens) - issue2249: Rename isFile to isValidLocalPath and WorkRepoURL to WorkRepoPossibleURL (Mateusz Lenik) - issue2153: allow skipping backwards through depended-upon patches (Andreas Brandt) - issue2380: allow darcs mv into known, but deleted in working, file (Owen Stephens) - issue2403: need to avoid moving the rebase patch to the end (Ganesh Sittampalam) - issue2409: implement darcs rebase apply (Ganesh Sittampalam) - issue2385: invoke pager without temporary file (Guillaume Hoffmann) - issue2333: better error message when pushing and darcs not in path (Ben Franksen) ## Known issues ## These are known new issues in darcs 2.10.0: - issue2269: rebase should warn about stolen patches at suspend, not unsuspend - issue2272: darcs rebase unsuspend should automate or semi-automate handling unrecorded changes - issue2276: darcs rebase unsuspend needs UI improvements for "You are not... Amend anyway?" - issue2359: convert --export mishandles Unicode filenames - issue2372: Please remove "HINT: I could not reach..." message - issue2423: diff only respecting --diff-command when a diff.exe is present - issue2436: rollback --patches takes ages before first prompt - issue2445: internal error if suspended patch is pulled into repository again - issue2449: test harness/shelly: need to handle mis-encoded/binary data