mirror of https://git.ffmpeg.org/ffmpeg.git
doc: git: Add checklist with test steps to perform before pushing
This commit is contained in:
parent
1cb34ea4fe
commit
433492ac65
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue