Diff
Encyclopedia
In computing
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...

, diff is a file comparison
File comparison
File comparison in computing compares the contents of computer files, finding their common contents and their differences. The result of the comparison may be presented in a graphic user interface or as part of larger tasks in networks, file systems, or revision control.Some widely-used file...

 utility that outputs the differences between two files. It is typically used to show the changes between one version of a file and a former version of the same file. Diff displays the changes made per line for text files. Modern implementations also support binary files. The output is called a "diff", or a patch, since the output can be applied with the Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 program patch
Patch (Unix)
patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments...

. The output of similar file comparison utilities are also called a "diff". Like the use of the word "grep
Grep
grep is a command-line text-search utility originally written for Unix. The name comes from the ed command g/re/p...

" for describing the act of searching, the word diff is used in jargon
Jargon
Jargon is terminology which is especially defined in relationship to a specific activity, profession, group, or event. The philosophe Condillac observed in 1782 that "Every science requires a special language because every science has its own ideas." As a rationalist member of the Enlightenment he...

 as a verb for calculating any difference.

History

The diff utility was developed in the early 1970s on the Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 operating system which was emerging from AT&T
AT&T
AT&T Inc. is an American multinational telecommunications corporation headquartered in Whitacre Tower, Dallas, Texas, United States. It is the largest provider of mobile telephony and fixed telephony in the United States, and is also a provider of broadband and subscription television services...

 Bell Labs
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...

 in Murray Hill, New Jersey. The final version, first shipped with the 5th Edition of Unix in 1974, was entirely written by Douglas McIlroy
Douglas McIlroy
Malcolm Douglas McIlroy is a mathematician, engineer, and programmer. As of 2007 he is an Adjunct Professor of Computer Science at Dartmouth College. Dr...

. This research was published in a 1976 paper co-written with James W. Hunt who developed an initial prototype of diff. The algorithm this paper described became known as the Hunt–McIlroy algorithm.

McIlroy's work was preceded and influenced by Steve Johnson
Stephen C. Johnson
Stephen Curtis Johnson spent nearly 20 years at Bell Labs and AT&T where he wrote yacc, lint, spell and the Portable C Compiler machine .Johnson earned his PhD in mathematics but has spent his entire career in computer science...

's comparison program on GECOS
Gecos
GECOS or gecos may stand for:*General Electric Comprehensive Operating Supervisor , which was later renamed to General Comprehensive Operating System...

 and Mike Lesk
Mike Lesk
Michael E. Lesk is a computer programmer.In the 1960s, Michael Lesk worked for the SMART Information Retrieval System project, wrote much of its retrieval code and did many of the retrieval experiments, as well as obtaining a PhD in Chemical Physics....

's proof program. proof also originated on Unix and, like diff, produced line-by-line changes and even used angle-brackets (">" and "<") for presenting line insertions and deletions in the program's output. The heuristic
Heuristic
Heuristic refers to experience-based techniques for problem solving, learning, and discovery. Heuristic methods are used to speed up the process of finding a satisfactory solution, where an exhaustive search is impractical...

s used in these early applications were, however, deemed unreliable. The potential usefulness of a diff tool provoked McIlroy into researching and designing a more robust tool that could be used in a variety of tasks but perform well in the processing and size limitations of the PDP-11
PDP-11
The PDP-11 was a series of 16-bit minicomputers sold by Digital Equipment Corporation from 1970 into the 1990s, one of a succession of products in the PDP series. The PDP-11 replaced the PDP-8 in many real-time applications, although both product lines lived in parallel for more than 10 years...

's hardware. His approach to the problem resulted from collaboration also with individuals at Bell Labs including Alfred Aho
Alfred Aho
Alfred Vaino Aho is a Canadian computer scientist.-Career:Aho received a B.A.Sc. in Engineering Physics from the University of Toronto and a Ph.D. in Electrical Engineering/Computer Science from Princeton University...

, Elliot Pinson, Jeffrey Ullman
Jeffrey Ullman
Jeffrey David Ullman is a renowned computer scientist. His textbooks on compilers , theory of computation , data structures, and databases are regarded as standards in their fields.-Early life & Career:Ullman received a Bachelor of Science degree in Engineering...

, and Harold S. Stone.

In the context of Unix, the use of the ed line editor provided diff with the natural ability to create machine-usable "edit scripts". These edit scripts, when saved to a file, can, along with the original file, be reconstituted by ed into the modified file in its entirety. This greatly reduced the secondary storage necessary to maintain multiple versions of a file. McIlroy considered writing a post-processor for diff where a variety of output formats could be designed and implemented, but he found it more frugal and simpler to have diff be responsible for generating the syntax and reverse-order input accepted by the ed command.
In 1985, Larry Wall
Larry Wall
Larry Wall is a programmer and author, most widely known for his creation of the Perl programming language in 1987.-Education:Wall earned his bachelor's degree from Seattle Pacific University in 1976....

 composed a separate utility, patch
Patch (Unix)
patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments...

, that generalized and extended the ability to modify files with diff output. Modes in Emacs
Emacs
Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...

 also allow for converting the format of patches and even editing patches interactively.

In diff's early years, common uses included comparing changes in the source of software code and markup for technical documents, verifying program debugging output, comparing filesystem listings and analyzing computer assembly code. The output targeted for ed was motivated to provide compression for a sequence of modifications made to a file. The Source Code Control System
Source Code Control System
Source Code Control System is an early revision control system, geared toward program source code and other text files. It was originally developed in SNOBOL at Bell Labs in 1972 by Marc J. Rochkind for an IBM System/370 computer running OS/360 MVT...

 (SCCS) and its ability to archive revisions emerged in the late 1970s as a consequence of storing edit scripts from diff.

Algorithm

The operation of diff is based on solving the longest common subsequence problem
Longest common subsequence problem
The longest common subsequence problem is to find the longest subsequence common to all sequences in a set of sequences . Note that subsequence is different from a substring, see substring vs. subsequence...

.

In this problem, you have two sequences of items:

a b c d f g h j q z

a b c d e f g i j k r x y z

and you want to find a longest sequence of items that is present in both original sequences in the same order. That is, you want to find a new sequence which can be obtained from the first sequence by deleting some items, and from the second sequence by deleting other items. You also want this sequence to be as long as possible. In this case it is

a b c d f g j z

From a longest common subsequence it's only a small step to get diff-like output: if an item is absent in the subsequence but present in the original, it must have been deleted. (The '–' marks, below.) If it is absent in the subsequence but present in the second sequence, it must have been added in. (The '+' marks.)

e h i q k r x y
+ - + - + + + +

Usage

It is invoked from the command line with the names of two files: diff original new. The output of the command represents the changes required to make the original file become the new file.

If original and new are directories, then diff will be run on each file that exists in both directories. An option, -r, will recursively descend any matching subdirectories to compare files between directories.

Any of the examples in the article use the following two files, original and new:

original:
1 This part of the
2 document has stayed the
3 same from version to
4 version. It shouldn't
5 be shown if it doesn't
6 change. Otherwise, that
7 would not be helping to
8 compress the size of the
9 changes.
10
11 This paragraph contains
12 text that is outdated.
13 It will be deleted in the
14 near future.
15
16 It is important to spell
17 check this dokument. On
18 the other hand, a
19 misspelled word isn't
20 the end of the world.
21 Nothing in the rest of
22 this paragraph needs to
23 be changed. Things can
24 be added after it.

new:
1 This is an important
2 notice! It should
3 therefore be located at
4 the beginning of this
5 document!
6
7 This part of the
8 document has stayed the
9 same from version to
10 version. It shouldn't
11 be shown if it doesn't
12 change. Otherwise, that
13 would not be helping to
14 compress anything.
15
16 It is important to spell
17 check this document. On
18 the other hand, a
19 misspelled word isn't
20 the end of the world.
21 Nothing in the rest of
22 this paragraph needs to
23 be changed. Things can
24 be added after it.
25
26 This paragraph contains
27 important new additions
28 to this document.

The command diff original new produces the following normal diff output:

0a1,6
> This is an important
> notice! It should
> therefore be located at
> the beginning of this
> document!
>
8,14c14
< compress the size of the
< changes.
<
< This paragraph contains
< text that is outdated.
< It will be deleted in the
< near future.
---
> compress anything.
17c17
< check this dokument. On
---
> check this document. On
24a25,28
>
> This paragraph contains
> important new additions
> to this document.


In this traditional output format, a stands for added, d for deleted and c for changed. Line numbers of the original file appear before a/d/c and those of the modified file appear after. Angle brackets appear at the beginning of lines that are added, deleted or changed. Addition lines are added to the original file to appear in the new file. Deletion lines are deleted from the original file to be missing in the new file.

By default, lines common to both files are not shown. Lines that have moved are shown as added at their new location and as deleted from their old location. However, some diff tools (e.g. ExamDiff Pro
ExamDiff Pro
ExamDiff Pro is a software utility for visual file comparison and directory comparison. ExamDiff Pro runs on Microsoft Windows.ExamDiff Pro features a double-pane view that allows for side-by-side comparisons, with color-coded line numbers indicating whether each line is added, deleted, or changed...

) highlight moved lines.

Variations

Changes since 1975 include improvements to the core algorithm, the addition of useful features to the command, and the design of new output formats. The basic algorithm is described in the papers An O(ND) Difference Algorithm and its Variations by Eugene W. Myers
and in A File Comparison Program by Webb Miller and Myers.
The algorithm was independently discovered and described in Algorithms for Approximate String Matching, by Esko Ukkonen.
The first editions of the diff program were designed for line comparisons of text files expecting the newline
Newline
In computing, a newline, also known as a line break or end-of-line marker, is a special character or sequence of characters signifying the end of a line of text. The name comes from the fact that the next character after the newline will appear on a new line—that is, on the next line below the...

 character to delimit lines. By the 1980s, support for binary files resulted in a shift in the application's design and implementation.

Edit script

An edit script
Ed (text editor)
ed is a line editor for the Unix operating system. It was one of the first end-user programs hosted on the system and has been standard in Unix-based systems ever since. ed was originally written in PDP-11/20 assembler by Ken Thompson in 1971...

 can still be generated by modern versions of diff with the -e option. The resulting edit script for this example is as follows:

24a

This paragraph contains
important new additions
to this document.
.
17c
check this document. On
.
8,14c
compress anything.
.
0a
This is an important
notice! It should
therefore be located at
the beginning of this
document!

.

In order to transform the content of file original into the content of file new using ed one should append two lines to this diff file one containing a w (write) character and one containing a q (quit) character (e.g. by echo -e 'w\nq' >> mydiff). Here we gave the diff file the name mydiff and the transformation will then happen when you run ed -s original < mydiff.

Context format

The Berkeley distribution of Unix made a point of adding the context format (-c) and the ability to recurse on filesystem directory structures (-r), adding those features in 2.8 BSD, released in July 1981. The context format of diff introduced at Berkeley helped with distributing patches for source code that may have been changed minimally.

In the context format, any changed lines are shown alongside unchanged lines before and after. The inclusion of any number of unchanged lines provides a context to the patch. The context consists of lines that have not changed between the two files and serve as a reference to locate the lines' place in a modified file and find the intended location for a change to be applied regardless of whether the line numbers still correspond. The context format introduces greater readability for humans and reliability when applying the patch, and an output which is accepted as input to the patch
Patch (Unix)
patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments...

 program. This intelligent behavior isn't possible with the traditional diff output.

The number of unchanged lines shown above and below a change hunk can be defined by the user, even zero, but three lines is typically the default. If the context of unchanged lines in a hunk overlap with an adjacent hunk, then diff will avoid duplicating the unchanged lines and merge the hunks into a single hunk.

A "!" represents a change between lines that correspond in the two files. A "+" represents the addition of a line, while a blank space
Space (punctuation)
In writing, a space is a blank area devoid of content, serving to separate words, letters, numbers, and punctuation. Conventions for interword and intersentence spaces vary among languages, and in some cases the spacing rules are quite complex....

 represents an unchanged line. At the beginning of the patch is the file information, including the full path and a time stamp. At the beginning of each hunk are the line numbers that apply for the corresponding change in the files. A number range appearing between sets of three asterisks applies to the original file, while sets of three dashes apply to the new file. The hunk ranges specify the starting and ending line numbers in the respective file.

The command diff -c original new produces the following output:
      • /path/to/original timestamp

--- /path/to/new timestamp
                        • 1,3 ****

                    --- 1,9 ----
                    + This is an important
                    + notice! It should
                    + therefore be located at
                    + the beginning of this
                    + document!
                    +
                    This part of the
                    document has stayed the
                    same from version to
                                            • 5,20 ****

                                        be shown if it doesn't
                                        change. Otherwise, that
                                        would not be helping to
                                        ! compress the size of the
                                        ! changes.
                                        !
                                        ! This paragraph contains
                                        ! text that is outdated.
                                        ! It will be deleted in the
                                        ! near future.

                                        It is important to spell
                                        ! check this dokument. On
                                        the other hand, a
                                        misspelled word isn't
                                        the end of the world.
                                        --- 11,20 ----
                                        be shown if it doesn't
                                        change. Otherwise, that
                                        would not be helping to
                                        ! compress anything.

                                        It is important to spell
                                        ! check this document. On
                                        the other hand, a
                                        misspelled word isn't
                                        the end of the world.
                                                                  • 22,24 ****

                                                              --- 22,28 ----
                                                              this paragraph needs to
                                                              be changed. Things can
                                                              be added after it.
                                                              +
                                                              + This paragraph contains
                                                              + important new additions
                                                              + to this document.

                                                              Unified format

                                                              The unified format (or unidiff) inherits the technical improvements made by the context format, but produces a smaller diff with old and new text presented immediately adjacent. Unified format is usually invoked using the "-u" command line option. This output is often used as input to the patch
                                                              Patch (Unix)
                                                              patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments...

                                                               program. Many projects specifically request that "diffs" be submitted in the unified format, making unified diff format the most common format for exchange between software developers.

                                                              Unified context diffs were originally developed by Wayne Davison
                                                              Wayne Davison
                                                              Wayne Davison is a noted programmer and musician, born on 14 December in the US state of California.Davison's first well-known project was trn, a Usenet newsreader based on Larry Wall's rn....

                                                               in August 1990 (in unidiff which appeared in Volume 14 of comp.sources.misc). Richard Stallman
                                                              Richard Stallman
                                                              Richard Matthew Stallman , often shortened to rms,"'Richard Stallman' is just my mundane name; you can call me 'rms'"|last= Stallman|first= Richard|date= N.D.|work=Richard Stallman's homepage...

                                                               added unified diff support to the GNU Project
                                                              GNU
                                                              GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...

                                                              's diff utility one month later, and the feature debuted in GNU diff 1.15, released in January 1991. GNU diff has since generalized the context format to allow arbitrary formatting of diffs.

                                                              The format starts with the same two-line header
                                                              Header
                                                              Header may refer to: Computers and engineering* Header , supplemental data at the beginning of a data block** E-mail header** HTTP header* Header file, a text file used in computer programming...

                                                               as the context format, except that the original file is preceded by "---" and the new file is preceded by "+++". Following this are one or more change hunks that contain the line differences in the file. The unchanged, contextual lines are preceded by a space character, addition lines are preceded by a plus sign, and deletion lines are preceded by a minus sign.

                                                              A hunk begins with range information and is immediately followed with the line additions, line deletions, and any number of the contextual lines. The range information is surrounded by double-at sign
                                                              At sign
                                                              The at sign , also called the ampersat, apetail, arroba, atmark, at symbol, commercial at or monkey tail, is formally an abbreviation of the accounting and commercial invoice term "at the rate of"...

                                                              s, and combines onto a single line what appears on two lines in the context format (above). The format of the range information line is as follows:

                                                              @@ -l,s +l,s @@

                                                              The hunk range information contains two hunk ranges. The range for the hunk of the original file is preceded by a minus symbol, and the range for the new file is preceded by a plus symbol. Each hunk range is of the format l,s where l is the starting line number and s is the number of lines the change hunk applies to for each respective file. In many versions of GNU diff, each range can omit the comma and trailing value s, in which case s defaults to 1. Note that the only really interesting value is the l line number of the first range; all the other values can be computed from the diff.

                                                              The hunk range for the original should be the sum of all contextual and deletion (including changed) hunk lines. The hunk range for the new file should be a sum of all contextual and addition (including changed) hunk lines. If hunk size information does not correspond with the number of lines in the hunk, then the diff could be considered invalid and be rejected.

                                                              If a line is modified, it is represented as a deletion and addition. Since the hunks of the original and new file appear in the same hunk, such changes would appear adjacent to one another.
                                                              An occurrence of this in the example below is:

                                                              -check this dokument. On
                                                              +check this document. On

                                                              The command diff -u original new produces the following output:

                                                              --- /path/to/original timestamp
                                                              +++ /path/to/new timestamp
                                                              @@ -1,3 +1,9 @@
                                                              +This is an important
                                                              +notice! It should
                                                              +therefore be located at
                                                              +the beginning of this
                                                              +document!
                                                              +
                                                              This part of the
                                                              document has stayed the
                                                              same from version to
                                                              @@ -5,16 +11,10 @@
                                                              be shown if it doesn't
                                                              change. Otherwise, that
                                                              would not be helping to
                                                              -compress the size of the
                                                              -changes.
                                                              -
                                                              -This paragraph contains
                                                              -text that is outdated.
                                                              -It will be deleted in the
                                                              -near future.
                                                              +compress anything.

                                                              It is important to spell
                                                              -check this dokument. On
                                                              +check this document. On
                                                              the other hand, a
                                                              misspelled word isn't
                                                              the end of the world.
                                                              @@ -22,3 +22,7 @@
                                                              this paragraph needs to
                                                              be changed. Things can
                                                              be added after it.
                                                              +
                                                              +This paragraph contains
                                                              +important new additions
                                                              +to this document.

                                                              There are some modifications and extensions to the diff formats that are used and understood by certain programs and in certain contexts. For example, some revision control
                                                              Revision control
                                                              Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...

                                                               systems—such as Subversion—specify a version number, "working copy", or any other comment instead of a timestamp in the diff's header section.

                                                              Some tools allow diffs for several different files to be merged into one, using a header for each modified file that may look something like this:

                                                              Index: path/to/file.cpp

                                                              As a special case, unified diff expects to work with files that end in a newline. If either file does not, unified diff will emit the special line

                                                              \ No newline at end of file

                                                              after the modifications. The patch
                                                              Patch (Unix)
                                                              patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments...

                                                               program should be aware of this.

                                                              Others

                                                              Postprocessors sdiff and diffmk render side-by-side diff listings and applied change marks to printed documents, respectively. Both were developed elsewhere in Bell Labs in or before 1981.

                                                              Diff3
                                                              Diff3
                                                              diff3 is a Unix utility to compare three files and show any differences among them. diff3 can also merge files,implementing the so called three-way merge.-Merging from a common ancestor:...

                                                               compares one file against two other files. It was originally developed by Paul Jensen to reconcile changes made by two people editing a common source. It is also used internally by many revision control systems.

                                                              GNU diff and diff3 are included in the diffutils package with other diff and patch
                                                              Patch (Unix)
                                                              patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments...

                                                               related utilities. Emacs
                                                              Emacs
                                                              Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...

                                                               has Ediff for showing the changes a patch would provide in a user interface that combines interactive editing and merging capabilities for patch files.

                                                              Wdiff shows the words or phrases that changed in a text document of written language even in the presence of word-wrapping or different column widths. Spiff compares files but ignores floating point differences with tunable precision and dismisses irrelevant code such as whitespace and comment formatting. Utilities that compare source files by their syntactic structure have been built mostly as research tools for some programming languages; some are available as commercial tools Tools exist to compare HTML and ones for XML have been published by Microsoft and IBM.

                                                              Free file comparison tools

                                                              • cmp
                                                              • comm
                                                                Comm
                                                                The comm command in the Unix family of computer operating systems is a utility that is used to compare two files for common and distinct lines. comm is specified in the POSIX standard. It has been widely available on Unix-like operating systems since the mid to late 1980s.-Usage:comm reads two...

                                                              • diff3
                                                                Diff3
                                                                diff3 is a Unix utility to compare three files and show any differences among them. diff3 can also merge files,implementing the so called three-way merge.-Merging from a common ancestor:...

                                                              • Kompare
                                                                Kompare
                                                                Kompare is a free software graphical computer application which helps the user to compare two different text files or two directories. It is part of the KDE SC desktop environment and therefore primarily used on Linux and other Unix-like operating systems...

                                                              • tkdiff
                                                                Tkdiff
                                                                tkdiff is a graphical diff viewer based on the Tk framework. It is capable of inter-operating with source-control systems like CVS and Subversion to show the differences between the local copy and the repository version...

                                                              • WinMerge
                                                                WinMerge
                                                                WinMerge is a free software tool for file comparison and merging text-like files. It is useful for determining what has changed between versions, and then merging changes between versions.The project is currently dormant.WinMerge runs on Microsoft Windows....

                                                                 (windows)
                                                              • UCC
                                                              • meld
                                                                Meld (software)
                                                                Meld is a free computer program for Linux and other Unix-like platforms, for viewing and merging differences between files in a graphical environment. It allows users to view a diff of two or three files visually, color coding the different lines...

                                                              • Diff Checker (web based)
                                                              • Web Diff (web based)
                                                              • Pretty Diff (web based)
                                                              • DiffMerge


                                                              See also

                                                              • Comparison of file comparison tools
                                                                Comparison of file comparison tools
                                                                -General:Basic general information about file comparison software.-Compare Features:-API / Editor Features:-Other features:Some other features which did not fit in previous table-Aspects:What aspects can be / are compared?...

                                                              • Delta encoding
                                                                Delta encoding
                                                                Delta encoding is a way of storing or transmitting data in the form of differences between sequential data rather than complete files; more generally this is known as data differencing...

                                                              • Difference operator
                                                              • Edit distance
                                                                Edit distance
                                                                In information theory and computer science, the edit distance between two strings of characters generally refers to the Levenshtein distance. However, according to Nico Jacobs, “The term ‘edit distance’ is sometimes used to refer to the distance in which insertions and deletions have equal cost and...

                                                                • Levenshtein distance
                                                                  Levenshtein distance
                                                                  In information theory and computer science, the Levenshtein distance is a string metric for measuring the amount of difference between two sequences...

                                                              • History of software configuration management
                                                                History of software configuration management
                                                                The history of software configuration management in computing can be traced back as early as the 1950s, when CM , originally for hardware development and production control, was being applied to software development. The first software configuration management was most likely done manually...

                                                              • Longest common subsequence problem
                                                                Longest common subsequence problem
                                                                The longest common subsequence problem is to find the longest subsequence common to all sequences in a set of sequences . Note that subsequence is different from a substring, see substring vs. subsequence...

                                                              • Microsoft File Compare
                                                                Microsoft File Compare
                                                                In computing, fc is a command line program that compares multiple files and outputs the differences between them. The fc command has been included in Microsoft operating systems since MS-DOS 2.0 and is included in all versions of Microsoft Windows.The command is equivalent to the Unix commands...

                                                              • Revision control
                                                                Revision control
                                                                Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...

                                                              • Software configuration management
                                                                Software configuration management
                                                                In software engineering, software configuration management is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines....



                                                              External links

                                                              • GNU Diff utilities. Made available by the Free Software Foundation
                                                                Free Software Foundation
                                                                The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software...

                                                                . Free Documentation. Free source code.
                                                              • JavaScript Implementation
                                                              The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK