Subversion
<< Back to Developer manuals page
Subversion, short SVN, is a concurrent versioning system, a lot like CVS, but better. The TYPO3 community used it for collaborative development on the TYPO3 sourcecode and still uses it for the work on extensions. On this page you can read about the how and why.
Contents |
About the SVN repositories
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.
All subversion repositories moved to
https://svn.typo3.org/
| Project | Subversion/ trunk |
| TYPO3 4.x | https://svn.typo3.org/TYPO3v4/Core/trunk/ Attention: This repository is no longer used. Use the Git repository instead. For more information see here. |
| TYPO3 4.x Extensions | https://svn.typo3.org/TYPO3v4/Extensions/EXTENSIONKEY/trunk/ |
| TYPO3 5.x | https://svn.typo3.org/TYPO3v5/Distributions/Base/trunk/ |
| FLOW3 Packages | https://svn.typo3.org/FLOW3/Packages/PACKAGENAME/trunk/ |
See
Graphical Clients
TortoiseSVN
| Platform | Download | License |
| Windows | http://tortoisesvn.net/downloads | CC |
Aptana
http://www.aptana.com/ (An IDE for web-projects based on Eclipse)
Preparation
- activate the view in the menu: Window/ Open Perspective / SVN Repository Exploring
- add the repository: URL "https://svn.typo3.org/Teams/DocTeam" (this will download 37,7 MB, all DocTeam-files)
- right mouse klick and select "New repository location"
- choose "checkout as new project"
Update
To update the files of your working copy select the main folder of your SVN project, then klick the right mouse button and choose Team > Update.
Commit
You can edit the file in the project-perspective. To commit the file klick the right mouse button, and choose Team > Commit.
rapidSVN
rapidSVN is a cross-platform subversion client. There are versions for windows, linux and mac. On Ubuntu you can install it with the package manager.
Documentation: http://www.rapidsvn.org/index.php/Documentation
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. "doc_tut_editors"
- 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 "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/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 )
CrossVC
Cross-platform Version Control
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):
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"
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
svn - shell access
See
- HowTo managed by the forge-project
- Diff-patch
- subversion online book: http://svnbook.red-bean.com/
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
Attention: This repository is no longer used and does no longer reflect the current state of the project's sourcecode.
Use the new Git repository instead.
For more information see here.
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.
