I have added the function diff-repo, which calculates the patch between the pristine tree and your working copy. If you have a checked-out repository recent enough to have a _darcs/pristine directory (version 0.1.0 qualifies), try something like:
(with-open-file (f "/tmp/the-patch" :direction :output :element-type '(unsigned-byte 8)) (dolist (patch (darcs:diff-repo "/path/to/repo/")) (darcs::write-patch patch f)))
and see if the created file makes any sense. You can also try combining the result of diff-repo with apply-patch and/or invert-patch.
Hopefully this will soon lead to functions to show a human-readable diff of changes, and a function to record patches.
Magnus