##// END OF EJS Templates
auth: don't break hashing in case of user with empty password....
auth: don't break hashing in case of user with empty password. In some cases such as LDAP user created via external scripts users might set the passwords to empty. The hashing uses the md5(password_hash) to store reference to detect password changes and forbid using the same password. In case of pure LDAP users this is not valid, and we shouldn't raise Errors in such case. This change makes it work for empty passwords now.

File last commit:

r1:854a839a default
r2203:8a18c3c3 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