Using Eclipse to Build and Apply a Patch

A patch is a small piece of software designed to update or fix problems with a computer program or its supporting data. This includes fixing bugs, replacing graphics and improving the usability or performance.

Building a Patch
Building a patch in Eclipse is simple:

1. Use Eclipse to create a project from an SVN repository: File > New > Project > Checkout projects from SVN 2. Revise the source code for the project until you solve the problem.

3. Create a patch. Eclipse will concatenate all of the changes you made to the source code: Right click on project > Team > Create patch... 4. Save the patch in a regular text file.

5. Submit the patch to the repository or email it to other software developers for further testing.

Applying a Patch
A developer can apply a patch file to his/her project in a few simple steps.

1. Open the apply patch wizard: Right click on project >Team >Apply patch 

2. Select the patch file and click next. Select the project to patch and click next.

3. In the next window you will be presented with a summary of the patch with files that will be touched. Initially the files may be listed as file does not exist. To apply the patch to the correct files: under Patch Options select Ignore leading path name segments until the matching files are found.

4. Check the files you want to apply the patch to and click finish.

Reversing a Patch
 Right click on project > TEam > Revert 

Sample Patch
Here's an example of a VMOSS patch. Lines marked with --- name the original file. Lines marked with +++ name the edited file. Lines marked with + are new lines and lines marked with - are deleted lines. Expressions such as @@ -80,6 +80,7 @@ provide the exact location in the file.

Index: /Users/rmorelli/hfoss/workspace/vmoss110/mod/admin/main.inc

=
====================================================== --- /Users/rmorelli/hfoss/workspace/vmoss110/mod/admin/main.inc	(revision 14) +++ /Users/rmorelli/hfoss/workspace/vmoss110/mod/admin/main.inc	(working copy) @@ -80,6 +80,7 @@ 	 Config Values Customize VMOSS from the raw configuration values. +		Click here for Help   displayACLAudit($bad_requests, $current_requests, $unclassified_tables, $dao->getDataClassificationLevels); break; +			+			case 'help': +				$this->displayHelp; +			break; default: $this->displayDefaultAdminPage; Index: /Users/rmorelli/hfoss/workspace/vmoss110/mod/vm/templates/admin/help.tpl

=
====================================================== --- /Users/rmorelli/hfoss/workspace/vmoss110/mod/vm/templates/admin/help.tpl	(revision 0) +++ /Users/rmorelli/hfoss/workspace/vmoss110/mod/vm/templates/admin/help.tpl	(revision 0) @@ -0,0 +1,19 @@ +Help

+

+

+As an Admin User you will want to configure certain features of the The Volunteer Management Module.

+

+

+

+ Location

+

+Currently VMOSS does not come preconfigured with locations--that is, countries, states, cities, etc. There

+are two ways to configure locations. One is manually, by inserting new countries, states, cities into the

+system. The other way is to run a SQL script that contains all the locations for a given country.

+

+

+

+ Further Customizations

+

+Further customizations are available via the Administration menu, where you may add locations, organizations, and access control customizations.

+ \ No newline at end of file Index: /Users/rmorelli/hfoss/workspace/vmoss110/mod/vm/templates/volunteer/portal.tpl

=
====================================================== --- /Users/rmorelli/hfoss/workspace/vmoss110/mod/vm/templates/volunteer/portal.tpl	(revision 14) +++ /Users/rmorelli/hfoss/workspace/vmoss110/mod/vm/templates/volunteer/portal.tpl	(working copy) @@ -78,4 +78,7 @@ {/if}

-Click here for Help \ No newline at end of file +Click here for Help +

+ +Click here for CONFIGURATION Help \ No newline at end of file Index: /Users/rmorelli/hfoss/workspace/vmoss110/mod/vm/view/AdminView.php

=
====================================================== --- /Users/rmorelli/hfoss/workspace/vmoss110/mod/vm/view/AdminView.php	(revision 14) +++ /Users/rmorelli/hfoss/workspace/vmoss110/mod/vm/view/AdminView.php	(working copy) @@ -150,6 +150,10 @@ 		$this->engine->assign('user_roles', $user_roles); $this->engine->display('admin/acl_modify_user.tpl'); } +	+	function displayHelp { +		$this->engine->display('admin/help.tpl'); +	} }