]> git.sesse.net Git - ffmpeg/blobdiff - doc/git-howto.txt
Update version and APIchanges.
[ffmpeg] / doc / git-howto.txt
index 11f96803cdad134febed8da0aa57096aadb7c114..519c8970ef102cad6d299149b8a186fed0113f5c 100644 (file)
@@ -44,11 +44,11 @@ I. BASICS:
 
 1. Cloning the source tree:
 
-    git clone git://git.videolan.org/ffmpeg <target>
+    git clone git://git.ffmpeg.org/ffmpeg.git <target>
 
   This will put the FFmpeg sources into the directory <target>.
 
-    git clone git@git.videolan.org:ffmpeg <target>
+    git clone git@git.ffmpeg.org:ffmpeg.git <target>
 
   This will put the FFmpeg sources into the directory <target> and let
   you push back your changes to the remote repository.
@@ -56,17 +56,23 @@ I. BASICS:
 
 2. Updating the source tree to the latest revision:
 
-    git pull
+    git pull (--ff-only)
 
-  pulls in the latest changes from the repository to your local master branch.
+  pulls in the latest changes from the tracked branch. The tracked branch
+  can be remote. By default the master branch tracks the branch master in
+  the remote origin.
+  Caveat: Since merge commits are forbidden at least for the initial
+          months of git --ff-only or --rebase (see below) are recommended.
+          --ff-only will fail and not create merge commits if your branch
+          has diverged (has a different history) from the tracked branch.
 
 2.a Rebasing your local branches:
 
     git pull --rebase
 
   fetches the changes from the main repository and replays your local commits
-  over it. This is useful to keep all your local changes at the top of your
-  tree.
+  over it. This is required to keep all your local changes at the top of
+  FFmpeg's master tree. The master tree will reject pushes with merge commits.
 
 
 3. Adding/removing files/directories:
@@ -91,7 +97,7 @@ I. BASICS:
     git log <filename(s)>
 
   You may also use the graphical tools like gitview or gitk or the web
-  interface available at http://git.videolan.org
+  interface available at http://git.ffmpeg.org/
 
 6. Checking source tree status:
 
@@ -105,7 +111,7 @@ I. BASICS:
 
     git diff --check
 
-  to doublecheck 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
   how small.
   Every one of them has been saved from looking like a fool by this many times.
@@ -124,6 +130,11 @@ I. BASICS:
 
     git add [-i|-p|-A] <filenames/dirnames>
 
+  Make sure you have told git your name and email address, e.g. by running
+    git config --global user.name "My Name"
+    git config --global user.email my@email.invalid
+  (--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
   the interactive or the patch mode to select hunk by hunk what should be
   added to the commit.
@@ -133,7 +144,7 @@ I. BASICS:
   Git will commit the selected changes to your current local branch.
 
   You will be prompted for a log message in an editor, which is either
-  set in your personal configuration file throught
+  set in your personal configuration file through
 
     git config core.editor
 
@@ -223,5 +234,26 @@ I. BASICS:
   Will push the changes to the remote repository. Omitting refspec makes git
   push update all the remote branches matching the local ones.
 
-Contact the project admins <root at ffmpeg dot org> if you have technical
+13. Finding a specific svn revision
+
+  Since version 1.7.1 git supports ':/foo' syntax for specifying commits
+  based on a regular expression. see man gitrevisions
+
+    git show :/'as revision 23456'
+
+  will show the svn changeset r23456. With older git versions searching in
+  the git log output is the easiest option (especially if a pager with
+  search capabilities is used).
+  This commit can be checked out with
+
+    git checkout -b svn_23456 :/'as revision 23456'
+
+  or for git < 1.7.1 with
+
+    git checkout -b svn_23456 $SHA1
+
+  where $SHA1 is the commit SHA1 from the 'git log' output.
+
+
+Contact the project admins <git at ffmpeg dot org> if you have technical
 problems with the GIT server.