X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fcontributor%2Fsource-code.itexi;h=73385511023f7eab213904c3513ed622049ffacb;hb=df0c9fc225ed46034a7612d99a6f69bd3d0b5dc3;hp=75363f4d40be7d54eb615b0c66f1fd2e837d8d14;hpb=1be9b72e4f00f7273a8e5ff220b710a52f975344;p=lilypond.git diff --git a/Documentation/contributor/source-code.itexi b/Documentation/contributor/source-code.itexi index 75363f4d40..7338551102 100644 --- a/Documentation/contributor/source-code.itexi +++ b/Documentation/contributor/source-code.itexi @@ -5,7 +5,7 @@ @chapter Working with source code @warning{New contributors should read @ref{Quick start}, and in -particular @ref{Using lily-git}, instead of this chapter.} +particular @ref{lily-git}, instead of this chapter.} Advanced contributors will find this material quite useful, particularly if they are working on major new features. @@ -29,7 +29,7 @@ contributors. If you are comfortable with the command-line, then skip ahead to @ref{Starting with Git}. @warning{These instructions are only for people who are @emph{not} -using @ref{Lilydev}.} +using @ref{LilyDev}.} @c there's some duplication in this section with stuff covered in @c Quick Start, but moving it into a macro inside included/ would @@ -96,7 +96,7 @@ files. input should be entered from @file{~/lilypond-git/}. This is referred to as the @emph{top source directory}.} -Further instructions are in @ref{Daily use of lily-git.tcl}. +Further instructions are in @ref{How to use lily-git}. @node Starting with Git @@ -112,6 +112,7 @@ multiple projects concurrently. @menu * Setting up:: * Git for the impatient:: +* Other repositories:: * Downloading remote branches:: @end menu @@ -208,14 +209,14 @@ git config --global core.editor @var{nano} @end example Finally, and in some ways most importantly, let's make sure that -we know what branch we're on. If you're not using lilydev, add +we know what branch we're on. If you're not using LilyDev, add this to your @file{~/.bashrc}: @verbatim export PS1="\u@\h \w\$(__git_ps1)$ " @end verbatim -If you are not using lilydev, you may need to install the +If you are not using LilyDev, you may need to install the additional @code{git-completion} package, but it is definitely worth it. @@ -311,7 +312,7 @@ git checkout dev/cg Your prompt now shows you that you're on the other branch: @example -gperciva@@lilydev:~/lilypond-git (dev/cg)$ +gperciva@@LilyDev:~/lilypond-git (dev/cg)$ @end example To be able to manage multiple lilypond issues at once, you'll need to switch @@ -522,9 +523,77 @@ your branch (safe)}, but replace the @code{-d} on the final line with a @code{-D}. +@node Other repositories +@subsection Other repositories + +We have a few other code repositories. + +@menu +* lilypond-extra:: +* Grand Unified Builder (GUB):: +* lilypad:: +* yet more repositories:: +@end menu + +@node lilypond-extra +@unnumberedsubsubsec lilypond-extra + +There is a separate repository for general administrative scripts, +as well as pictures and media files for the website. People +interested in working on the website should download this +repository, and set their @code{$LILYPOND_WEB_MEDIA_GIT} +environment variable to point to that repository. + +@example +@uref{https://github.com/gperciva/lilypond-extra} +@end example + +To configure an environment variable in bash (the default for most +Linux distributions), + +@example +export LILYPOND_WEB_MEDIA_GIT=$HOME/dir/of/lilypond-extra/ +@end example + +@node Grand Unified Builder (GUB) +@unnumberedsubsubsec Grand Unified Builder (GUB) + +Another item of interest might be the Grand Unified Builder, our +cross-platform building tool. Since it is used by projects as +well, it is not stored in our gub repository. For more info, see +@uref{http://lilypond.org/gub}. + +There are two locations for this repository, which will hopefully +be kept up-to-date with each other: + +@example +@uref{http://github.com/janneke/gub} +@uref{http://github.com/gperciva/gub} +@end example + + +@node lilypad +@unnumberedsubsubsec lilypad + +Our binary releases on MacOS X and Windows contain a lightweight +text editor. This code is here: + +@example +https://github.com/gperciva/lilypad +@end example + + +@node yet more repositories +@unnumberedsubsubsec yet more repositories + +There are a few other repositories floating around, which will +hopefully be documented in the near future. + + @node Downloading remote branches @subsection Downloading remote branches +@warning{contains obsolete + misleading info} @menu * Organization of remote branches:: @@ -589,6 +658,8 @@ only be used as a last resort. @node Downloading individual branches @unnumberedsubsubsec Downloading individual branches +@warning{obsolete, should be deleted!} + Once you have initialized an empty Git repository on your system (see @ref{Initializing a repository}), you can download a remote @@ -701,13 +772,10 @@ branch. @item @code{stable/XYZ}: The branches are kept for archival reasons. -@end itemize +@item @code{archive/XYZ}: +The branches are kept for archival reasons. -Another item of interest might be the Grand Unified Builder, our -cross-platform building tool. Since it is used by projects as -well, it is not stored in our gub repository. For more info, see -@uref{http://lilypond.org/gub}. The git location is -@uref{http://github.com/janneke/gub}. +@end itemize @node Basic Git procedures @@ -1195,7 +1263,7 @@ or create a symbolic link to the @command{git-cl} and @command{upload.py} scripts in one of your PATH directories (such as @file{$HOME/bin}). -In Ubuntu (and Lilydev), you can add directories to PATH +In Ubuntu (and LilyDev), you can add directories to PATH by adding this line to a hidden file @file{.bashrc}, located in your home directory: @@ -1615,10 +1683,10 @@ git am @var{patch} Patches created without @code{git@tie{}format-patch} can be applied in two steps. The first step is to apply the patch to the -working tree: +working tree and the index: @example -git apply @var{patch} +git apply --index @var{patch} @end example @noindent @@ -1626,9 +1694,16 @@ The second step is to commit the changes and give credit to the author of the patch. This can be done with the following command: @example -git commit -a --author="@var{John Smith} <@var{john@@example.com}>" +git commit --author="@var{John Smith} <@var{john@@example.com}>" @end example +Please note that using the @code{--index} option for patching is quite +important here and @emph{cannot} reliably be replaced by using the +@code{-a} option when committing: that would only commit files from the +working tree that are already registered with git, so every file that +the patch actually @emph{adds}, like a regtest for a fixed bug, would +get lost. For the same reason, you should not use the git-independent +@samp{patch} program for applying patches. @node Sending and receiving patches via email @subsection Sending and receiving patches via email @@ -1846,7 +1921,7 @@ If @command{git@tie{}pull@tie{}--verbose} succeeds, the output will include a @q{From} line that shows @q{ssh} as the protocol: @example -From ssh://@var{user}@@git.sv.gnu.org/srv/git/lilypond +From ssh://git.sv.gnu.org/srv/git/lilypond @end example If the protocol shown is not @q{ssh}, check that you configured @@ -2008,7 +2083,7 @@ later on. You should see that @code{staging} is only ahead of @section Git on Windows @warning{We heavily recommend that development be done with our -virtual machine @ref{Lilydev}.} +virtual machine @ref{LilyDev}.} @c Some of this may duplicate stuff in other sections @c But it is probably best for windows users to have it all together