hgext3rd/topic/README
author Martin von Zweigbergk <martinvonz@google.com>
Mon, 11 Mar 2019 23:57:12 -0700
changeset 4558 63148e999562
parent 3033 13751fef5e66
permissions -rw-r--r--
evolve: use merge.update() for resolving phase divergence Iterating over the manifest when tree manifests and narrowness is in play produces entries for paths outside the narrowspec that represent trees. For example, if the tests/ directory of the hg repo was not in the narrowspec (and the hg repo was using tree manifests, which it doesn't), then there would be a "tests/" entry in the manifest. The merge code deals with some of these cases. For example, it's valid to do a merge if only the local side changes directories outside the narrowspec. That allows rebasing a local commit onto a public commit that had changes to the excluded paths to work. However, _resolvephasedivergent() was iterating of the manifests, which resulted in crashes for some of our users when they tried to resolve phase-divergent commits (actually content-divergent commits that became phase-divergent after the intermediate rebase). We can fix that by relying on merge.update(), since that already handles this case. [This re-install a changeset backed out for compatibility reason]

Topic Extension
================

This packages also provides the ``topic`` experiment in an independent
extension. It implements a new experimental concept to provide lightweight
feature branches for the mutable parts of the history. The experiments is still
at an early stage and have significant usability and performance issues when
enabled.

How to Install
==============

The ``topic`` extension is included into the ``evolve` package, so the same instruction apply.

Using Pip
---------

You can install the latest version using pip::

    $ pip install --user hg-evolve

Then just enable it in you hgrc::

    $ hg config --edit # adds the two line below:
    [extensions]
    topic =

From Source
-----------

To install a local version from source::

    $ hg clone https://www.mercurial-scm.org/repo/evolve/
    $ cd evolve
    $ make install-home

Enable
------

The topic extensions is included in the evolve package. See the install instruction for evolve.

Then enable it in you configuration::

    $ hg config --edit # adds the two line below:
    [extensions]
    topic =

Documentation
-------------

* See 'hg help -e topic' for a generic help.
* See 'hg help topics' and 'hg help stack' for help on specific commands.
* See the 'tests/test-topic-tutorial.t' file for a quick tutorial.