Checking out from SVN
Normal qooxdoo users will most likely prefer to simply download the archive of the official release. If you are a developer or contributor and want to work with the latest SVN code, you should have some familiarity with version control systems.
qooxdoo Repositories
qooxdoo uses two public code repositories, both hosted at SourceForge.net. The framework core is maintained in qooxdoo, while additional framework components and contributions are maintained in qooxdoo-contrib. To access the qooxdoo SVN use the following configuration:
- Hostname:
qooxdoo.svn.sourceforge.net - Port:
443 - Protocol:
HTTPS - Repository Path:
/svnroot/qooxdoo - Username: Your SourceForge.net username (only required for SVN write operations)
- Password: Your SourceForge.net user password (only required for SVN write operations)
qooxdoo-contrib is similar, just replace the repository name.
About Subversion
Documentation on SVN is available, e.g. from Sourceforge. Comprehensive documentation can be found for different languages.
Clients and tools for Subversion
A command-line client is included with many operating systems (e.g. Linux, Mac OS X), it can even be installed for Windows (using the unix-like environment Cygwin.
Command-line tools may be powerful, but tend to be error-prone and often inconvenient to use, so you might prefer graphical tools:
- Eclipse (built-in SVN integration since v3.4), cross platform)
- TortoiseSVN (Windows)
- SCPlugin (Mac OS X)
There also is an overview of clients and plugins.
For the rest of this article we focus on the SVN command-line client. You need to have subversion installed locally. It is included with most operating systems (Linux. Mac OS X), or for Windows can be installed within Cygwin.
Subversion Config Settings
You’ll need to add a couple of config settings to your SVN config file. If you are on Windows, that’s located at:
C:\Documents and Settings\YourUserName\Application Data\Subversion\config
And on UNIX/Mac OS X:
~/.subversion/config
Enable auto-props
Open it up in your favorite text editor. Most configs have some default settings, so locate [miscellany] and enable-auto-props in the file. If they exist, make sure that they are uncommented (remove # from beginning of line), otherwise add them. The line should look like:
[miscellany] enable-auto-props = yes
Configure auto-props
Next, locate the section [auto-props]. If it doesn’t exist, add it. If it already exists but is commented out, simply uncomment it. Add or modify the following entries below [auto-props]:
*.sh = svn:eol-style=native;svn:executable *.py = svn:eol-style=native;svn:executable *.txt = svn:eol-style=native *.rest = svn:eol-style=native *.css = svn:eol-style=native *.xml = svn:eol-style=native *.xsl = svn:eol-style=native *.xslt = svn:eol-style=native *.html = svn:eol-style=native *.htm = svn:eol-style=native *.htc = svn:eol-style=native *.svg = svn:eol-style=native *.js = svn:eol-style=native *.png = svn:mime-type=image/png *.gif = svn:mime-type=image/gif *.jpg = svn:mime-type=image/jpeg *.jpeg = svn:mime-type=image/jpeg Makefile = svn:eol-style=native README = svn:eol-style=native CHANGELOG = svn:eol-style=native LICENSE = svn:eol-style=native AUTHORS = svn:eol-style=native RELEASENOTES = svn:eol-style=native TODO = svn:eol-style=native
SVN structure
Below the Subversion repository path https://qooxdoo.svn.sourceforge.net/svnroot/qooxdoo/ the following folder structure exists:
branches/
legacy_0_1_x/*
legacy_0_5_x/*
legacy_0_6_x/*
legacy_0_7_x/*
...
tags/
release_0_1/*
...
release_0_6_6/*
release_0_6_7/*
...
release_0_7_3/*
release_0_7_4/*
...
release_0_8/*
release_0_8_1/*
...
trunk/*
Each of the folders marked by a trailing * contains a folder qooxdoo/ that holds the corresponding SVN version of the framework. The meanings of the three categories are:
trunk
This is the place where most of the actual development of the framework happens. Development activity for qooxdoo is high, so there are often many commits just within a few minutes. As a consequence, such a snapshot of the trunk is not always stable. It is usually not recommended for production use or as a starting point for learning how to use qooxdoo.
branches
Having just said that most of the development happens in the trunk, all remaining development activity usually takes place in temporary branches. The convention is to start their name with devel_. Such branches are supposed to exist for only a limited period of time. They often function as isolated playgrounds that would otherwise render the trunk version unusable for a longer time. Such a devel branch is removed from SVN once the results have been merged into trunk or another branch, or if the results were not satisfying.
Folders that start with legacy_ are available for a (reasonably) unlimited time. Such a branch is often created when a new release is published, but work on the next major version needs to be started. The legacy branches then continue to be used for developing the latest stable “line” of code, e.g.”legacy_0_7_x” for a next version for the “0.7” line.
If contributors are interested in further development of such a legacy line, they should (if appropriate) commit changes to both - the line in question and the trunk. Bugfixes only relevant for the legacy line ought to be committed exclusively to the line in question.
It is recommended to keep updating your custom applications with each new stable qooxdoo release. Built-in migration support usually helps a lot, so it is recommended to invest time into migrating custom applications rather than bugfixing outdated qooxdoo releases.
tags
All official releases are permanently available under the tags/ folder. They may be checked-out individually. Those tags are are regarded “read-only” and must not be changed after the corresponding release.
Checking-out from repository
trunk
Please execute the following shell command to checkout the latest development version of qooxdoo (the so-called SVN “trunk”). The appropriate files are transferred from the remote Subversion repository into a local directory named qooxdoo/:
$ svn co https://qooxdoo.svn.sourceforge.net/svnroot/qooxdoo/trunk/qooxdoo
Specific branch or tag
To checkout a specific branch or tag please use the following commands (’name-of-...’’ being placeholders). The optional last argument specifies the target directory. It is a good practice to put the branch/tag name dot-separated after the project’s name:
$ svn co https://qooxdoo.svn.sourceforge.net/svnroot/qooxdoo/branches/name-of-branch qooxdoo.name-of-branch
or for tags:
$ svn co https://qooxdoo.svn.sourceforge.net/svnroot/qooxdoo/tags/name-of-tag qooxdoo.name-of-tag
