Getting source code with Git
On this page... (hide)
1. Introduction
Git allows multiple people to work on code development at one time. You can get a lot more information on Git and/or download the code from its home page.
For more detailed usage with LyX (or in case you want to start work on the code) please have a look at our wiki pages.
2. LyX Git Repository
- lyx.git
- This repository hosts the LyX source code. The development of the forthcoming major release takes place in master branch and the minor (maintenance) releases are prepared in branches like 2.0.2. The forthcoming stable version resides in the most recent branch 2.0.x. According to old habits we sometimes call master branch trunk and maintenance branch simply as branch.
In Trac, you must use the "Visit" pull-down menu to select the branch that you wish to browse.
The non-wiki content of the LyX Home Page (e.g. the news and the announcements), upload section of wiki and dictionaries/thesauri are in standalone Git repositories.
3. Source browser
Using Git, you can download a whole repository with just one command. If you want to look at just one Git file, consider using source browser. Trac and Gitweb are tools that allow, among other things, for browsing an Git repository and gives the possibility to browse diffs between arbitrary versions as well as reading log files and the like.
Most probably, though, you want to download a Git repository. If so, read on.
4. Anonymous Git clone
From within the directory where you want to place your local copy of the sources, do:
git clone https://git.lyx.org/repos/lyx.git
This will make a directory lyx
and download lots of files into that directory. (A fresh copy will need about 800MB. However, you will need a lot more space for the compiled version -- up to 2 GB).
The old (way faster but less secure) protocol still works (git clone git://git.lyx.org/lyx
) and is also the only way how to get different repositories stored on the git server, unless you are developer.
You can switch to maintenance branch via git checkout 2.4.x
inside the lyx
directory.
If you suffer from slow connectivity to our git server, the initial 1 GB download might be too slow. We offer mirrors of the initial clone, the details are here.
5. After the first download
If the code is updated, just cd
to the lyx
directory and say:
git pull
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:
git status
6. Compiling the source
If you want to compile and run the development version, things are somewhat more complicated than for the downloaded tarballs, because you will need additional packages like automake
, autoconf
and gettext
.
In Linux just follow the directions in INSTALL
(this is pretty much like the usual ./autogen.sh
, ./configure
, make
, and make install
).
Alternatively consult INSTALL.Win32/MacOSX instructions.
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.
If you'd like to make changes to LyX, it will make everyone's life easier if you change the latest Git sources rather than the latest release. Here's a quick rundown of what you would do:
- Get the latest version of the source with
git pull
. A patch to old sources will be much harder to apply, and is therefore more likely to be ignored. - Change the files.
- Run
git diff > mypatch.diff
to create a patch. - send the patch to the LyX developers' mailing list.
Even better, you can send a proper commit, ready to be applied to the developers' source tree:
- Get the latest version of the source with
git pull
. A patch to old sources will be much harder to apply, and is therefore more likely to be ignored. - Change the files.
- Run
git commit -a
to create a commit. Note that this will launch an editor where you can describe what your change does. - Run
git format-patch -1
, which creates a file0001-title-of-your-patch.patch
in the current directory. - send it 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 Git access. In that case, your life becomes even easier. More detailed info is in our wiki.
9. Git Branches
The main development in LyX is done in Git branches. If you are interested in helping with development or test work on these branches, you can check out a copy with a command like:
git checkout 2.3.x
or
git checkout master
on already cloned repository.
Branch Name | Release Manager | Maintainer | Status | Comment |
master (trunk) | R Heck | unstable | Master Branch | |
branch 2.4.x | RG Heck | RG Heck | stable | Stable 2.4 series |
branch 2.3.x | S Kostyshak | RG Heck | stable | Stable 2.3 series |
branch 2.2.x | S Kostyshak | RG Heck | stable | Stable 2.2 series |
branch 2.1.x | VF Ravesteijn | RG Heck | stable | Stable 2.1 series |
branch 2.0.x | P Sanda | RG Heck | stable | Stable 2.0 series |
branch 1.6.x | JMatos | JSpitzm | stable | Stable 1.6 series |
branch 1.5.x | JMatos | JSpitzm | stable | Stable 1.5 series |
branch 1.4.x | LGBjønnes | JMarc | stable | Stable 1.4 series |
branch 1.3.x | JMarc | stable | Stable 1.3 series | |
branch 1.2.x | LGBjønnes | JMarc | stable | Stable 1.2 series |
branch 1.1.6 | JMarc | stable | Stabilizing of 1.1.6 |