Getting started
This page details the patch process for the AutoQA project. Before you do anything else ... you'll need to install git
.
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://git.fedorahosted.org/autoqa.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 autoqa-devel@lists.fedorahosted.org. The procedure is detailed below.
- First, be sure to commit all the changes locally:
git commit -a
- 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
.
- Now, write a high level summary of your changes:
- cat <<EOF> msg
- Subject: My favorite patches
- Hello,
- Included are several packages which implement feature X and have been thoroughly tested.
- Thanks!
- EOF
- Finally, send the patches along with the descriptive summary to autoqa-devel@lists.fedorahosted.org for review:
- yum install git-email
- git send-email --no-chain-reply-to --quiet --to autoqa-devel@lists.fedorahosted.org 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 ...
- Create a new branch locally, based on current branch (master)
- git checkout -b myusername
- Now, share your branch by pushing it into the remote repo
- git push --all
- 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