##// END OF EJS Templates
packaging: Backport bower support utilities...
packaging: Backport bower support utilities To support nixos-16.03 the utilities to build bower components are backported inside of this PR. Once we switch to the new stable branch, we should be able to drop these pieces again.

File last commit:

r1:854a839a default
r725:57489056 default
Show More
rebase-commits.rst
118 lines | 4.0 KiB | text/x-rst | RstLexer
project: added all source files and assets
r1 .. _rebase-rebase:
How to Rebase in |hg|
=====================
To rebase in |hg| you will need the ``rebase`` extensions enabled in your
:file:`~/.hgrc` file. Use the following example, or for more detailed
information see the :ref:`config-hgrc` section.
.. code-block:: ini
[extensions]
rebase =
Rebasing in |hg|
----------------
Occasionally you may have to rebase commits if you have created a new head on
your fork. In short, rebasing mean taking one commit and moving a commit, or
set of commits, from a different head on top of it. To do this, use the
following example:
1. Check your on the right branch, and move to the correct one if needed.
.. code-block:: bash
# Display which branch you are on
$ hg branch
default
# Move to the stable branch
$ hg update stable
2. Look at your graphlog, and decide what commits need to be rebased. In this
case, I want to rebase 1206 and 1207 on top of 1226. Note how these are
already in a public state as I have already pushed to my fork.
.. code-block:: bash
:emphasize-lines: 1,13,17
| o 1226:1046ed30734d [stable] - public
| | 3 days ago by Oliver Strobel | B:,T:
| | enterprise: catch failure to create repo_dir
| |
| o 1225:7aba10b8ee97 [stable] - public
| | 3 days ago by Oliver Strobel | B:,T:
| | control: bump version to 1.1.9
| |
o | 1208:0ef7c9d4c1cc [default] - public
| | 2 weeks ago by Oliver Strobel | B:,T:
| | Added tag 1.1.7 for changeset 3acf64b88845
| |
| | @ 1207:39562e195e34 [stable] - public
| | | 3 weeks ago by Brian | B:,T:
| | | docs: note added to *rccontrol install* regarding overwriting DB
| | |
| | o 1206:39562e195e34 [stable] - public
| |/ 3 weeks ago by Brian | B:,T:
| | docs: update command line install example
3. To do this use the following example.
* Draft the commits back to the source revision.
* ``-s`` is the source, essentially what you are rebasing.
* ``-d`` is the destination, which is where you are putting it.
Rebasing the source commit will automatically rebase its descendants. In this
example I am using ``--force`` to draft commits already pushed to my fork.
Doing this is not best practices on a main |repo|.
.. code-block:: bash
# Put the commits into draft status
# This will draft all subsequent commits on the relevant branch
hg phase --draft --force -r 1206
# Rebase 1206 on top of 1226
$ hg rebase -s 1206 -d 1226
saved backup bundle to /repo-fork/.hg/strip-backup/39562e195e34-backup.hg
4. Once you have rebased the commits, check them on the graphlog
.. code-block:: bash
:emphasize-lines: 1,5,9
o 1233:707ef1590e71 [stable] - draft
| 3 weeks ago by Brian | B:,T:tip
| docs: note added to *rccontrol install* regarding overwriting DB
|
o 1232:707ef1590e71 [stable] - draft
| 3 weeks ago by Brian | B:,T:tip
| docs: update command line install example
|
@ | 1225:1046ed30734d [stable] - draft
| | 3 days ago by Oliver Strobel | B:,T:
| | enterprise: catch failure to create repo_dir
5. Once you have finished your rebase, if the the original |repo| history on
the server is different you have two options:
* Push the specific revisions using ``hg push -r <revision>``, or push all
with force using ``hg push --force`` which will create a new head.
* Strip your commits on the server back to a previous revision, and then push
the new history. To strip commits on the server, see the ``strip``
information in the :ref:`api` documentation.
.. important::
As with all examples, this one is rather straight forward but rebasing can
become a complicated affair if you need to fix merges and conflicts
during the rebase. For more detailed rebasing information, see the
`Mercurial Rebase`_ page which has more detailed instructions for various
scenarios.
.. _Mercurial Rebase: https://mercurial.selenic.com/wiki/RebaseExtension
.. _Mercurial Phases: https://mercurial.selenic.com/wiki/Phases