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.
|
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
|
@chapter Server Issues
|
||||||
|
|
||||||
Contact the project admins @email{git@@libav.org} if you have technical
|
Contact the project admins @email{git@@libav.org} if you have technical
|
||||||
|
|
Loading…
Reference in New Issue