As patch files are text, they can be used with processes such as quality review and modification via a text editor. In addition to the diff command, a patch file can be produced by other programs, such as
Subversion,
CVS,
RCS,
Mercurial and
Git. Patches have been the crucial component of many
source control systems, including
CVS.
Advanced diffs When more advanced diffs are used, patches can be applied even to files that have been modified in the meantime, as long as those modifications do not interfere with the patch. This is achieved by using "
context diffs" and "
unified diffs" (also known as "unidiffs"), which surround each change with
context, which is the text immediately before and after the changed part. Patch can then use this context to locate the region to be patched even if it has been displaced by changes earlier in the file, using the line numbers in the diffs as a starting point. Because of this property, context and unified diffs are the preferred form of patches for submission to many software projects. The above features make diff and patch especially popular for exchanging modifications to
open-source software. Outsiders can download the latest publicly available source code, make modifications to it, and send them, in diff form, to the development team. Using diffs, the development team has the ability to effectively review the patches before applying them, and can apply them to a newer code base than the one the outside developer had access to. ==Examples==