]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/contributor/source-code.itexi
Doc: cleanup @file{}, take 2: remove all @/ escaping sequences.
[lilypond.git] / Documentation / contributor / source-code.itexi
index 2a1893f0b29e4b79dd953b1a5762121dd18cb700..d7d1bed0cf69d8ebcb8d3194ceb5e4eac6bd8bd5 100644 (file)
@@ -65,7 +65,7 @@ Download the lily-git script from:
 
 @item
 To run the program from the command line, navigate to the
-directory containing @file{lily@/-git@/.tcl} and enter:
+directory containing @file{lily-git.tcl} and enter:
 
 @example
 wish lily-git.tcl
@@ -77,13 +77,13 @@ wish lily-git.tcl
 @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
+create a directory called @file{lilypond-git/} within your home
 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}.
 
-Navigate to the @file{lilypond@/-git/} directory to view the source
+Navigate to the @file{lilypond-git/} directory to view the source
 files.  You should now be able to modify the source files using
 your normal text editor.
 
@@ -161,8 +161,8 @@ the patch files attached.  Translators should send patches to
 hopelessly confused!}
 
 The button labeled @qq{Abort changes -- Reset to origin} will copy
-all changed files to a subdirectory of @file{lilypond@/-git/} named
-@file{aborted@/_edits/}, and will reset the repository to the
+all changed files to a subdirectory of @file{lilypond-git/} named
+@file{aborted_edits/}, and will reset the repository to the
 current state of the remote repository (at @code{git.sv.gnu.org}).
 
 
@@ -226,7 +226,7 @@ Windows@}).
 
 Once Git is installed, you'll need to create a new directory where
 your initial repository will be stored (the example below uses
-@file{~/lilypond@/-git/}, where @code{~} represents your home
+@file{~/lilypond-git/}, where @code{~} represents your home
 directory).  Run @command{git@tie{}init} from within the new
 directory to initialize an empty repository:
 
@@ -237,7 +237,7 @@ git init
 
 @subsubheading Technical details
 
-This creates (within the @file{~/lilypond@/-git/} directory) a
+This creates (within the @file{~/lilypond-git/} directory) a
 subdirectory called @file{.git/}, which Git uses to keep track of
 changes to the repository, among other things.  Normally you don't
 need to access it, but it's good to know it's there.
@@ -248,7 +248,7 @@ need to access it, but it's good to know it's there.
 
 @warning{Throughout the rest of this manual, all command-line
 input should be entered from the top directory of the Git
-repository being discussed (eg. @file{~/lilypond@/-git/}).  This is
+repository being discussed (eg. @file{~/lilypond-git/}).  This is
 referred to as a @emph{top source directory}.}
 
 Before downloading a copy of the main LilyPond repository, you
@@ -309,7 +309,7 @@ by the above commands would look like this:
 
 Using the @command{git@tie{}config} command @emph{without} the
 @command{--global} option configures repository-specific settings,
-which are stored in the file @file{.git/@/config}.  This file is
+which are stored in the file @file{.git/config}.  This file is
 created when a repository is initialized (using
 @command{git@tie{}init}), and by default contains these lines:
 
@@ -461,7 +461,7 @@ Already on 'master'
 @end example
 
 By now the source files should be accessible---you should be able
-to edit any files in the @file{lilypond@/-git/} directory using a
+to edit any files in the @file{lilypond-git/} directory using a
 text editor of your choice.  But don't start just yet!  Before
 editing any source files, learn how to keep your changes organized
 and prevent problems later---read @ref{Basic Git procedures}.
@@ -469,7 +469,7 @@ and prevent problems later---read @ref{Basic Git procedures}.
 @subsubheading Technical Details
 
 The @command{git@tie{}remote@tie{}add} command should add some
-lines to your local repository's @file{.git/@/config} file:
+lines to your local repository's @file{.git/config} file:
 
 @example
 [remote "origin"]
@@ -650,7 +650,7 @@ committishes.
 
 The @command{git@tie{}config} command mentioned above adds the
 line @code{rebase = true} to the master branch in your local
-repository's @file{.git/@/config} file:
+repository's @file{.git/config} file:
 
 @example
 [branch "master"]
@@ -773,6 +773,7 @@ meister wants to merge @code{lilypond/translation} into
 * Making commits::
 * Commit messages::
 * Making patches::
+* Uploading a patch for review::
 @end menu
 
 
@@ -926,9 +927,12 @@ for examples.
 @node Making patches
 @unnumberedsubsubsec Making patches
 
-
 If you want to share your changes with other contributors and
 developers, you need to generate @emph{patches} from your commits.
+We prefer it if you follow the instructions in
+@ref{Uploading a patch for review}.  However, we present an
+alternate method here.
+
 You should always run @command{git@tie{}pull@tie{}-r} (translators
 should leave off the @code{-r}) before doing this to ensure that
 your patches are as current as possible.
@@ -960,11 +964,128 @@ the patch files attached.  Translators should send patches to
 reviewed, the developers may push one or more of them to the main
 repository or discuss them with you.
 
-@seealso
 
-If your patch includes a significant amount of code, you may want
-to see @ref{Adding or modifying features}, especially @emph{Post
-patch for comments}.
+@node Uploading a patch for review
+@unnumberedsubsubsec Uploading a patch for review
+
+Any non-trivial change should be uploaded to our @qq{Rietveld}
+code review website:
+
+@example
+@uref{http://codereview.appspot.com/}
+@end example
+
+@subsubheading Initial setup
+
+This requires the use of an external package, git-cl, and an email
+account on Google.
+
+@command{git-cl} is installed by:
+
+@example
+git clone git://neugierig.org/git-cl.git
+@end example
+
+Then, add the @file{git-cl} directory to your PATH, or create a
+symbolic link to the @command{git-cl} and @command{upload.py} in
+one of your PATH directories (like @file{usr/bin}).  Then
+configure the program by running:
+
+@example
+git cl config
+@end example
+
+@noindent
+in the LilyPond git directory and answering the questions that
+are asked.  If you do not understand the question answer with just
+a newline (CR).
+
+@subsubheading Uploading patch set
+
+There are two methods, depending on your git setup.
+
+@itemize
+@item
+@strong{Separate branch}:
+
+Ensure your changes are committed in a separate branch, which
+should differ from the reference branch to be used by just the
+changes to be uploaded.  If the reference branch is to be
+origin/master, ensure this is up-to-date.  If necessary, use git
+rebase to rebase the branch containing the changes to the head of
+origin/master.  Finally, check out branch with the changes and
+enter the command:
+
+@example
+git cl upload <reference SHA1 ID>
+@end example
+
+@noindent
+where <reference SHA1 ID> is the SHA1 ID of the commit to be used
+as a reference source for the patch.  Generally, this will be the
+SHA1 ID of origin/master, and in that case the command:
+
+@example
+git cl upload origin/master
+@end example
+
+@noindent
+can be used.
+
+@item
+@strong{Master branch}:
+
+If you added your patch to @code{master}, then make sure that you
+are up-to-date (by running @code{git pull -r}), and then run:
+
+@example
+git cl upload origin/master
+@end example
+
+If you have git push ability, make sure that you @emph{remove}
+your patch (with @command{git rebase} or @command{git reset})
+before pushing other stuff.
+
+@end itemize
+
+After prompting for your Google email address and password, the
+patch set will be posted to Rietveld.
+
+@subsubheading Announcing your patch set
+
+You should then announce the patch by sending an email to
+@code{lilypond-devel}, with a subject line starting with PATCH:,
+asking for comments on the patch.  Alternately, you may Publish +
+Mail a (bogus) comment, in order to send an email to
+lilypond-devel.
+
+@subsubheading Revisions
+
+As revisions are made in response to comments, successive patch sets
+for the same issue can be uploaded by reissuing the git-cl command
+with the modified branch checked out.
+
+Sometimes in response to comments on revisions, the best way to
+work may require creation of a new branch in git.  In order to
+associate the new branch with an existing Rietveld issue,
+the following command can be used:
+
+@example
+git cl issue issue-number
+@end example
+
+@noindent
+where @code{issue-number} is the number of the existing Rietveld
+issue.
+
+@subsubheading Resetting git cl
+
+If @command{git cl} becomes confused, you can @qq{reset} it by
+running:
+
+@example
+git cl issue 0
+@end example
 
 
 @node Advanced Git procedures
@@ -1315,7 +1436,7 @@ ssh-keygen -t dsa
 @end example
 
 When prompted for a location to save the key, press <ENTER> to
-accept the default location (@file{~/.ssh/@/id_dsa}).
+accept the default location (@file{~/.ssh/id_dsa}).
 
 Next you are asked to enter an optional passphrase.  On most
 systems, if you use a passphrase, you will likely be prompted for
@@ -1342,14 +1463,14 @@ gconftool-2 --set -t bool \
 @end example
 
 After setting up your passphrase, your private key is saved as
-@file{~/.ssh/@/id_dsa} and your public key is saved as
-@file{~/.ssh/@/id_dsa@/.pub}.
+@file{~/.ssh/id_dsa} and your public key is saved as
+@file{~/.ssh/id_dsa.pub}.
 
 
 @item
 Register your public SSH @q{dsa} key with Savannah.  From the
 @qq{My Account Configuration} page, click on @qq{Edit SSH Keys},
-then paste the contents of your @file{~/.ssh/@/id_dsa@/.pub} file into
+then paste the contents of your @file{~/.ssh/id_dsa.pub} file into
 one of the @qq{Authorized keys} text fields, and click
 @qq{Update}.
 
@@ -1402,7 +1523,7 @@ the list of known hosts.
 @end example
 
 The list of known hosts is stored in the file
-@file{~/.ssh/@/known@/_hosts}.
+@file{~/.ssh/known_hosts}.
 
 At this point, you are prompted for your passphrase if you have
 one, then Git will attempt a pull.
@@ -1465,7 +1586,7 @@ Authority.
 
 @item
 The @command{git@tie{}config} commands above should modify your
-local repository's @file{.git/@/config} file.  These lines:
+local repository's @file{.git/config} file.  These lines:
 
 @example
 [remote "origin"]
@@ -1486,7 +1607,7 @@ where @var{user} is your login name on Savannah.
 @item
 Similarly, the
 @command{git@tie{}config@tie{}push.default@tie{}matching} command
-should add these lines to @file{.git/@/config}:
+should add these lines to @file{.git/config}:
 
 @example
 [push]