Commit 5dee7a32 authored by Timothy Gu's avatar Timothy Gu

git-howto: Various copy edits

parent f0af25ae
\input texinfo @c -*- texinfo -*- \input texinfo @c -*- texinfo -*-
@documentencoding UTF-8 @documentencoding UTF-8
@settitle Using git to develop FFmpeg @settitle Using Git to develop FFmpeg
@titlepage @titlepage
@center @titlefont{Using git to develop FFmpeg} @center @titlefont{Using Git to develop FFmpeg}
@end titlepage @end titlepage
@top @top
...@@ -13,9 +13,9 @@ ...@@ -13,9 +13,9 @@
@chapter Introduction @chapter Introduction
This document aims in giving some quick references on a set of useful git This document aims in giving some quick references on a set of useful Git
commands. You should always use the extensive and detailed documentation commands. You should always use the extensive and detailed documentation
provided directly by git: provided directly by Git:
@example @example
git --help git --help
...@@ -32,22 +32,21 @@ man git-<command> ...@@ -32,22 +32,21 @@ man git-<command>
shows information about the subcommand <command>. shows information about the subcommand <command>.
Additional information could be found on the Additional information could be found on the
@url{http://gitref.org, Git Reference} website @url{http://gitref.org, Git Reference} website.
For more information about the Git project, visit the For more information about the Git project, visit the
@url{http://git-scm.com/, Git website}.
@url{http://git-scm.com/, Git website}
Consult these resources whenever you have problems, they are quite exhaustive. Consult these resources whenever you have problems, they are quite exhaustive.
What follows now is a basic introduction to Git and some FFmpeg-specific What follows now is a basic introduction to Git and some FFmpeg-specific
guidelines to ease the contribution to the project guidelines to ease the contribution to the project.
@chapter Basics Usage @chapter Basics Usage
@section Get GIT @section Get Git
You can get git from @url{http://git-scm.com/} You can get Git from @url{http://git-scm.com/}
Most distribution and operating system provide a package for it. Most distribution and operating system provide a package for it.
...@@ -108,7 +107,7 @@ git add [-A] <filename/dirname> ...@@ -108,7 +107,7 @@ git add [-A] <filename/dirname>
git rm [-r] <filename/dirname> git rm [-r] <filename/dirname>
@end example @end example
GIT needs to get notified of all changes you make to your working Git needs to get notified of all changes you make to your working
directory that makes files appear or disappear. directory that makes files appear or disappear.
Line moves across files are automatically tracked. Line moves across files are automatically tracked.
...@@ -128,8 +127,8 @@ will show all local modifications in your working directory as unified diff. ...@@ -128,8 +127,8 @@ will show all local modifications in your working directory as unified diff.
git log <filename(s)> git log <filename(s)>
@end example @end example
You may also use the graphical tools like gitview or gitk or the web You may also use the graphical tools like @command{gitview} or @command{gitk}
interface available at http://source.ffmpeg.org/ or the web interface available at @url{http://source.ffmpeg.org/}.
@section Checking source tree status @section Checking source tree status
...@@ -150,6 +149,7 @@ git diff --check ...@@ -150,6 +149,7 @@ git diff --check
to double check your changes before committing them to avoid trouble later to double check your changes before committing them to avoid trouble later
on. All experienced developers do this on each and every commit, no matter on. All experienced developers do this on each and every commit, no matter
how small. how small.
Every one of them has been saved from looking like a fool by this many times. Every one of them has been saved from looking like a fool by this many times.
It's very easy for stray debug output or cosmetic modifications to slip in, It's very easy for stray debug output or cosmetic modifications to slip in,
please avoid problems through this extra level of scrutiny. please avoid problems through this extra level of scrutiny.
...@@ -172,14 +172,14 @@ to make sure you don't have untracked files or deletions. ...@@ -172,14 +172,14 @@ to make sure you don't have untracked files or deletions.
git add [-i|-p|-A] <filenames/dirnames> git add [-i|-p|-A] <filenames/dirnames>
@end example @end example
Make sure you have told git your name and email address Make sure you have told Git your name and email address
@example @example
git config --global user.name "My Name" git config --global user.name "My Name"
git config --global user.email my@@email.invalid git config --global user.email my@@email.invalid
@end example @end example
Use @var{--global} to set the global configuration for all your git checkouts. Use @option{--global} to set the global configuration for all your Git checkouts.
Git will select the changes to the files for commit. Optionally you can use Git will select the changes to the files for commit. Optionally you can use
the interactive or the patch mode to select hunk by hunk what should be the interactive or the patch mode to select hunk by hunk what should be
...@@ -210,7 +210,7 @@ include filenames in log messages, Git provides that information. ...@@ -210,7 +210,7 @@ include filenames in log messages, Git provides that information.
Possibly make the commit message have a terse, descriptive first line, an Possibly make the commit message have a terse, descriptive first line, an
empty line and then a full description. The first line will be used to name empty line and then a full description. The first line will be used to name
the patch by git format-patch. the patch by @command{git format-patch}.
@section Preparing a patchset @section Preparing a patchset
...@@ -352,23 +352,24 @@ branches matching the local ones. ...@@ -352,23 +352,24 @@ branches matching the local ones.
@section Finding a specific svn revision @section Finding a specific svn revision
Since version 1.7.1 git supports @var{:/foo} syntax for specifying commits Since version 1.7.1 Git supports @samp{:/foo} syntax for specifying commits
based on a regular expression. see man gitrevisions based on a regular expression. see man gitrevisions
@example @example
git show :/'as revision 23456' git show :/'as revision 23456'
@end example @end example
will show the svn changeset @var{r23456}. With older git versions searching in will show the svn changeset @samp{r23456}. With older Git versions searching in
the @command{git log} output is the easiest option (especially if a pager with the @command{git log} output is the easiest option (especially if a pager with
search capabilities is used). search capabilities is used).
This commit can be checked out with This commit can be checked out with
@example @example
git checkout -b svn_23456 :/'as revision 23456' git checkout -b svn_23456 :/'as revision 23456'
@end example @end example
or for git < 1.7.1 with or for Git < 1.7.1 with
@example @example
git checkout -b svn_23456 $SHA1 git checkout -b svn_23456 $SHA1
...@@ -377,7 +378,7 @@ git checkout -b svn_23456 $SHA1 ...@@ -377,7 +378,7 @@ 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 @chapter Pre-push checklist
Once you have a set of commits that you feel are ready for pushing, Once you have a set of commits that you feel are ready for pushing,
work through the following checklist to doublecheck everything is in work through the following checklist to doublecheck everything is in
...@@ -388,7 +389,7 @@ Apply your common sense, but if in doubt, err on the side of caution. ...@@ -388,7 +389,7 @@ Apply your common sense, but if in doubt, err on the side of caution.
First, make sure that the commits and branches you are going to push 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 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 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 with @option{--dry-run} first. And then inspecting the commits listed with
@command{git log -p 1234567..987654}. The @command{git status} command @command{git log -p 1234567..987654}. The @command{git status} command
may help in finding local changes that have been forgotten to be added. may help in finding local changes that have been forgotten to be added.
...@@ -397,7 +398,7 @@ Next let the code pass through a full run of our testsuite. ...@@ -397,7 +398,7 @@ Next let the code pass through a full run of our testsuite.
@itemize @itemize
@item @command{make distclean} @item @command{make distclean}
@item @command{/path/to/ffmpeg/configure} @item @command{/path/to/ffmpeg/configure}
@item @command{make check} @item @command{make fate}
@item if fate fails due to missing samples run @command{make fate-rsync} and retry @item if fate fails due to missing samples run @command{make fate-rsync} and retry
@end itemize @end itemize
...@@ -415,5 +416,5 @@ recommended. ...@@ -415,5 +416,5 @@ recommended.
@chapter Server Issues @chapter Server Issues
Contact the project admins @email{root@@ffmpeg.org} if you have technical Contact the project admins at @email{root@@ffmpeg.org} if you have technical
problems with the GIT server. problems with the Git server.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment