1. Create test.c
Above file contains :
--------
[kamalma@test-1 C_Programming]$ cat test.c
#include
#include
int main()
{
printf("\n I'm kamal \n");
return 0;
}
--------
2. Compile it and check its output.
OP :
-------
[kamalma@test-1 C_Programming]$ ./test
I'm kamal
[kamalma@test-1 C_Programming]$
-------
3. Modify test.c and add new lines or codes in it. Lets say it test_modifed.c. This file contains following codes :
------
[kamalma@test-1 C_Programming]$ cat test_modified.c
#include
#include
int main()
{
printf("\n I'm kamal \n");
printf("\nI have added one more line. This comes from modifed code\n" );
return 0;
}
[kamalma@test-1 C_Programming]$
[kamalma@test-1 C_Programming]$ gcc -o test_modified test_modified.c
[kamalma@test-1 C_Programming]$ ./test_modified
I'm kamal
I have added one more line. This comes from modifed code
[kamalma@test-1 C_Programming]$
------
3. Then execute following command to create a patch in the same directory. :
diff -u test.c test_modified.c > test.patch.1
Here test.path.1 will contain following :
-----
[kamalma@test-1 C_Programming]$ cat test.patch.1
--- test.c 2012-07-17 07:52:39.000000000 +0530
+++ test_modified.c 2012-07-17 07:54:41.000000000 +0530
@@ -3,5 +3,6 @@
int main()
{
printf("\n I'm kamal \n");
+ printf("\nI have added one more line. This comes from modifed code\n" );
return 0;
}
[kamalma@test-1 C_Programming]$
-----
5. In order to apply patch to test.c file, you need to execute following command :
patch test.c < test.patch.1
Example :
---------
[kamalma@test-1 C_Programming]$ patch -u test.c < test.patch.1
patching file test.c
[kamalma@test-1 C_Programming]$ cat test.c
#include
#include
int main()
{
printf("\n I'm kamal \n");
printf("\nI have added one more line. This comes from modifed code\n" );
return 0;
}
[kamalma@test-1 C_Programming]$
-----------
Reverting back :
----------
[kamalma@test-1 C_Programming]$ patch -R test.c < test.patch.1
patching file test.c
[kamalma@test-1 C_Programming]$ cat test.c
#include
#include
int main()
{
printf("\n I'm kamal \n");
return 0;
}
[kamalma@test-1 C_Programming]$
----------
You can do dry-run (test prior to be originally chaning codes in test.c)
patch -p0 --dry-run test.c < test.patch.1
6. Now recompiling the test.c program :
---------
[kamalma@test-1 C_Programming]$ gcc -o testnew test.c
[kamalma@test-1 C_Programming]$ ./testnew
I'm kamal
I have added one more line. This comes from modifed code
[kamalma@test-1 C_Programming]$
---------
Above file contains :
--------
[kamalma@test-1 C_Programming]$ cat test.c
#include
#include
int main()
{
printf("\n I'm kamal \n");
return 0;
}
--------
2. Compile it and check its output.
OP :
-------
[kamalma@test-1 C_Programming]$ ./test
I'm kamal
[kamalma@test-1 C_Programming]$
-------
3. Modify test.c and add new lines or codes in it. Lets say it test_modifed.c. This file contains following codes :
------
[kamalma@test-1 C_Programming]$ cat test_modified.c
#include
#include
int main()
{
printf("\n I'm kamal \n");
printf("\nI have added one more line. This comes from modifed code\n" );
return 0;
}
[kamalma@test-1 C_Programming]$
[kamalma@test-1 C_Programming]$ gcc -o test_modified test_modified.c
[kamalma@test-1 C_Programming]$ ./test_modified
I'm kamal
I have added one more line. This comes from modifed code
[kamalma@test-1 C_Programming]$
------
3. Then execute following command to create a patch in the same directory. :
diff -u test.c test_modified.c > test.patch.1
Here test.path.1 will contain following :
-----
[kamalma@test-1 C_Programming]$ cat test.patch.1
--- test.c 2012-07-17 07:52:39.000000000 +0530
+++ test_modified.c 2012-07-17 07:54:41.000000000 +0530
@@ -3,5 +3,6 @@
int main()
{
printf("\n I'm kamal \n");
+ printf("\nI have added one more line. This comes from modifed code\n" );
return 0;
}
[kamalma@test-1 C_Programming]$
-----
5. In order to apply patch to test.c file, you need to execute following command :
patch test.c < test.patch.1
Example :
---------
[kamalma@test-1 C_Programming]$ patch -u test.c < test.patch.1
patching file test.c
[kamalma@test-1 C_Programming]$ cat test.c
#include
#include
int main()
{
printf("\n I'm kamal \n");
printf("\nI have added one more line. This comes from modifed code\n" );
return 0;
}
[kamalma@test-1 C_Programming]$
-----------
Reverting back :
----------
[kamalma@test-1 C_Programming]$ patch -R test.c < test.patch.1
patching file test.c
[kamalma@test-1 C_Programming]$ cat test.c
#include
#include
int main()
{
printf("\n I'm kamal \n");
return 0;
}
[kamalma@test-1 C_Programming]$
----------
You can do dry-run (test prior to be originally chaning codes in test.c)
patch -p0 --dry-run test.c < test.patch.1
6. Now recompiling the test.c program :
---------
[kamalma@test-1 C_Programming]$ gcc -o testnew test.c
[kamalma@test-1 C_Programming]$ ./testnew
I'm kamal
I have added one more line. This comes from modifed code
[kamalma@test-1 C_Programming]$
---------