- What is git-upstream?

git-upstream is an open source Python application that can be used to keep in
sync with upstream open source projects, mainly OpenStack.

The main usecase for this tool is for people who are doing active contributions
to repositories that are mirrors of OpenStack repositories, with the intention
that most of those contributions will be submitted to review.openstack.org at
some point.
If you are running a public cloud based on OpenStack, having local changes
needed to use it in your environment, you can use git-upstream to stay up to
date with the upstream master in a easier way (with respect to using raw git
commands).

git-upstream provides new git subcommands to support rebasing of local-carried
patches on top of upstream repositories. It provides commands to ease the use
of git for who needs to integrate big upstream projects in their environment.
The operations are performed using Git commands.

See also README.md, and USAGE.md files.

- What git-upstream is not

The name of this tool includes the "git-" prefix because of the Git naming
convention that a Git subcommand must have. So, as git-review (usually invoked
with "git review [...]"), this tool can be invoked using "git upstream [...]".
That said, and even if git-upstream currently uses Change-Ids, it is not
strictly related to git-review.
In other words, git-review can (and most of the time will) be used without even
knowing about git-upstream existence.

- How can I contribute to git-upstream?

Git-upstream is in OpenStack:

  https://git.openstack.org/openstack/git-upstream

As for any other OpenStack project, contributions are submitted thru the Gerrit
review system.

To summarise:

1) create a Gerrit account (that is, a launchpad identity)

  click on the "Sign in" link in the upper right corner here:
  https://review.openstack.org

2) install git-review

  pip install git-review

3) clone the repo

  git clone https://git.openstack.org/openstack/git-upstream

4) setup to work with Gerrit

  cd git-upstream
  git review -s

  git-review will ask the username to use to submit changes to
  review.openstack.org, just enter the name you have registered in 1)

5) add cool features or fix nasty bugs

6) create your commit as usual

  git add/rm <...>
  git commit

7) submit the change for review

  git review

That's it. You can see your change signing in to your review.openstack.org
account.

Hold on tight, someone will come in shortly and will review your change!
Meanwhile, you can join the OpenStack community on IRC. There is also a
specific channel for git-upstream:

  #git-upstream

If you need help, please join us on IRC!

Before writing new code, it is always a good idea to check if the required
change is already in Gerrit:

  https://review.openstack.org/#/q/project:openstack/git-upstream,n,z

More info about OpenStack and the Gerrit review process.

https://wiki.openstack.org/wiki/IRC
http://www.mediawiki.org/wiki/Gerrit/git-review
http://docs.openstack.org/infra/manual/developers.html
http://docs.openstack.org/infra/manual/developers.html#development-workflow
https://review.openstack.org/#/q/status:open,n,z
