@node Working with source code
@chapter Working with source code
+New contributors should only read @ref{Using lily-git}. Please
+ignore the rest of this chapter.
+
+Advanced contributors will find the rest of this material quite
+useful, particularly if they are working on major new features.
@menu
* Using lily-git::
@node Using lily-git
@section Using lily-git
+@subsubheading Install and Configuration
+
+@enumerate
+@item
+If you haven't already, download and install Git.
+
+@itemize
+
+@item Windows users: download the @code{.exe} file labeled
+@qq{Full installer for official Git} from:
+
+@example
+@uref{http://code.google.com/p/msysgit/downloads/list}
+@end example
+
+@item Other operating systems: either install @command{git} with
+your package manager, or download it from the @qq{Binaries}
+section of:
+
+@example
+@uref{http://git-scm.com/download}
+@end example
+
+@end itemize
-If you haven't already, download and install Git. Go to
-@uref{http://git-scm.com/download}, and in the @qq{Binaries}
-section, select the appropriate package for your operating system.
-Windows users should visit
-@uref{http://code.google.com/p/msysgit/downloads/list} and
-download the @file{.exe} file labeled @qq{Full installer for
-official Git}.
+@item
Download the lily-git script from:
@c don't change the cgit link below to gitweb; gitweb uses
@uref{http://git.sv.gnu.org/cgit/lilypond.git/plain/scripts/auxiliar/lily-git.tcl}
@end example
+@item
To run the program from the command line, navigate to the
directory containing @file{lily-git.tcl} and enter:
wish lily-git.tcl
@end example
+@end enumerate
+
-@subsubheading Get source / Update source
+@subsubheading 1. Get source / Update source
When you click the @qq{Get source} button, @command{lily-git} will
create a directory called @file{lilypond-git/} within your home
-directory, and will download the complete source code into that
+directory, and will download the source code into that
directory (around 55Mb). When the process is finished, the
@qq{Command output} window will display @qq{Done}, and the button
label will change to say @qq{Update source}.
files. You should now be able to modify the source files using
your normal text editor.
-@knownissues
-
-The @qq{Get source} button does not fetch the entire history of
-the git repository, so utilities like @command{gitk} will only
-be able to display the most recent additions. As you continue to
-work with @command{lily-git}, the @qq{Update source} button will take
-any new additions and add it to whatever is currently in your repository's
-history.
+@quotation
+Advanced note: The @qq{Get source} button does not fetch the
+entire history of the git repository, so utilities like
+@command{gitk} will only be able to display the most recent
+additions. As you continue to work with @command{lily-git}, the
+@qq{Update source} button will take any new additions and add it
+to whatever is currently in your repository's history.
+@end quotation
-@subsubheading New local commit
+@subsubheading 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
commit.
-@subsubheading Amend previous commit
+@subsubheading 2b. Amend previous commit
You can go back and make changes to the most recent commit with
the @qq{Amend previous commit} button. This is useful if a
after you click on @qq{Make patch set}.
-@subsubheading Make patch set
+@subsubheading 3. Make patch set
Before making a patch set from any commits, you should click the
@qq{Update source} button to make sure the commits are based on
@item
Bug reporting: help users create proper @rweb{Bug reports}, and
-aid the Bug Team in handling @rcontrib{Issues}.
+aid the Bug Squad in handling @rcontrib{Issues}.
@item
Documentation: small changes can be proposed by following the
@warning{These jobs generally require that you have the program
and documentation source files, but do not require a full
-development environment. See @rcontrib{Starting with Git}.}
+development environment. See
+@rcontrib{Working with source code}.}
@itemize
@item
@subheading Complex tasks
@warning{These jobs generally require that you have the source
-code and can compile LilyPond. See @rcontrib{Starting with Git},
-and @rcontrib{Compiling LilyPond}.}
-
-We suggest that new contributors using Windows use a virtual
-machine to run @emph{lilybuntu}. See
+code and can compile LilyPond. See
+@rcontrib{Working with source code},
+and @rcontrib{Compiling}.
+@*@*
+We suggest that new contributors using Windows or MacOS X do
+@strong{not} attempt to set up their own development environment;
+instead, see
@rcontrib{Using a Virtual Machine to Compile LilyPond}.
+}
@itemize
@item