From Fedora Project Wiki

Revision as of 21:24, 2 February 2010 by Jlaska (talk | contribs) (Add named branch instructions from wwoods)

Getting started

This page details the patch process for the AutoQA project. Before you do anything else ... you'll need to install Package-x-generic-16.pnggit.

yum install git

The basics

Checkout The Code

It's always easier if you start from a fresh git clone, as git makes it very easy to do patches. You won't have to run "patch" manually and stuff like that, nor will you have to maintain a separate tree.

git clone git://

Keep In Sync

If you want to update your checkout to the latest git source, from any branch:

git fetch origin
git rebase origin/master

What Changed?

Now, make your changes. To see the differences you've made since last commit:

git diff HEAD

At any time when you want to stay up to date with what's going on in the main repo you can do the fetch/rebase step as many times as you want. This makes all your changes be modified as if they were applied to the latest on the remote branch.

Oops, How do I Revert?

To revert your changes:

git checkout -f                     # All changes
git checkout -f autoqa.spec         # A specific file

Patch submission

Once you have the checkout working like you want, you can generate a list of patches and submit for review to The procedure is detailed below.

  1. First, be sure to commit all the changes locally:
    git commit -a 
  2. Next, generate a list of patches between your local checkout and a remove branch called origin/master, type:
    git format-patch origin/master
    This will output a list of one or more patches that can be downloaded and applied by developers using the command git am.
  3. Now, write a high level summary of your changes:
    cat <<EOF> msg
    Subject: My favorite patches
    Included are several packages which implement feature X and have been thoroughly tested.
  4. Finally, send the patches along with the descriptive summary to for review:
    yum install git-email
    git send-email --no-chain-reply-to --quiet --to msg *.patch

Named Branch

If you are developing a feature or working on a rather large patchset for AutoQA, you are recommended to create a named branch to work from. This makes patch submission and merging easier for the AutoQA maintainers.

To create and share a named branch ...

  1. Create a new branch locally, based on current branch (master)
    git checkout -b myusername
  2. Now, share your branch by pushing it into the remote repo
    git push --all
  3. Finally, configure the local repo to merge with the remote so git pull works
    git config branch.myusername.remote origin
    git config branch.myusername.merge refs/heads/myusername