Revision 20131028184855-5ef8f-ba33870773ad9ee010a470ac8536b5c7ae331b50


What’s in 2.10

This page is a work in progress and summarizes the changes from version 2.8.4 to version 2.9.8.

User Interface

  • Add a last question after all patches have been selected to confirm the whole selection (Florent Becker)
  • add amend-unrecord alias (Ganesh Sittampalam)
  • rollback no longer records a patch (Florent Becker, Guillaume Hoffmann)
  • make darcs apply work with url (Guillaume Hoffmann)
  • Add rank to show authors (Owen Stephens)
  • Move some contents from manual to commands help strings (Guillaume Hoffmann)
  • make darcs init print a confirmation message when successful (Guillaume Hoffmann)
  • rename init –hashed into init –darcs-1 (Guillaume Hoffmann)
  • reintroduce environment variables help in darcs help environment and darcs help markdown (Radoslav Dorcik, Guillaume Hoffmann)
  • less confusing apply –skip-conflicts message when everything conflicts (Guillaume Hoffmann)
  • enable get –packs by defautl again (Guillaume Hoffmann)
  • when no patch name given, directly invoke text editor (Jose Neder, Guillaume Hoffmann)
  • gracefully refuse empty patch names (Guillaume Hoffmann)
  • make nano the default text editor instead of vi (Guillaume Hoffmann)
  • explicitely announce added, removed and moved files (Guillaume Hoffmann)


  • Optimize darcs diff (Petr Rockai)
  • Patch index (faster changes and annotate commands) (BSRK Aditya, Benedikt Schmidt, Eric Kow)
  • correctly set curl connection timeout (Guillaume Hoffmann)
  • fix stack overflow bug with whatsnew (Jose Neder)

New features

  • Implement exponential backoff test strategy (Michael Hendricks) Use exponential backoff to locate a subset of patches on which to perform a bisect. For large repositories or recent regressions, this strategy is faster than either linear or bisect.
  • introduce darcs help markdown, convert help messages to markdown (Guillaume Hoffmann)
  • rebase (Ganesh Sittampalam)
  • darcs should now normally work on sshfs-mounted repositories (Nathaniel Filardo)
  • patience diff algorithm (Jose Neder)


  • require GHC 7.0 (Ganesh Sittampalam)
  • support GHC 7.6 / base 4.6 (Ganesh Sittampalam)
  • Various cleanups and refactoring, haddocks: Will Langstroth, Owen Stephens, Florent Becker, Guillaume Hoffmann, Michael Hendricks, Eric Kow
  • Build Darcs once rather than thrice. (Eric Kow)
  • Remove GADT_WITNESSES ifdef (Eric Kow)
  • Replace witness CPP macros with plain Haskell (Eric Kow)
  • Remove home page from darcs’ repository (Guillaume Hoffmann)
  • Remove latex manual from darcs’ repository (Guillaume Hoffmann)
  • Restructure source code into main modules Darcs.Util, Darcs.Patch , Darcs.Repository and Darcs.UI (Guillaume Hoffmann, Ganesh Sittampalam)
  • refactoring in Darcs.Patch (Ganesh Sittampalam)
  • use nubSort function from data-ordlist instead of own (Guillaume Hoffmann)
  • Create Darcs.UI.Message hierarchy. (Eric Kow)
  • replace C SHA256 bindings with external libraries (Ganesh Sittampalam)

Issues resolved in Darcs 2.10

  • 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)
  • issue904: Fix record on Linux/FUSE/sshfs (fall back to sloppy locks automatically) (Nathaniel Filardo)
  • issue2274: create patch index only with commands that take a lock (Guillaume Hoffmann)
  • 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)
  • issue1828: file listing and working –dry-run for mark-conflicts (Guillaume Hoffmann)
  • issue2309: annotate includes line numbers (Owen Stephens)
  • issue2181: put cache in $XDG_CACHE_HOME (~/.cache by default) (Guillaume Hoffmann)
  • issue2334 fix win32 build removing file permission functions (Guillaume Hoffmann)
  • issue346: implement “patience diff” from bzr (Jose Neder)
  • 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)

Todo-list for the release