Getting source code with Subversion
On this page... (hide)
1. Introduction
Subversion (SVN) allows multiple people to work on code development at one time. You can get a lot more information on Subversion and/or download the code from its home page. We strongly recommend that you read the documentation and the Subversion FAQ.
2. Modules
There is one active module in the current Subversion repository:
- lyx-devel
- This is the new development and stable branch. The development will progress in branches and the main trunk will stay stable. All future source code development will be done in this repository.
While they are not in use anymore, these ones are kept for their historical interest:
- lyx-tests
- This repository contains various
.lyxfiles that may be useful for testing purposes. - www-user
- This is the Subversion repository holding the old user www pages.
- lyx-1_0_x
- This is the old stable release branch. No more work is being done on this branch.
- lyx
- This is the old and unstable development branch, and is not in use anymore.
- www-devel
- This used to hold the developer www pages. The contents has been merged into subdirectory
develofwww-user - lyxdoc
- Documentation for LyX 1.3.x is kept here (in the BRANCH_1_3_X branch) and folded in to the
docdirectory before release. It is not used anymore for the main trunk, since the documentation has been moved in thelyx-develmodule.
3. Trac source browser
Using SVN, you can download a whole module with just one command. If you want to look at just one SVN file, consider using Trac source browser. Trac is a tool that allows, among other things, for browsing an SVN repository and gives the possibility to browse diffs between arbitrary versions as well as reading log files and the like.
The Trac source browser for the LyX SVN repository is at the LyX home page. Most probably, though, you want to download a whole module. If so, read on.
4. Anonymous SVN login
From within the directory where you want to place your local copy of the sources, do:
svn co svn://svn.lyx.org/lyx/lyx-devel/trunk lyx-devel
This will make a directory lyx-devel and download lots of files into that directory. (A fresh copy will need about 150MB. However, depending on which frontends you are compiling, you will need a lot more space for the compiled version, up to 800MB).
Of course you can say svn co svn://svn.lyx.org/lyx/www-user/trunk www-user instead, depending on which module you'd like to download.
5. After the first download
If the code is updated, just cd to the lyx-devel directory and say:
svn update
This will magically download or patch only those files which have been changed or added, saving you (and the server) lots of time.
If you just want to check what's changed in your local copy as opposed to the repository, do:
svn status
If you want to check what's changed on the server, but not yet updated to your local copy, do:
svn status -u
6. Compiling the source
Just follow the directions in INSTALL, as if you had downloaded a tar file. For the stable module, this is pretty much just autogen.sh, configure, make, and make install.
If you want to compile and run the development module, things are somewhat more complicated than for the release module. You're going to need automake, autoconf, and gettext, which can be downloaded from your favorite GNU ftp site. (Start at gnu.org to find a mirror.) Once you've installed all of that stuff, just run the autogen.sh script written by Allan Rae, which will do things in the right order, and then tell you to run configure and make.
7. Changing the source
We strongly support any creative impulses you may have. Bug fixes, documentation, and new features will always be looked at carefully, and will usually be accepted, with a number of exceptions. New features will rarely be accepted for the stable release version. Documentation which does not follow the requirements of the DocStyle document will not be accepted. Aside from that, though, we love getting new contributions!
If you'd like to make changes to LyX, it will make everyone's life easier if you change the latest SVN sources rather than the latest release. Here's a quick rundown of what you would do:
- Get the latest version of the source with
svn update. A patch to old sources will be much harder to apply, and is therefore more likely to be ignored. - Change the files. (Either edit in place or copy them to somewhere else, edit them, and then copy them back to wherever you keep the SVN tree.)
- Run
svn diff > mypatch.diffto create a patch gzipthe patch, and send to the LyX developers' mailing list.
8. Write access via ssh
If you find yourself creating lots of patches that the LyX team incorporates into the code, you may be granted SVN access. In that case, your life becomes even easier. Instead of the above anonymous login, you can checkout the sources with
svn co svn+ssh://svn.lyx.org/lyx/lyx-devel/trunk lyx-devel
If the user name on your operating system differs from your svn login, do instead:
svn co svn+ssh://username@svn.lyx.org/lyx/lyx-devel/trunk lyx-devel
Then you just run a svn commit to check changes in to the Subversion tree, instead of creating a patch and mailing it in.
The LyX developers web site and the LyX Home Page are also under Subversion. They're probably not worth downloading unless you have write access, of course. They're both in the www-user module.
9. SVN Branches
The main development in LyX is done in SVN branches. If you are interested in helping develop or test work on these branches, you can check out a copy with a command like:
svn co svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_5_X lyx-1.5.x
| Branch Name | Maintainer | Status | Comment |
| trunk | JMatos | unstable | Main Branch |
| BRANCH_1_5_X | JSpitzm | stable | Stable 1.5 series branch |
There are also some older obsolete branches:
| Branch Name | Maintainer | Status | Comment |
| BRANCH_1_4_X | JMarc | stable | Stable 1.4 series branch |
| BRANCH_1_3_X | JMarc | stable | Stable 1.3 series branch |
| BRANCH-1_2_X | JMarc | stable | Stable 1.2 series branch |
| BRANCH_1_1_6 | JMarc | stable | Stabilizing of 1.1.6 |