ffprobe: implement -sections option
[ffmpeg.git] / doc / git-howto.texi
index 68da93a..44e1cc6 100644 (file)
@@ -258,6 +258,32 @@ git commit
 @end example
 
 
+@chapter Git configuration
+
+In order to simplify a few workflows, it is advisable to configure both
+your personal Git installation and your local FFmpeg repository.
+
+@section Personal Git installation
+
+Add the following to your @file{~/.gitconfig} to help @command{git send-email}
+and @command{git format-patch} detect renames:
+
+@example
+[diff]
+        renames = copy
+@end example
+
+@section Repository configuration
+
+In order to have @command{git send-email} automatically send patches
+to the ffmpeg-devel mailing list, add the following stanza
+to @file{/path/to/ffmpeg/repository/.git/config}:
+
+@example
+[sendemail]
+        to = ffmpeg-devel@@ffmpeg.org
+@end example
+
 @chapter FFmpeg specific
 
 @section Reverting broken commits
@@ -355,23 +381,12 @@ 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 FFmpeg master branch, which is the only one from which
-pushing to FFmpeg 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
+First, make sure that the commits and branches you are going to push
+match what you want pushed and that nothing is missing, extraneous or
+wrong. You can see what will be pushed by running the git push command
+with --dry-run first. And then inspecting the commits listed with
+@command{git log -p 1234567..987654}. The @command{git status} command
+may help in finding local changes that have been forgotten to be added.
 
 Next let the code pass through a full run of our testsuite.
 
@@ -382,13 +397,17 @@ Next let the code pass through a full run of our testsuite.
 @item if fate fails due to missing samples run @command{make fate-rsync} and retry
 @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.
+Make sure all your changes have been checked before pushing them, the
+testsuite only checks against regressions and that only to some extend. It does
+obviously not check newly added features/code to be working unless you have
+added a test for that (which is recommended).
 
 Also note that every single commit should pass the test suite, not just
 the result of a series of patches.
 
+Once everything passed, push the changes to your public ffmpeg clone and post a
+merge request to ffmpeg-devel. You can also push them directly but this is not
+recommended.
 
 @chapter Server Issues