TeX Live and Subversion
(This page is about accessing the development sources for TeX Live.
Sources for each
release are available separately, as large tar files.)
TeX Live uses the Subversion system for source
control, to support development by many people simultaneously.
Subversion must be used to commit changes, but is not needed (or
recommended) simply for read-only access to the development sources.
You can also use git-over-svn (20+GB),
with some caveats and coordination.
So, for TL developers (wanting to commit changes):
For public (read-only) access:
- You can browse the repository via the
web; this always reflects the current state of the repository.
(Footnote: the ls-R and texlive.tlpdb files are
excluded from browsing, since they are updated at least daily and
generating their history for robots, etc., is a big load on the server.
Use rsync or svn to view these files.)
- You can retrieve the compilable sources (only) via the rsync command:
rsync -a --delete --exclude=.svn tug.org::tldevsrc/Build/source .
This command will copy the repository contents to the current directory;
the destination . can be replaced with any directory, as usual.
If you leave off the ., it will list the (very many) files that
would be copied. Once you have the files, another rsync with the same
arguments will keep you updated. The master tree is updated hourly.
- If you want to retrieve the entire development tree, both source
and runtime (12+gb), as opposed to only the sources (<2gb), replace
tldevsrc/Build/source in the above with just tldevsrc.
- You can also retrieve the underlying Subversion database files via
rsync -a --delete tug.org::tldevrepo .
Naturally, this requires much more disk space than the previous option
(35+gb and counting), but it is the most efficient way of getting all the
- Anonymous Subversion access is also supported:
svn co svn://tug.org/texlive/trunk/Build/source
Replace co with list to test the connection. Notice
that's an svn: url, not http(s):.
In this case, you must set the Subversion
configuration value use-commit-times=yes. Otherwise, you
will induce many unwanted dependencies (makeinfo, bison/flex, autotools,
...). All such generated files are up-to-date in the repository; for
instance, if your build tries to remake tlbuild.info (in
source/doc), it is almost certainly because you did not have
To get the sources from a branch, e.g.:
svn co svn://tug.org/texlive/branches/branch2018/Build/source
- Summary build instructions are
available, intended especially for those building the binaries
distributed with TL. The tlbuild
manual has full details about the source organization, how to
build, etc. README files throughout the sources also
Final tip: to use Subversion checkouts but still exclude
some directories, such as Master/bin/arch for the
architectures you don't use, you can merely avoid doing an update or
checkout from the bin, Master, or top level, or use
$Date: 2018/10/04 23:12:58 $;