The workflow for submitting changes for inclusion in OpenStack is documented in detail at:
https://wiki.openstack.org/wiki/Gerri...
This document walks you through almost all of the steps required to submit a change. If there are particular steps in that document that you're having problems with, you may want to update your question to highlight that so that we can give you a better answer.
Update
Thanks for updating your question. Yes, if you want to share development among your team members you will probably want to maintain a clone of the Nova source somewhere that you and your team can commit to it. The easiest way to do this is using the "fork" functionality on GitHub, and then clone that repository locally:
git clone git@github.com:myusername/nova
You will probably want to add the upstream Nova repository as an additional remote, so that you can pull in new changes later on:
git remote add upstream http://github.com/openstack/nova.git
This allows you to update your local master
branch from the upstream master
branch like this:
git checkout master
git pull upstream master
And then rebase your feature branch:
git checkout my_feature_branch
git rebase master
You and your team can use this repository for your development work. It will probably be easiest if you create a specific branch for your development, rather than working on master
. You and your team can git push
changes to your repository as necessary.
When you are ready to submit a change to gerrit, you follow the Gerrit workflow described in the above link. Note that each commit you make locally counts as a separate "change" in gerrit, so if your history looks like this:
$ git log --oneline
1f9829b I can't believe I misspelled my name
21e8e10 mostly documentation changes
1e7780d fixed some obvious syntax errors
4cb8b9c ugh, forgot to return from the function
6017597 oh geez that was a terrible idea starting over
e0697ef start working on nifty new feature
You will probably want to use git rebase
to squash this into a single commit with a descriptive commit message. This process is described in the "Long Lived Topic Branches" section of the Gerrit workflow documentation. You may want to have an intermediate branch where you perform these changes, which would let you preserve your original change history. When everything is set, you run:
git review
Which will post the changes to Gerrit where they can be reviewed and
accepted by the upstream developers.