Subversion setup for TeX Live
This page explains how to configure Subversion to use with TeX Live,
so that you can commit changes to the TeX Live sources.
- If all you want to do is look at the sources, and not commit
changes, you don't need an account at all. You can browse the repository via the web, or if
you want to have a local copy of the files, you can get them with
rsync -a --delete --exclude=.svn tug.org::tldevsrc,
which requires only half the disk space (3gb) compared to a Subversion
checkout (6gb). Anonymous svn access is also supported, if you want the
version history: svn co svn://tug.org/texlive/trunk.
- If you need to commit changes, request an account. This short form simply
sends email to the Subversion administrators; account creation is not
automated or instant. While you're waiting, you can download and
configure the software, as follows.
- Download Subversion, either as
source for your own building pleasure, or premade binaries, available
for Windows, MacOSX, Red Hat, Debian, and many others. These are
command line programs. (Maybe you already have it installed.
Run svn --version to see.)
- To see if your program is working at all, run
svn --version. To see if it can connect to the Subversion
server on tug.org, run
svn list svn://email@example.com/texlive. It should
output /branches /tags /trunk, most likely without asking for
your password. (If you can't connect, and are behind a firewall,
you may have to allow outbound requests on TCP port 3690.)
- Make configuration settings. On Unixish systems, copy our config.txt file to
~/.subversion/config (overwriting the one that's there). On
Windows, copy the config.txt file to the
Subversion folder inside Application Data inside your
profile. (The settings can also be done in the Windows registry,
but that is harder.)
One of the settings in the config file is
use-commit-times=yes. This is crucial! Do not fail to define
it. You will induce many unnecessary dependencies (makeinfo,
bison/flex, autotools, ...) if you don't set this. The other things in
the config file mostly help keep files consistent across platforms.
There is nothing secret or sensitive in our config file, though it is
messy. Please read it. You can also read the config file
reference documentation if you are so inclined.
- Initially check out the files. This needs upwards of
22 gigabytes. If you don't have that much, forget the whole thing!
($ represents the prompt.)
$ mkdir /some/new/directory
$ cd /some/new/directory
$ svn co svn://username:firstname.lastname@example.org/texlive/trunk . >/tmp/out
There are tens of thousands of files in TL, so you probably want to
redirect output as shown above, or use -q.
- Make a test commit. It is advisable to try checking in a
meaningless change right away, to test if your setup is working. The
file Master/readme.en.html (or any other convenient file) can
be used for this; just delete or add a blank line (for example), and
then run, from within the Master directory:
svn commit -m"test msg" readme.en.html
It should ask for your password and then make the change. The
-m is the log message; on real commits, please try to be
somewhat more descriptive :). By the way, you can be in any directory
when doing a commit, and specify any file or directory name, absolute or
Subversion also has GUI clients: the cross-platform RapidSVN, and TortoiseSVN for Windows. Hans
Hagen recommends TortoiseSVN; more info welcome. There is also vc-svn.el for use with
Emacs (comes from Debian; the one in the Emacs development source does
not work with Emacs 21).
Thankfully, all of the above need only be done once. Normal usage and the checkin procedure is
$Date: 2021/07/06 21:09:56 $;