Subversion

From TYPO3Wiki

Jump to: navigation, search

<< Back to Developer manuals page

[edit]

Note updated to forge-URLs

See old version: Subversion/Old, This update in work by Steffen Müller and Daniel Brüßler.


This is a draft version. You're welcome to edit it.
When the content is good enough, please change the {{draft}} tag to {{review}} .



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:

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:

(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.

Image:rapidsvnscreenshot.png

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

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 At the moment, the maintainer does not recommend to use it

in productive environment.


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)
Note We have used np_subversion in approximatly 10 production environments for a couple

of months now and - although some features are still missing - it is useable and useful.


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

Personal tools