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.

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

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

  3. 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.)

  4. 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://username@tug.org/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.)

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

  6. 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:password@tug.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.

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

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 explained separately.


$Date: 2021/07/06 21:09:56 $; TeX Live;
TUG home page; webmaster; facebook; twitter; mastodon;   (via DuckDuckGo)