> 1.what are the various tools commonly used in free software or open
> source projects to track different versions?

A classic is "cvs" (concurrent versions system), which works fine,
but a more modern alternative "svn" (subversion) is getting popular.
The Linux kernel uses "git" (homepage git.or.cz).

> 2.what is a patch? how does it work?what is its complimentary tool?

A patch describes the difference between two versions of a file,
often a source code text file. You create it with "diff -u" (the
file format of the patch is "unified diff") and you "apply" it
with "patch". The tool which reads patches and modifies text files
according to the differences described in the patch is itself
called "patch" :-).

Example of a patch:

> diff -s -u old.txt new.txt > difference.diff
> cat difference.diff

--- old.txt     2007-07-20 14:56:49.000000000 +0200
+++ new.txt     2007-07-20 14:57:28.000000000 +0200
@@ -1,7 +1,7 @@
 Man, n.:
         An animal so lost in rapturous contemplation of what he thinks
-e is as to overlook what he indubitably ought to be.  His hief
-occupation is extermination of other animals and his own pecies, which,
+he is as to overlook what he indubitably ought to be.  His chief
+occupation is extermination of other animals and his own species, which,
 however, multiplies with such insistent apidity as to infest the whole
 habitable earth and Canada.
                 -- Ambrose Bierce, "The Devil's Dictionary"

> patch < difference.diff
patching file old.txt

> diff -s -u old.txt new.txt
Files old.txt and new.txt are identical

So now "patch" has modified "old.txt" based on the information
in "difference.diff" to have the same contents as "new.txt" :-).
The old.txt and new.txt files can be much bigger than the bit
about "Man", and you still only have to have the ".diff" file
which contains the "-" and "+" lines and a few lines before and
after them. The latter are to help knowing if "patch" is at the
right place in the file when it edits the file.


This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
Freedos-user mailing list

Reply via email to