================ To do before 1.0 ================ ================================ To do either before or after 1.0 ================================ * Add a --clean option to optimize to get rid of old cruft in the _darcs directory (old patches, etc). * Make check by default give a bit more verbose and useful output. * Add manual section explaining how conflicts and conflict resolution work. * Make apply support patch bundles as base64-encoded attachments. * Add documentation for the interactive record mode. * Write an interactive conflict resolution command. * Add a date range parser ("in the last 3 weeks"), and support for nicer 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. * Make darcs record of a remove only prompt for removal patch when removing a file, not also for the deleting of the file contents. Similarly for add. * 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. =============== To do after 1.0 =============== * 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. * 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. * Change handling of conflicts to keep track of auto resolutions so sequential pulls can't cause trouble in the working directory. * 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)