[Nick Allen] >>> Unfortunately, restore does not do the same for unified_diff. I do >>> not see any similar function that is intended for unified_diff. >>> Does anyone know how to "restore" from a unified diff generated >>> delta?
[Tim Peters] >> That's in general impossible, since unified diffs generally omit >> most lines that compared equal to begin with. Unified and >> context diffs are, in part, compression gimmicks, showing only >> what changed plus a bit of context. ndiff shows everything, so >> can restore everything too. [Mike Meyer] > The unix patch utility seems to do a fine job of handling the unix > unified and context diffs. Of course it does, but "the diff" isn't the only input to `patch`, you also need to give `patch` the original source file (or one closely related to it). `patch` would be deep magic indeed if it could deduce either the "before" or "after" file from a context or unified diff *alone*. But both the "before" and "after" files *can* be deduced from an ndiff diff alone. This remains a truly trivial observation: ndiff can do this because the full text of both input files is part of the output it produces. unified/context diffs cannot generally do this because they don't generally contain the full text of either input file. -- http://mail.python.org/mailman/listinfo/python-list