annotate mercurial/helptext/evolution.txt @ 49037:bb76343959d6

path: explicitly declare the `pushrev` suboptions This will help documentation and discovery. Differential Revision: https://phab.mercurial-scm.org/D12436
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 04 Apr 2022 15:36:32 +0200
parents da4e6d7a8fdd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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