Welcome to git-upstream’s documentation!¶
Git-upstream is an open source Python application that can be used to keep in sync with upstream open source projects. Its goal is to help manage automatically dropping carried patches when syncing with the project upstream, in a manner transparent to local developers.
It was initially developed as a tool for people who are doing active contributions to local mirrors of projects hosted using Gerrit for code review, with the intention that the local changes would be submitted to the upstream Gerrit instance (review.openstack.org for OpenStack) in the future, and would subsequent appear in the upstream mainline.
As it uses git plumbing commands, it can identify identical patches
exactly the same as how git-rebase
works, and is not limited to
working with Gerrit hosted projects. It can be used with projects
hosted in GitHub or any other git repo hosting software.
Online documentation:
Developers¶
Bug reports:
Repository:
Cloning:
git clone https://git.openstack.org/cgit/openstack/git-upstream
or
git clone https://github.com/openstack/git-upstream
A virtual environment is recommended for development. For example, git-upstream may be installed from the top level directory:
virtualenv .venv
source .venv/bin/activate
pip install -r test-requirements.txt -e .
Patches are submitted via Gerrit at:
Please do not submit GitHub pull requests, they will be automatically closed.
More details on how you can contribute is available on our wiki at:
Writing a patch¶
All code submissions must be pep8 and pyflakes clean. CI will
automatically reject them if they are not. The easiest way to do
that is to run tox before submitting code for review in Gerrit.
It will run pep8
and pyflakes
in the same manner as the
automated test suite that will run on proposed patchsets.
Unit Tests¶
Unit tests have been included and are in the git_upstream/tests
folder. Many unit tests samples are included as example scenarios in
our documentation to help explain how git-upstream handles various use
cases. To run the unit tests, execute the command:
tox -e py34,py27
- Note: View
tox.ini
to run tests on other versions of Python, generating the documentation and additionally for any special notes on building one of the scenarios to allow direct inspection and manual execution ofgit-upstream
with various scenarios.
The unit tests can in many cases be better understood as being closer to functional tests.
Support¶
The git-upstream community is found on the #git-upstream channel on chat.freenode.net
You can also join via this IRC URL or use the Freenode IRC webchat.