X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fcontributor%2Fsource-code.itexi;h=620368280aa9bdb63e84be05462e0dda0032da18;hb=68dbc841e3401f14b900f6750ebb49b406caf357;hp=b43b3f348261813f30f0240c7667214867cc7ccb;hpb=b3e454d64b973f0bb2a86e49dd49d5a01df59164;p=lilypond.git diff --git a/Documentation/contributor/source-code.itexi b/Documentation/contributor/source-code.itexi index b43b3f3482..620368280a 100644 --- a/Documentation/contributor/source-code.itexi +++ b/Documentation/contributor/source-code.itexi @@ -45,7 +45,7 @@ If you haven't already, download and install Git. @qq{Full installer for official Git} from: @example -@uref{http://code.google.com/p/msysgit/downloads/list} +@uref{https://git-for-windows.github.io/} @end example @item Other operating systems: either install @command{git} with @@ -209,13 +209,25 @@ 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 -this to your @file{~/.bashrc}: +we can easily see the state of our working copy, without the need +of typing @code{git status} repeatedly. If you're not using +LilyDev, add the following lines to your @file{~/.bashrc}: @verbatim export PS1="\u@\h \w\$(__git_ps1)$ " +export GIT_PS1_SHOWDIRTYSTATE=true +export GIT_PS1_SHOWUNTRACKEDFILES=true +export GIT_PS1_SHOWUPSTREAM=auto @end verbatim +The first line will show the branch we're on. The other lines +will use some symbols next to the branch name to indicate some +kind of state. @qq{*} means that there are unstaged changes, +@qq{+} indicates staged changes; if there are untracked files, +a @qq{%} will appear. Finally, we can also see if our HEAD is +behind (@qq{<}) or ahead (@qq{>}) of its upstream, and if they +have diverged (@qq{<>}) or they are synced (@qq{=}). + You may need to install the additional @code{bash-completion} package, but it is definitely worth it. After installation you must log out, and then log back in again to enable it. @@ -464,7 +476,7 @@ prepare your upload: @example git fetch git rebase origin/staging dev/cg~0 -gitk HEAD +gitk HEAD @end example @warning{Do not skip the @command{gitk} step; a quick 5-second @@ -628,7 +640,7 @@ repository from GitHub. Ensure that the tarball has the correct Version number. @item -Copy the tarball to @code{http://lilypond.org/download/gub-sources/lilypad/}. +Copy the tarball to @code{http://lilypond.org/downloads/gub-sources/lilypad/}. You will need to have SSH access to @code{lilypond.org}. If you do not, contact the Release Manager via the lilypond-devel mailing list. @@ -1235,17 +1247,34 @@ high-res images, fixed cropping on Finale example. @end example Commit messages often start with a short prefix describing the -general location of the changes. If a commit affects the +general location of the changes. + +@itemize +@item +Doc: and Doc-@var{**}: If a commit affects the documentation in English (or in several languages simultaneously) -the commit message should be prefixed with @qq{Doc:@tie{}}. If -the commit affects only one of the translations, the commit +the commit message should be prefixed with @qq{Doc:@tie{}}. If the +commit affects only one of the translations, the commit message should be prefixed with @qq{Doc-@var{**}:@tie{}}, where -@var{**} is the two-letter language code. Commits that affect the +@var{**} is the two-letter language code. + +@item +Web: and Web-@var{**}: Commits that affect the website should use @qq{Web:@tie{}} for English, and -@qq{Web-@var{**}:@tie{}} for the other languages. Also, changes -to a single file are often prefixed with the name of the file -involved. Visit the links listed in @ref{Understanding commits} -for examples. +@qq{Web-@var{**}:@tie{}} for other languages. + +@item +CSS: Commits that change CSS files should use @qq{Web:@tie{}CSS:@tie{}} +or @qq{Doc:@tie{}CSS:@tie{}} depending on whether they affect the +website or the documentation/manuals. + +@item +Changes to a single file are often prefixed with the name of the file +involved. +@end itemize + +Visit the links listed in @ref{Understanding commits} for examples. + @node Patches @@ -2276,11 +2305,32 @@ end up in master after all, defeating the purpose of the system. The proper fix usually involves rewriting the staging branch and is best left to core developers after discussion on the developer list. +Before pushing to staging it is a good practice to check whether +staging is ahead of master, and if so, wait until master has caught up +with staging before pushing. This simplifies things if changes to +staging have to be backed out for some reason. To check whether +master has caught up with staging you can look at the git web interface +on savannah, or do: + +@example +git fetch +gitk +@end example + +and check that @code{origin/master} is at the same commit as +@code{origin/staging}. Another option is to see if any commits are +listed when you do: + +@example +git fetch +git log origin/master..origin/staging +@end example + @subsubheading If your work is in a patch file Assuming that your patch is in a file called -@file{0001-my-patch.patch}, and you are currently on git master, -do: +@file{0001-my-patch.patch} (see @ref{Patches}), and you are currently +on git master, do: @example git checkout staging @@ -2298,20 +2348,26 @@ commit ahead of @code{origin/staging}.} @subsubheading If your work is in a branch -If you are working on branches and your work in is +If you are working on branches and your work is in @code{my_branch_name}, then do: @example -git checkout staging -git pull -r -git merge my_branch_name +git checkout my_branch_name +git pull -r origin staging +@end example + +This will rebase your branch on @code{origin/staging}. At this point +git will let you know if there are any conflicts. If so, resolve them +before continuing: + +@example gitk -git push origin staging +git push origin HEAD:staging @end example @warning{Do not skip the @command{gitk} step; a quick 5-second check of the visual history can save a great deal of frustration -later on. You should see that @code{staging} is only ahead of +later on. You should see that @code{my_branch_name} is only ahead of @code{origin/staging} by the commits from your branch.} @@ -2356,9 +2412,7 @@ has, either as a complete file or as a @q{diff} or @q{patch} @subsection Installing git Obtain Git from -@uref{http://code.google.com/p/msysgit/downloads/list} (note, not -msysGit, which is for Git developers and not PortableGit, which is -not a full git installation) and install it. +@uref{https://git-for-windows.github.io/}. Note that most users will not need to install SSH. That is not required until you have been granted direct push permissions to