= Fusion Developers Corner = [[PageOutline]] This is the spot for a lot of developer-related information. == Committers == Committers are people with valid [http://www.osgeo.org/osgeo_userid OSGeo User IDs] that have permission to commit changes to the SVN repository. Any existing committer can visit [https://www.osgeo.org/cgi-bin/auth/ldap_group.py?group=fusion this page] to add or remove committers. You will need the [http://www.osgeo.org/cgi-bin/ldap_web_search.py OSGeo User ID] to add users. The reference for this is [http://wiki.osgeo.org/wiki/Subversion#Add.2FRemove_Committer here]. A list of Fusion Committers is available [wiki:Committers here]. == Patches == Patches are text files that contain the difference between a locally checked out version of fusion and the version in the SVN repository. See CreatingPatches for instructions on how to create a patch and ApplyingPatches for applying a patch to your local working version. == SVN == [http://subversion.tigris.org/ Subversion (SVN)] is a tool for helping developers manage a code base. The Fusion code base is stored in an SVN repository hosted at OSGeo. You can view the source in your web browser [http://svn.osgeo.org/fusion directly] or use the built in [http://trac.osgeo.org/fusion/browser trac browser] for a more enjoyable experience. The Fusion SVN repository is [wiki:SVNOrganization organized into several main folders]. There are different ways of using SVN to work with a repository including a command line {{{svn}}} tool and several standalone and integrated graphical tools. We will typically describe the command-line use of SVN and it is up to you to find the equivalent functionality in your fancy graphical tool. See the following resources for more information on working with SVN: * [wiki:SVNCheckOut Get a working copy of the Fusion code] * [wiki:SVNUpdate Update a working copy of the Fusion code] * [wiki:SVNCommit Submit changes to the Fusion repository] * [wiki:CreatingPatches Using SVN to create patches] === Using SVN === To check out a copy of '''trunk''', a branch, a tagged version, or a sandbox, you need to know the ''URL'' and use {{{svn checkout }}}. For instance: * {{{svn co http://svn.osgeo.org/fusion/trunk}}} - check out trunk * {{{svn co http://svn.osgeo.org/fusion/branches/fusion-1.0}}} - check out the branch for version 1.0 * {{{svn co http://svn.osgeo.org/fusion/tags/fusion-1.0.0}}} - check out the 1.0.0 released version * {{{svn co http://svn.osgeo.org/fusion/sandbox/pagameba}}} - check out pagameba's sandbox Once you have a checked out copy, this is called a working copy. To update a working copy to the latest version, you use the ''update'' command with no arguments: * {{{svn update}}} To move the working copy to a specific revision number, you can add the ''revision'' parameter: * {{{svn update -r }}} To see if you have changes in your working copy against the current revision: * {{{svn status}}} To see the differences between your working copy and the current revision: * {{{svn diff}}} * {{{svn diff > diff.patch}}} redirects the output to a file that is suitable for using with the {{{patch}}} command == The Build Process == === Creating a binary build ===