doc: git: Add checklist with test steps to perform before pushing

This commit is contained in:
Diego Biurrun 2012-05-14 17:08:00 +02:00
parent 1cb34ea4fe
commit 433492ac65
1 changed files with 55 additions and 0 deletions

View File

@ -346,6 +346,61 @@ git checkout -b svn_23456 $SHA1
where @var{$SHA1} is the commit hash from the @command{git log} output.
@chapter pre-push checklist
Once you have a set of commits that you feel are ready for pushing,
work through the following checklist to doublecheck everything is in
proper order. This list tries to be exhaustive. In case you are just
pushing a typo in a comment, some of the steps may be unnecessary.
Apply your common sense, but if in doubt, err on the side of caution.
First make sure your Git repository is on a branch that is a direct
descendant of the Libav master branch, which is the only one from which
pushing to Libav is possible. Then run the following command:
@itemize
@item @command{git log --patch --stat origin/master..}
to make sure that only the commits you want to push are pending, that
the log messages of the commits are correct and descriptive and contain
no cruft from @command{git am} and to doublecheck that the commits you
want to push really only contain the changes they are supposed to contain.
@item @command{git status}
to ensure no local changes still need to be committed and that no local
changes may have thrown off the results of your testing.
@end itemize
Next let the code pass through a full run of our testsuite. Before you do,
the command @command{make fate-rsync} will update the test samples. Changes
to the samples set are not very common and commits depending on samples
changes are delayed for at least 24 hours to allow the new samples to
propagate, so updating it once per day is sufficient. Now execute
@itemize
@item @command{make distclean}
@item @command{/path/to/libav/configure}
@item @command{make check}
@end itemize
While the test suite covers a wide range of possible problems, it is not
a panacea. Do not hesitate to perform any other tests necessary to convince
yourself that the changes you are about to push actually work as expected.
Also note that every single commit should pass the test suite, not just
the result of a series of patches. So if you have a series of related
commits, run the test suite on every single commit.
Finally, after pushing, mark all patches as committed on
@url{http://patches.libav.org/,patchwork}.
Sometimes this is not automatically done when a patch has been
slightly modified from the version on the mailing list.
Also update previous incarnations of the patches you push so that
patchwork is not cluttered with cruft.
@chapter Server Issues
Contact the project admins @email{git@@libav.org} if you have technical