mercurial/helptext/evolution.txt
author Matt Harbison <matt_harbison@yahoo.com>
Mon, 21 Dec 2020 20:21:46 -0500
changeset 52289 323e3626929a
parent 47017 da4e6d7a8fdd
permissions -rw-r--r--
sslutil: add support for clients to set TLSv1.3 as the minimum protocol AFAICT, all of the TLS versions are supported by the server without doing any explicit work, and there's only a `devel` config to specify an exact version on the server side. Clients would also use TLSv1.3 if available, but this prevents the server from negotiating down. This also causes "tls1.3" to be listed in `hg debuginstall`, even though it was previously supported (if the Python intepreter supported it- IDK if there's a good way to proactively test for and show future protocols without requiring manual updates like this). The v1.3 tests are nested inside the v1.2 tests for simplicity. The v1.2 blocks already assume v1.0 and v1.1 support, so this seems reasonable for now. If/when the older protocols start getting dropped, this will have to be reworked anyway.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47017
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     1
Obsolescence markers make it possible to mark changesets that have been
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     2
deleted or superseded in a new version of the changeset.
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     3
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     4
Unlike the previous way of handling such changes, by stripping the old
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     5
changesets from the repository, obsolescence markers can be propagated
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     6
between repositories. This allows for a safe and simple way of exchanging
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     7
mutable history and altering it after the fact. Changeset phases are
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     8
respected, such that only draft and secret changesets can be altered (see
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     9
:hg:`help phases` for details).
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    10
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    11
Obsolescence is tracked using "obsolescence markers", a piece of metadata
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    12
tracking which changesets have been made obsolete, potential successors for
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    13
a given changeset, the moment the changeset was marked as obsolete, and the
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    14
user who performed the rewriting operation. The markers are stored
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    15
separately from standard changeset data can be exchanged without any of the
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    16
precursor changesets, preventing unnecessary exchange of obsolescence data.
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    17
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    18
The complete set of obsolescence markers describes a history of changeset
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    19
modifications that is orthogonal to the repository history of file
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    20
modifications. This changeset history allows for detection and automatic
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    21
resolution of edge cases arising from multiple users rewriting the same part
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    22
of history concurrently.
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    23
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    24
Current feature status
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    25
======================
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    26
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    27
This feature is still in development.
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    28
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    29
Instability
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    30
===========
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    31
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    32
Rewriting changesets might introduce instability.
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    33
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    34
There are two main kinds of instability: orphaning and diverging.
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    35
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    36
Orphans are changesets left behind when their ancestors are rewritten.
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    37
Divergence has two variants:
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    38
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    39
* Content-divergence occurs when independent rewrites of the same changesets
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    40
  lead to different results.
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    41
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    42
* Phase-divergence occurs when the old (obsolete) version of a changeset
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    43
  becomes public.
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    44
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    45
It is possible to prevent local creation of orphans by using the following config::
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    46
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    47
    [experimental]
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    48
    evolution.createmarkers = true
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    49
    evolution.exchange = true
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    50
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    51
You can also enable that option explicitly::
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    52
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    53
    [experimental]
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    54
    evolution.createmarkers = true
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    55
    evolution.exchange = true
da4e6d7a8fdd help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    56
    evolution.allowunstable = true