2.2 lily-git

The ‘LilyPond Contributor’s Git Interface’ (otherwise known as lily-git.tcl) is a simple-to-use GUI to help you download and update the LilyPond source code as well as an aid to making software patches.

Where to get lily-git

Depending on your development environment, lily-git may already be installed on your computer.

Configuring lily-git and downloading the source code

Note: The rest of this manual assumes that you are using the command-line within a terminal.

  1. Type (or copy&paste) into the Terminal:

    You will be prompted to enter your name and your email address. This information is used only to identify and label any patches you create. This information can be edited if required later. See Configuring Git. Click on the Submit button to update lily-git with this information.

  2. Click on the “Get source” button.

    A directory called ‘$LILYPOND_GIT’ is now created within your home directory and the complete source code will start to be downloaded into it.

    Note: Be patient! The complete source is around 150 Mb.

    When the source code has been downloaded, the “Command output” window in lily-git will update and display “Done” on the very last line. The button label will change to say “Update source”.

    Note: Some contributors have reported that occasionally nothing happens at this step at all. If this occurs, then try again in a few minutes – it could be an intermittant network problem. If the problem persists, please ask for help.

  3. Close the lily-git GUI and navigate to the ‘$LILYPOND_GIT’ directory to view and edit the source files.

If this is the first time you have compiled LilyPond then please go to Compiling with LilyDev before reading on.

How to use lily-git

Note: Throughout the rest of this manual, most command-line input should be entered from ‘~/lilypond-git/’. This is known as the top source directory and is often referred to as $LILYPOND_GIT.

Note: Only work on one set of changes at once. Do not start work on any new changes until your first set has been accepted.

1. Update source

At the beginning of each session of lilypond work, you should click the “Update source” button to get the latest changes to the source code.

Note: In some rare and unfortunate circumstances, this will result in a merge conflict. If this occurs, follow the instructions for “Abort changes”, below. Your work will not be lost.

2a. New local commit

A single commit typically represents one logical set of related changes (such as a bug-fix), and may incorporate changes to multiple files at the same time.

When you’re finished making the changes for a commit, click the “New local commit” button. This will open the “Git Commit Message” window. The message header is required, and the message body is optional.

After entering a commit message, click “OK” to finalize the commit.

Advanced note: for more information regarding commits and commit messages, see Commits and patches.

2b. Amend previous commit

You can go back and make changes to the most recent commit with the “Amend previous commit” button. This is useful if a mistake is found after you have clicked the “New local commit” button.

To amend the most recent commit, re-edit the source files as needed and then click the “Amend previous commit” button. The earlier version of the commit is not saved, but is replaced by the new one.

Note: This does not update the patch files; if you have a patch file from an earlier version of the commit, you will need to make another patch set when using this feature. The old patch file will not be saved, but will be replaced by the new one after you click on “Make patch set”.

3. Make patch set

Before making a patch set from any commits, you should click the “Update source” button to make sure the commits are based on the most recent remote snapshot.

When you click the “Make patch set” button, lily-git.tcl will produce patch files for any new commits, saving them to the current directory. The command output will display the name of the new patch files near the end of the output:


Send patch files to the appropriate place:

The “Abort changes – Reset to origin” button

Note: Only use this if your local commit history gets hopelessly confused!

The button labeled “Abort changes – Reset to origin” will copy all changed files to a subdirectory of ‘$LILYPOND_GIT’ named ‘aborted_edits/’, and will reset the repository to the current state of the remote repository (at git.sv.gnu.org).

LilyPond — Contributor’s Guide v2.19.28 (development-branch).