3.4.11 Pushing to staging

Do not push directly to the git master branch. Instead, push to staging.

You will not see your patch on origin/master until some automatic tests have been run. These tests are run every couple of hours; please wait at least 12 hours before wondering if your patch has been lost. Note that you can check the commits on origin/staging by looking at the git web interface on savannah.

It may happen occasionally that the staging branch breaks automated testing. In this case the automatic move of staging material to master gets halted in order to avoid broken material entering master. This is a safety net. Please do not try breaking out from it by adding fixes on top of staging: in that case the whole sequence will 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.

If your work is in a patch file

Assuming that your patch is in a file called ‘0001-my-patch.patch’, and you are currently on git master, do:

git checkout staging
git pull -r
git am 0001-my-patch.patch
gitk
git push origin staging
git checkout master

Note: Do not skip the gitk step; a quick 5-second check of the visual history can save a great deal of frustration later on. You should only see that staging is only 1 commit ahead of origin/staging.

If your work is in a branch

If you are working on branches and your work in is my_branch_name, then do:

git checkout staging
git pull -r
git merge my_branch_name
gitk
git push origin staging

Note: Do not skip the gitk step; a quick 5-second check of the visual history can save a great deal of frustration later on. You should see that staging is only ahead of origin/staging by the commits from your branch.


LilyPond — Contributor’s Guide v2.18.2 (stable-branch).