Subversion
From TYPO3Wiki
<< Back to Developer manuals page
Subversion, short SVN, is a concurrent versioning system, a lot like CVS, but better. The TYPO3 community uses it for collaborative development. On this page you can read about the how and why.
Contents |
About the SVN repositories
We mainly used two SVN repositories at Sourceforge: One was for the development of the TYPO3 4.x core including the system extensions and the main documentation. It's part of the TYPO3 project at Sourceforge. The other SVN repository was meant for TYPO3 extensions and can be found at the typo3xdev project.
Now all subversion repositories moved to forge.typo3.org.
There's a separate SVN repository for the TYPO3 5.0 project.
Keep in mind that the SVN repositories have nothing to do with the TYPO3 extension repository (TER). You may find an extension in both repositories, but this is not the rule. TER was not invented for collaborative extension development, so people decided to use SVN for daily extension development and TER for stable release.
On more hint on extensions: You can also fetch the latest version of an extensions as a t3d file. Have a look at the list of nightly snapshots at Sourceforge. For more information on collaborate extension development read the typo3xdev pages on typo3.org
websvn
Sourceforge also provides a websvn interface, which means that you can browse (and read) the code via www:
- Core, sysext & docs: https://svn.typo3.org/TYPO3v4/Core/
- Extensions: https://svn.typo3.org/TYPO3v4/Extensions/EXTENSIONKEY/
main SVN ressources
If you use on of the svn tools mentioned above, use the following URIs as an entry point for getting the latest trunk of TYPO3 4.x:
- Core + sysext: https://svn.typo3.org/TYPO3v4/Core/trunk/
- Docs: https://svn.typo3.org/TYPO3v4/Core/Documentation/trunk/
- Extensions: https://svn.typo3.org/TYPO3v4/Extensions/EXTENSIONKEY/trunk/
(for example tt_news is located at: https://svn.typo3.org/TYPO3v4/Extensions//tx_ttnews/trunk/ and kj_recycler is located at https://svn.typo3.org/TYPO3v4/Extensions//kj_recycler/trunk/ )
TortoiseSVN
| Platform | Download | row3 |
| Windows | http://tortoisesvn.net/downloads | CC |
rapidSVN
rapidSVN is a cross-platform subversion client. There are versions for windows, linux and mac. It's project page is http://rapidsvn.tigris.org/ On Ubuntu you can install it with the package manager.
checkout with rapidSVN
- Open rapidSVN
- rightclick on bookmarks and choose "add existing repository"
- use "https://svn.typo3.org/path/to/your/repository" as location
- you can now browse the online repository
- to check out parts of the repository right click on the folder you want to check out and choose "checkout new working copy"
- select a folder (destination directory) to store your local copy and press OK
You could also checkout without creating any bookmarks first:
- Choose repository from the top menu
- Click checkout
- Enter relevant information and press OK
tagging with rapidSVN
- navigate in the left bookmarks-folder to the extension you want to tag. e.g. "typo3_tut"
- click at folder "tags" - and it gets orange
- click at top menu "modify" and menu-item "create new folder" (or choose it from the right click menu)
- naming style is "Version-1-0-0"
- navigate to the folder "trunk" and select all inside
- right click and choose "copy"
- type in YOUR LOCAL location: /path/to/your/local/copy/extension/tags/Version-1-0-0 (NO trailing slash!)
- check with the browser: http://forge.typo3.org/repositories/show/projectname
commit / upload changes
- if you made changes to your local files they are displayed orange in the rapidSVN browser
- to commit your changes just right click on the file name and choose "commit"
creating diffs / patches
- to create a diff you just have to select the file to make the diff from and choose "diff" from the right click menu
- pay attention that you have to install a diff program (see list at http://www.rapidsvn.org/index.php/OnlineHelp:Contents#Programs )
KDEsvn
| Platform | Download | manual |
| Linux KDE or GNOME, Mac OS X, FreeBSD | package "kdesvn" (project) | kdesvn |
Newbee-HowTo checkout
- create a folder in the filesystem: "SVN_external" and a subfolder "TYPO3_v4". Add also a subfolder in it: "tx_ttnews"
- use a browser to see what project you want to check out: https://svn.typo3.org/TYPO3v4/Extensions/ e.g. "tx_ttnews"
- install (e.g. for Debian/ Ubuntu): <shellScript> :
apt-get install kdesvn - start KDEsvn and klick in the "Bookmarks"-menu: New Folder "TYPO3 version 4"
- click the button "Checkout Repository" or see it in the menu "Subversion" / "general"
- type in as URL e.g. for "tx_ttnews":
https://svn.typo3.org/TYPO3v4/Extensions/EXTENSIONKEY/trunk
- use the local folder you created where trunk gets stored e.g.
/d/SVN-extern/TYPO3_EXT/tx_ttnews
- let the setting as "HEAD" to choose the current version
- store it as bookmark for TYPO3 version 4 e.g. location
/d/SVN-extern/TYPO3_EXT/tx_ttnews/trunk
Newbee-HowTo create a diff
- make a little change in the code (e.g. the ChangeLog)
- start KDEsvn, choose the bookmark link to open the local repository-copy
- klick with the right mouse-button at the contextmenu-option "diff of local changes"
svn (command-line)
| Platform | Download | row3 |
| Linux, *BSD, OS X, Solaris, Windows, ... (cli) | http://subversion.tigris.org/project_packages.html | CC |
Checkout sources from repository
Checkout the latest revision (HEAD) of the TYPO3 v.4 core from trunk:
svn co https://svn.typo3.org/TYPO3v4/Core/trunk/ typo3
Create a diff
Once you have fixed a bug in the sources, create a patch by extracting your fix in unified diff format:
svn diff
You can optionally pipe the patch directly to a file for uploading it to the bugtracker:
svn diff > bug_1234.diff
The core-list is open for your requests. Please refer to the Core-Development Mailinglist Rules for how to ask for commiting your patch.
Web resources
subversion online book: http://svnbook.red-bean.com/
Extension: Subversion integration (np_subversion)
Mentioned here as a reminder for later changes...
Maybe this will be useful in future. If so, we should mention the ext because it's the TYPO3 way of using svn.
Note from the developers:
We just have released the current beta version which now includes the following features:
- visual diff between HEAD- or older revisions and working copy
- TYPO3 4.2 compatibility
- improved documentation
- some additional config settings (i.e. disable 'auto backup' feature by default)
Project site with latest info: http://projects.network-publishing.org/projects/show/np-subversion
source: http://typo3.org/extensions/repository/view/np_subversion/0.7.1/
doc: tt_address
TEMPLATE for new SVN-Tools
- web location and package name of the tools
- how to set the repository address
- checkout
- latest trunk
- certain branch
- updates from the rep
- up-/downgrade to a certain revision
- links to tool documentations
diff and patch
See diff-patch


