Changes

Jump to: navigation, search

Brief introduction to SVN

104 bytes removed, 07:15, 21 October 2012
no edit summary
There are four kinds of branches in the Subversion Repository:
* ''trunk'' - There is only one trunk. All new feature development happens in the trunk. New releases never come from the trunk. The trunk for GRAMPS can be found here: https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/trunk
* ''maintenance'' - There are many maintenance branches. A maintenance branch is created from the trunk when all the features for a release are complete. New features are not committed to maintenance branch. Releases only come from maintenance branches. The purpose of maintenance branches is to allow the line of code to stabilize while new features are added in trunk. Maintenance branches can be found here: https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/branches/maintenance
* ''geps'' - These are meant for development of [[Portal:Enhancement_Proposals|Gramps Enhancement Proposals]]. Most of the time GEPS are developed in the ''trunk''. Occassionally a GEP will require extensive reworking or long periods when the code base is ususable. In these cases a branch in ''geps'' can be used as a temporary development area. Once the hard work is done the change should be merged into the trunk and the ''geps'' branch should be removed. ''greps'' branches should follow the naming convention ''gep-<###>-<descriptive text>'' e.g. ''gep-013-server''. Please read the [[#Working with development branches]] section for help with managing these branches.
The second method requires that svn be installed on your system (Debian/Ubuntu: <code>apt-get install subversion</code>; Fedora: <code>yum install subversion</code>).
With the SVN method, type the following in the command line: <code>
svn co https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/maintenance/gramps{{stable_branch}} gramps{{stable_branch}}</code>
You should see the downloading progress reported in your terminal. If you would like to update your source tree after some time, execute the following command in the top directory of the gramps{{stable_branch}} source tree:
To checkout a copy of the possibly unstable trunk to ./trunk:
<code>
svn co https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/trunk trunk
</code>
To checkout a copy of the last branch GRAMPS 3.4 ./gramps34:
<code>
svn co https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/maintenance/gramps34 gramps34
</code>
To checkout a copy of the last branch GRAMPS 3.3 ./gramps33:
<code>
svn co https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/maintenance/gramps33 gramps33
</code>
To checkout a copy of the last branch GRAMPS 3.2 ./gramps32:
<code>
svn co https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/maintenance/gramps32 gramps32
</code>
To checkout a copy of the last branch GRAMPS 3.1 ./gramps31:
<code>
svn co https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/maintenance/gramps31 gramps31
</code>
To checkout a copy of the older stable GRAMPS 3.0 ./gramps30:
<code>
svn co https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/maintenance/gramps30 gramps30
</code>
To checkout a copy of the older stable GRAMPS 2.2 ./gramps22:
<code>
svn co https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/maintenance/gramps22 gramps22
</code>
So first checkout a copy of the trunk to ./trunk:
svn co https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/trunk trunk
Then use your favorite editor to change whatever file(s) you want.
To create a branch from the ''trunk'':
svn copy https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/trunk https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/geps/gep-014-fab-feature
=== Merging ''trunk'' changes into the branch ===
cd gep-014-fab-feature
svn merge https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/trunk
'''NOTE''' you will see some modification to files that you are not expecting. If you look at these you will find that they are modifications to svn properties. These are used by the merging tool to keep track of what changes have already been applied.
cd gep-014-fab-feature
svn merge https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/trunk
svn commit -m "meaningful message"
cd trunk
svn merge --reintegrate https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/geps/gep-014-fab-feature
Now build it, test it, convince yourself that it all works and then commit the changes:
Now you '''must''' delete your branch. You can recreate it later if you need to but svn can not cope with doing another merge --reintegrate from the same branch:
svn remove https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/geps/gep-014-fab-feature
=== Removing branches ===
into the trunk or have been abandoned. To remove a branch:
svn remove https://grampssvn.svncode.sourceforgesf.net/svnrootp/gramps/code/gramps/branches/geps/gep-014-fab-feature
The developers reserve the right to remove branches that have been

Navigation menu