DiffApply

DiffApply[diffobj,expr]

returns the result of applying the given DiffObject to the expression expr.

DiffApply[diffobj,expr,File["file"]]

writes the result of changing expr to file.

Details and Options

  • DiffApply can transform the following types of expressions:
  • lists{}returns differences between two lists
    text"text", File["fname.txt"]returns differences in individual characters, words or lines between two blocks of text
    biomolecular sequencesBioSequence[]returns differences in letter strings between two biomolecular sequences
    cellsCell[], CellObject[]returns differences in content, styles and options between two cells
    notebooksNotebook[], NotebookObject[], File["fname.nb"]returns differences in cells and options between two notebooks
  • diffobj must be a DiffObject that was generated from the same type of expression as expr.
  • DiffApply[Diff[old,new],old] returns new, assuming that old and new are supported for diffing.
  • If a DiffObject was generated by Diff3, DiffApply will merge all changes into a single result, as long as there are no conflicts.
  • When writing the output to a file, existing files are not overwritten by default. Use DiffApply[,OverwriteTargetTrue] to force an existing file to be overwritten.
  • If DiffApply returns a Failure object, the following tags are used:
  • "InvalidDiffObject"diffobj is not a valid DiffObject
    "DiffObjectContainsConflicts"diffobj contains conflict markers
    "WrongType"the expression type of diffobj is different from expr
    "DiffApplyFailure"diffobj contains changes that do not map onto expr
    "CantOverwriteFile""file" exists and the OverwriteTarget setting does not allow it to be overwritten

Examples

open allclose all

Basic Examples  (2)

Apply diffs to a list:

Apply diffs to a string:

Scope  (2)

Apply two different changes to a common ancestor:

Apply changes one word at a time:

Possible Issues  (2)

Applying a DiffObject that includes conflicts will return a Failure object:

A DiffObject can only be applied to the same kind of expression that generated it:

Wolfram Research (2024), DiffApply, Wolfram Language function, https://reference.wolfram.com/language/ref/DiffApply.html.

Text

Wolfram Research (2024), DiffApply, Wolfram Language function, https://reference.wolfram.com/language/ref/DiffApply.html.

CMS

Wolfram Language. 2024. "DiffApply." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/DiffApply.html.

APA

Wolfram Language. (2024). DiffApply. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DiffApply.html

BibTeX

@misc{reference.wolfram_2024_diffapply, author="Wolfram Research", title="{DiffApply}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/DiffApply.html}", note=[Accessed: 10-September-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_diffapply, organization={Wolfram Research}, title={DiffApply}, year={2024}, url={https://reference.wolfram.com/language/ref/DiffApply.html}, note=[Accessed: 10-September-2024 ]}