brz-propose
===========
``brz-propose`` is a plugin for `Breezy `_ that
provides support for interacting with code hosting sites.
It provides the following extra commands for Breezy:
* ``brz publish``: publish a derived branch
* ``brz propose``: publish and propose a branch for merging
* ``brz find-merge-proposal``: locate branch proposals
Supported codehosting sites
---------------------------
brz-propose currently supports the following two centralized codehosting sites:
* `GitHub `_
* `Launchpad `_
It also supports `GitLab `_ instances such as
`GitLab.com `_ or
`Debian Salsa `_.
Support for `BitBucket `_ and Gerrit is planned.
Usage
-----
GitHub
~~~~~~
First, log into GitHub::
$ brz github-login mylogin
Then, you can clone a repository::
$ brz branch git://github.com/breezy-team/breezy
$ cd breezy
Make a test change::
$ touch test
$ brz add test
$ brz commit -m "Add test file"
And then propose the change for merging::
$ brz propose --name my-branch-name
This last command will:
* create a fork of the *breezy-team/breezy* named *mylogin/breezy* at
https://github.com/mylogin/breezy (if it did not exist)
* push the local branch with the test change to a remote branch named
``my-branch-name`` in the new remote repository
* create a pull request on GitHub proposing the merge of ``my-branch-name``
into the main branch
Launchpad
~~~~~~~~~
First, log into Launchpad::
$ brz lp-login mylogin
Then, you can clone a branch::
$ brz branch lp:brz
$ cd brz
Make a test change::
$ touch test
$ brz add test
$ brz commit -m "Add test file"
And then propose the change for merging::
$ brz propose --name my-branch-name
This last command will:
* push the local branch to a new branch at *lp:~mylogin/brz/my-branch-name*
* create a merge proposal on Launchpad merging
*lp:~mylogin/brz/my-branch-name* into *lp:brz*
GitLab
~~~~~~
First, log into your GitLab instance. Here, we'll use Debian's `salsa
`_. When logged into your account in a web browser,
create a private token. Then run::
$ brz gitlab-login https://salsa.debian.org private-token
Then, clone a branch::
$ brz branch https://salsa.debian.org/jelmer/xandikos
$ cd xandikos
Make a test change::
$ touch test
$ brz add test
$ brz commit -m "Add test file"
And then propose the change for merging::
$ brz propose --name my-branch-name
This last command will:
* create a fork of the *jelmer/xandikos* project named *mylogin/xandikos* at
https://salsa.debian.org/mylogin/xandikos (if it did not exist)
* push the local branch with the test change to a remote branch named
``my-branch-name`` in the new remote repository
* create a pull request on GitLab proposing the merge of ``my-branch-name``
into the main branch