On 2012-05-18 19:05:05 +0200, Diego Biurrun wrote:
> ---
>  doc/git-howto.texi |   52 
> ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 52 insertions(+), 0 deletions(-)
> 
> diff --git a/doc/git-howto.texi b/doc/git-howto.texi
> index 4d3e235..b34fae2 100644
> --- a/doc/git-howto.texi
> +++ b/doc/git-howto.texi
> @@ -346,6 +346,58 @@ 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.

I honestly think the wording and the checklist is way too strict for
most commits. Strictly following it for every commit is nonsense and
I'd guess nobody will do it.

> +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 commands:
> +
> +@itemize
> +@item @command{git cherry -v}
> +
> +to make sure that only the commits you want to push are pending.
> +
> +@item @command{git log}
> +
> +to check that the log messages of the commits are correct and descriptive
> +and contain no cruft from @command{git am}.

why not combining these two with @command{git log origin/master..}?

> +@item @command{git log -p}
> +
> +to doublecheck that the commits you want to push really only contain the
> +changes they are supposed to contain.

--stat might be helpful too, add the same 'origin/master..', mention
that it coud be combined with the above.

> +
> +@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, so updating it once per day or so
> +is sufficient.  Now execute

Updating once per day is always enough since put new samples at 24h in
place before pushing the 

> +@itemize
> +@item @command{make distclean}

When is a make clean not enough?

> +@item @command{./configure}

without distclean this could be a simple make config which would handle
out of source tree builds and other required configure options just
fine.

> +@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 tests necessary to convince
> +yourself the changes you are about to push actually work as expected.

you fail to mention that every commit is expected to pass make check

> +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.

git push reports for every commit if it could match a patch. Updating
not revisions of the patch on patchwork is also a good idea if not
done earlier.

Janne
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to