WebGUI
      Click here to register.
      
Sprechen Sie WebGUI? Parlez vous WebGUI? Se habla WebGUI? Spreekt u WebGUI?

Do you speak WebGUI? Please help us translate WebGUI into your language.


Subversion

Beginning with WebGUI 6.8.x development will be conducted and tracked through Subversion (SVN) rather than CVS.  Here is the url to access SVN: https://svn.webgui.org/

We realize not everyone is familiar with the use of SVN.  Here is a basic guide on how to check out and use SVN. For more information, use svn help or read the online SVN manual.

Getting started

The first thing you'll need to do to start hacking on WebGUI is to do a checkout.

cd /data/WebGUI;
svn checkout https://svn.webgui.org/plainblack/WebGUI  ./

This will download the entire WebGUI core at its current state onto your computer. This is called your "working copy".

If you prefer to download one of the branch releases (say 7.3), use the following:

svn checkout https://svn.webgui.org/plainblack/branch/WebGUI_7.3 ./

Keeping Updated

Everytime someone changes the SVN repository, a new revision is created. In order to make sure you have the latest revision of the codebase, use the svn update command. 

cd /data/WebGUI;
svn update;

This will update your working copy to the latest revision in the repository.

Saving Your Changes

Now you've changed some code in your working copy, fixed any bugs you might have made, run the regression tests, and are ready to add your changes to WebGUI. In order to add your code to the repository, you must commit your changes using svn commit

cd /data/WebGUI;
svn commit

This will launch a text editor for you to add some comments about what you are committing, for example:

fix: Fixed a bug in Collaboration Systems where dates were not properly formatted
rfe: Added ability for user to configure how Collaboration System dates are formatted
Updated some documentation for WebGUI::Session::Date

At the bottom of the text editor window, you'll see a list of the files that have been added or changed in your new revision. Read the help for svn status to see what the symbol before the file path means.

Making Patches

If you do not have permission to commit to the repository, but still want to fix a bug or implement an RFE, you can help by submitting a patch. You can create patches in the unified diff format using svn diff. Follow the steps above for getting ready to save your changes (make sure there are no bugs, run the regression tests), but instead of svn commit do the following:

cd /data/WebGUI;
svn diff > patch.txt

You now have a unified diff at /data/WebGUI/patch.txt. You can apply this patch to other WebGUI instances by doing the following:

cd /data/WebGUI;
patch -p0 < /data/WebGUI/patch.txt

Read man patch for more information on how to apply patches.

Comparing Revisions

Find the revisions that you want to compare using SVN Web (see below). Use the following:

svn diff -r 4285:4287 https://svn.webgui.org/plainblack/branch/WebGUI_7.3 

SVN Layout

Head (or trunk) is stored at https://svn.webgui.org/plainblack/WebGUI. This is where all new development takes place. New branches get started in here. You probably only want to checkout this branch if you are doing bleeding edge development.

Branch development takes place in https://svn.webgui.org/plainblack/branch/. If you want to follow the development of a specific branch, this is what you will want to checkout.

Stable releases are in https://svn.webgui.org/plainblack/releases/. Use these directories if you need a specific release.

Viewing the Revision Log

You can review the revision log online via svnweb. Visit https://svn.webgui.org/svnweb/plainblack. Find the directory that you are interested in then click on "View Revision Log" at the top left of the screen to view changes made to the directory and subdirectories.

Using SVK

"SVK is a decentralized version control system built with the robust Subversion filesystem. It supports repository mirroring, disconnected operation, history-sensitive merging, and integrates with other version control systems, as well as popular visual merge tools."  -- see http://svk.bestpractical.com

Caveat Emptor 

SVK is a work-in-progress. I use it for development but have had to re-checkout a working directory or delete my local branch and rebuild from the upstream SVN repository. It has never been tragic but can be a nuisance. For me, the benefits outweigh the risks.

If you are always online, an alternative pattern would be to checkout your working directory from the mirror. The limitations of doing this is that, unless you have a commit bit, you will not be able to track your modifications and you cannot work offline.

Checkout

It is assumed that you have installed SVK and initialized your depot (see the link above for a tutorial).

  • Import Subversion repository (note: synch'ing will take awhile so have a good connection, about 200Mb of diskspace, and something useful to do while you wait; if the synchronization fails along the way, simply restart it)
svk mkdir //mirror
svk mirror https://svn.webgui.org/plainblack //mirror/plainblack
svk sync //mirror/plainblack
  •  Build a local branch of latest dev for offline development
svk cp -m'Create local branch' //mirror/plainblack //local/plainblack
  • Checkout the local copy of HEAD to a working directory
svk co //local/plainblack/WebGUI
  •  Checkout the 7.4 branch to a working directory

svk co //local/plainblack/branch/WebGUI_7.4
Now you can begin working on a local copy of WebGUI. To keep synchronized with the upstream, use 'svk pull' from your working directory (e.g., ~/WebGUI). To work on a branch, make a copy of the appropriate path (e.g., //mirror/plainblack/branch/WebGUI_7.3 //local/WebGUI_7.3).

Keywords: dev subversion