svn.html 5.29 KB
Newer Older
1
<?php
2 3 4 5 6 7 8 9 10 11 12
   $title = "VideoLAN - Subversion repository";
?>

<h1>Subversion repository</h1>

<h2>Basic information</h2>

<p>As of late, VideoLAN is migrating all it's CVS repositories to <a href="
http://subversion.tigris.org">Subversion</a> 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
13 14
for some people but will pay of big time in the end. There used to be scripts
in place that kept our old CVS repositories available to anonymous CVS users,
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
15 16
but these scripts were broken, so the CVS repositories are no longer available.
All developers have to use SVN though. If you had a CVS account
17 18 19 20
before, but no SVN account yet, then mail the <a href="mailto:vlc-devel@videolan.org">
Developer Mailinglist</a>.
</p>

Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
21
<p>The SVN server is called
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
<code>svn.videolan.org</code>.
For instance to retrieve the HEAD vlc source: </p>

<code>
svn co svn://svn.videolan.org/vlc/trunk vlc-trunk
</code>

<p>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
</p>

<h2>Available modules</h2>

<ul>
  <li><b>svn://svn.videolan.org/vlc</b>: VideoLAN Client; </li>
  <li><b>svn://svn.videolan.org/vls</b>: VideoLAN Server; </li>
  <li><b>svn://svn.videolan.org/libdvdcss</b>: library for decrypting DVDs, used by VLC and VLS. </li>
  <li><b>svn://svn.videolan.org/libdvdplay</b>: library for DVD navigation, used by VLC. </li>
  <li><b>svn://svn.videolan.org/libdvbpsi</b>: library for parsing Program Specific Information
from MPEG and DVB streams, used by VLC and VLS. </li>
Eric Petit's avatar
Eric Petit committed
42
  <li><b>svn://svn.videolan.org/x264</b>: library for H.264/AVC encoding, used by VLC. </li>
43 44
  <li><b>svn://svn.videolan.org/videolan/www.videolan.org</b>: the website (no trunk or branches) 
  <li><b>svn://svn.videolan.org/videolan/developers.videolan.org</b>: the developers website (no trunk or branches)
45 46 47 48
</ul>

<h2>SVNWeb</h2>

49
<p>You can browse the SVN repositories using <!--<a href="http://developers.videolan.org/cgi-bin/viewcvs.cgi">ViewCVS</a> or --><a href="http://trac.videolan.org/vlc/browser/">Trac</a>.</p>
50 51 52 53 54


<h2>Development tarball snapshots</h2>

<p>If you have trouble using SVN, you can use our <a
55
href="http://nightlies.videolan.org/build/source/">daily VLC Development
56 57 58 59
snapshots</a>. </p>

<h2>VLC nightly builds</h2>

60
<p>We have <a href="http://nightlies.videolan.org">nightly builds</a> of VLC for Windows, Mac OS X, Debian Linux Unstable (Sid) and BeOS.
61
</p>
62 63 64

<h2>Write access policy</h2>

Christophe Mutricy's avatar
Christophe Mutricy committed
65
<p> As usual in opensource projects, you get write access to the SVN 
66 67 68
repository when you have shown your skills and ability to write good
patches :) </p>

Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
69
<h2>Useful SVN tips</h2>
70 71

<p>
72 73
Here are some SVN usage tips by Sam Hocevar.<br />
A full manual to SVN can be found <a href="http://svnbook.red-bean.com/svnbook/index.html">here</a>.
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
74
</p>
75 76 77 78 79 80 81 82 83 84 85 86

<p><b>Repository layout</b></p>

<p>
   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.</p>

<p>
   Never download a full svn tree! It would download several hundreds of
megabytes. Instead, only get the trunk directory, like that:
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
87
</p>
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
88
<pre>
89
    $ svn co svn://svn.videolan.org/vlc/trunk vlc-trunk
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
90
</pre><p>
91
   If you need a specific branch or tag, (eg. branch 0.2), use this:
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
92
</p><pre>
93
    $ svn co svn://svn.videolan.org/vlc/branches/0.2 vlc-0.2
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
94
</pre><p>
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
95
   If you need to know which branches are available, use <code>svn ls</code>:
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
96
</p><pre>
97
    $ svn ls svn://svn.videolan.org/vlc/branches/
98 99 100 101
    0.2
    0.2.92
    0.4.1
    $
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
102
</pre><p>
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
103
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.
104 105 106 107
</p>

<p><b>Moving files</b></p>
<p>
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
108
   No longer create new files from scratch when moving files! Use <code>svn mv</code>:
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
109
</p><pre>
110
    $ svn mv file1 file2
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
111
</pre><p>
112 113 114 115 116 117
   It also works for entire directories.
</p>

<p><b>Splitting files</b></p>
<p>
   Do not create a new file from scratch! Instead, copy the old file
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
118
using <code>svn cp</code>, remove the old file and modify both newly created files:
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
119
</p><pre>
120 121 122 123 124
    $ svn cp old new1
    $ svn cp old new2
    $ svn delete old
    [edit new1 and new2]
    $ svn commit
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
125
</pre>
126 127 128

<p><b>Getting information about locally modified files</b></p>
<p>
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
129 130 131
   Use <code>svn status</code> to know which files were modified, deleted or
created. A network connection is not needed for that, do not use <code>svn
update</code> just to know your local modifications.
132
</p><p>
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
133
   <code>svn diff</code> does not require a network connection either if you only
134 135 136 137 138 139 140 141
want to show your local modifications.
</p>

<p><b>.cvsignore</b></p>

<p>
   There is no filesystem equivalent to .cvsignore. Instead, metadata
are used. To edit the ignore list for a given directory, use this:
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
142
</p><pre>
143
    $ svn propedit svn:ignore mydirectory
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
144
</pre>
145

Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
146
<p><b>$Id:</b></p>
147 148 149
<p>
   $Id is no longer automatically taken in account; instead, it has to
be activated in a per-file basis using properties:
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
150
</p><pre>
151
    $ svn propedit svn:keywords myfile
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
152
</pre><p>
153 154 155
   Just add "Id" to the list of properties.
</p>