This page details the patch process for the AutoQA project. Before you do anything else ... you'll need to install
yum install git
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
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
Once you have the checkout working like you want, you can generate a list of patches and submit for review to email@example.com. 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
- 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.
- Finally, send the patches along with the descriptive summary to firstname.lastname@example.org for review:
- yum install git-email
- git send-email --no-chain-reply-to --quiet --to email@example.com msg *.patch
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