@helpusNeed
-@helpusTasks
+@helpusSimple
-@helpusProjects
+@helpusAdvanced
@node Overview of work flow
The @q{official} LilyPond Git repository is hosted by the GNU
Savannah software forge at @uref{http://git.sv.gnu.org}.
-Although, since Git uses a @emph{distributed} model, technically
-there is no central repository. Instead, each contributor keeps a
-complete copy of the entire repository (about 116MB).
Changes made within one contributor's copy of the repository can
be shared with other contributors using @emph{patches}. A patch
-is a simple text file generated by the @command{git} program that
-indicates what changes have been made (using a special format).
+is a text file that indicates what changes have been made.
If a contributor's patch is approved for inclusion (usually
through the mailing list), someone on the current development team
will @emph{push} the patch to the official repository.
The Savannah software forge provides two separate interfaces for
-viewing the LilyPond Git repository online: @emph{cgit} and
-@emph{gitweb}. The cgit interface should work faster than gitweb
+viewing the LilyPond Git repository online:
+@uref{http://git.sv.gnu.org/cgit/lilypond.git/, cgit} and
+@uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git, gitweb}.
+
+@ignore
+The cgit interface should work faster than gitweb
in most situations, but only gitweb allows you to search through
the source code using @command{grep}, which you may find useful.
-The cgit interface is at
-@uref{http://git.sv.gnu.org/cgit/lilypond.git/} and the gitweb
-interface is at
-@uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git}.
+@end ignore
Git is a complex and powerful tool, but tends to be confusing at
first, particularly for users not familiar with the command line
@uref{http://git.savannah.gnu.org/gitweb/?p=lilypond.git}
@end example
+@item @strong{environment variables}:
+many maintenance scripts, and many instructions in this guide rely on
+predefined @ref{Environment variables}.
+
@item @strong{mailing lists}:
-given on @rweb{Contacts}.
+given on @rweb{Contact}.
@item @strong{branches}:
@item @code{staging}:
after a successful review (see below), push here.
-@item @code{lilypond/translation}:
+@item @code{translation}:
translators should base their work from this, and also push to it.
@item @code{dev/foo}:
@code{Patch-countdown} status.
@item
-The countdown is a 48-hour period which gives other developers a
-chance to review the patch. If no significant problems are found,
-your patch will be given @code{Patch-push} status.
+The countdown is a 48-hour period which gives other developers one
+last chance to review the patch. If no significant problems are
+found, your patch will be given @code{Patch-push} status.
@item
You may now either push it to the @code{staging} branch, or email
@end enumerate
@advanced{Yes, this process means that most patches wait between
-60-120 hours before reaching master. This is unfortunate, but
+60-120 hours before reaching @code{master}. This is unfortunate, but
given our limited resources for reviewing patches and a history of
unintended breakage in @code{master}, this is the best compromise
we have found.}
@item
You don't need to be able to completely approve patches. Make
sure the patch meets whatever you know of the guidelines (for doc
-style, code indentation, whatever), and then send it on to the
-frog list or -devel for more comments. If you feel confident
+style, code indentation, whatever), and then send it on to -devel
+for more comments. If you feel confident
about the patch, you can push it directly (this is mainly intended
for docs and translations; code patches should almost always go to
-devel before being pushed).