$title = "VideoLAN - Subversion repository"; ?>
As of late, VideoLAN is migrating all it's CVS repositories to Subversion repositories. Subversion (SVN) was built to be like CVS, but without many of it's faults. This could only be done by breaking backwards compatibility with CVS. It will be a bit painful at first for some people but will pay of big time in the end. Currently there are scripts in place that will keep our old CVS repositories available to anonymous CVS users. All developers have to use SVN though. If you had a CVS account before, but no SVN account yet, then mail the Developer Mailinglist.
The SVN server is called
For instance to retrieve the HEAD vlc source:
svn co svn://svn.videolan.org/vlc/trunk vlc-trunk
In case you do not have access to the repository for some reason, or if you are plain lazy, you can download nightly development snapshots (source and binary). See the bottom of the page
There is no webinterface to the SVN repositories yet. You can browse the CVS repository which is being kept in sync with SVN.
If you have trouble using SVN, you can use our daily VLC Development snapshots.
We have nightly builds of VLC for Windows and Debian Woody
As usual in opensource projects, you get write access to the CVS repository when you have shown your skills and ability to write good patches :)
Here are some SVN usage tips by Sam Hocevar
There are three directories at the root of a SVN repository: trunk, branches, tags. The trunk directory is similar to the HEAD branch in CVS: it contains the most recent vlc tree. The branches and tags directories contains copies of the trunk at different times.
Never download a full svn tree! It would download several hundreds of
megabytes. Instead, only get the trunk directory, like that:
$ svn co svn://svn.videolan.org/trunk vlc-trunk
If you need a specific branch or tag, (eg. branch 0.2), use this:
$ svn co svn://svn.videolan.org/branches/0.2 vlc-0.2
If you need to know which branches are available, use "svn ls":
$ svn ls svn://svn.videolan.org/branches/
Note that you only need to authenticate yourself when you want to commit something. You do not need to enter a password when you checkout the sources.
No longer create new files from scratch when moving files! Use "svn mv":
$ svn mv file1 file2
It also works for entire directories.
Do not create a new file from scratch! Instead, copy the old file
using "svn cp", remove the old file and modify both newly created files:
$ svn cp old new1
$ svn cp old new2
$ svn delete old
[edit new1 and new2]
$ svn commit
Getting information about locally modified files
Use "svn status" to know which files were modified, deleted or created. A network connection is not needed for that, do not use "svn update" just to know your local modifications.
"svn diff" does not require a network connection either if you only want to show your local modifications.
There is no filesystem equivalent to .cvsignore. Instead, metadata
are used. To edit the ignore list for a given directory, use this:
$ svn propedit svn:ignore mydirectory
$Id is no longer automatically taken in account; instead, it has to
be activated in a per-file basis using properties:
$ svn propedit svn:keywords myfile
Just add "Id" to the list of properties.