================
To do before 1.0
================

* Add a missing command that tells what patches they have but I don't and
  vice versa.

* Add a --clean option to optimize to get rid of old cruft in the _darcs
  directory (old patches, etc).

* Get darcs working (with email and everything) on windows.

* Make check by default give a bit more verbose and useful output.

* Add manual section explaining how conflicts and conflict resolution
  work.

* Doublecheck potential problem in commute_nameconflict when there is a
  conflict between two renames--this commute currently doesn't behave well
  if one of the original files gets renamed.  There is an interaction here
  between commute_nameconflict and commute_filedir that I need to check to
  make sure it is consistent.

* See about rewriting Merger commutes so that no merge with A^-1A will
  conflict.  This is mostly just a change in the merger commute, but also
  should involve writing a unit test and working on the name-conflict
  commute.  I think that when this property is implemented, elegant_merge
  can then be simplified and sped up by perhaps a factor of two.

* Find this bug: 'when selecting patches (using -m ...) for "darcs send"
  (or push IIRC), I always get asked for one extra patch, which doesn't
  match the given patchname.'

* Make apply support patch bundles as base64-encoded attachments.

* Think about what happens with merges and rollbacks.  Does an inverse of a
  merged patch behave like the merge of an inverted patch? I suspect not,
  and this connects with the "See about rewriting..." above.

* Write an interactive conflict resolution command.

* Add documentation for the interactive record mode.

================================
To do either before or after 1.0
================================

* Add a date range parser ("in the last 3 weeks"), and support for date
  matching in --match.

* Add an option to the 'optimize' command to arrange the patches so that
  the patches I have in common with another repo are at the beginning.

* Add a search command to look for changes matching some sort of pattern.

* Make darcs remove capable of removing files that have been added, but not
  recorded.

* Make darcs record of a remove only prompt for removal patch when removing
  a file, not also for the deleting of the file contents.

* Block together consecutive lines in annotate output that were added by
  the same patch and either deleted by the same patch or not yet deleted at
  all.

* Mark a remote patch as unwanted, so you won't get prompted for it on
  pulls (and similarly on pushes).

* Add support for signed patch bundles in a repository.

* Change handling of conflicts to keep track of auto resolutions so
  sequential pulls can't cause trouble in the working directory.

===============
To do after 1.0
===============

* Make pull smart about creating hard links when pulling from a local repo.

Patch types to add:
==================

* Patch includes (identical to patch depends, but hides included patch)

* Hunk indent/unindent (low priority)

* Hunk move (low priority--created by canonize)

* Word (like hunk, only operates on 'words' rather than 'lines', in a
  paragraph environment, with a given number of columns, with the lines
  being shifted around.  Intended for stuff like latex or long comments.
  VERY low priority)

