Show More
@@ -17,7 +17,7 b' This module implements most phase logic ' | |||
|
17 | 17 | Basic Concept |
|
18 | 18 | ============= |
|
19 | 19 | |
|
20 |
A 'changeset phase |
|
|
20 | A 'changeset phase' is an indicator that tells us how a changeset is | |
|
21 | 21 | manipulated and communicated. The details of each phase is described below, |
|
22 | 22 | here we describe the properties they have in common. |
|
23 | 23 | |
@@ -36,25 +36,23 b' These phases share a hierarchy of traits' | |||
|
36 | 36 | draft: X |
|
37 | 37 | secret: |
|
38 | 38 | |
|
39 |
|
|
|
39 | Local commits are draft by default. | |
|
40 | 40 | |
|
41 |
Phase |
|
|
42 |
=========================== |
|
|
41 | Phase Movement and Exchange | |
|
42 | =========================== | |
|
43 | 43 | |
|
44 |
Phase data |
|
|
45 |
publish option set, we call |
|
|
46 | draft changeset publish. | |
|
44 | Phase data is exchanged by pushkey on pull and push. Some servers have a | |
|
45 | publish option set, we call such a server a "publishing server". Pushing a | |
|
46 | draft changeset to a publishing server changes the phase to public. | |
|
47 | 47 | |
|
48 | 48 | A small list of fact/rules define the exchange of phase: |
|
49 | 49 | |
|
50 | 50 | * old client never changes server states |
|
51 | 51 | * pull never changes server states |
|
52 | * publish and old server csets are seen as public by client | |
|
52 | * publish and old server changesets are seen as public by client | |
|
53 | * any secret changeset seen in another repository is lowered to at least draft | |
|
53 | 54 | |
|
54 | * Any secret changeset seens in another repository is lowered to at least draft | |
|
55 | ||
|
56 | ||
|
57 | Here is the final table summing up the 49 possible usecase of phase exchange: | |
|
55 | Here is the final table summing up the 49 possible use cases of phase exchange: | |
|
58 | 56 | |
|
59 | 57 | server |
|
60 | 58 | old publish non-publish |
@@ -81,7 +79,7 b' Legend:' | |||
|
81 | 79 | * N = new/not present, |
|
82 | 80 | * P = public, |
|
83 | 81 | * D = draft, |
|
84 |
* X = not tracked (i |
|
|
82 | * X = not tracked (i.e., the old client or server has no internal way of | |
|
85 | 83 | recording the phase.) |
|
86 | 84 | |
|
87 | 85 | passive = only pushes |
@@ -92,7 +90,7 b' Legend:' | |||
|
92 | 90 | "When a new client pushes a draft changeset (D) to a publishing server |
|
93 | 91 | where it's not present (N), it's marked public on both sides (P/P)." |
|
94 | 92 | |
|
95 |
Note: old client behave as publish server with |
|
|
93 | Note: old client behave as a publishing server with draft only content | |
|
96 | 94 | - other people see it as public |
|
97 | 95 | - content is pushed as draft |
|
98 | 96 | |
@@ -110,7 +108,7 b" phasenames = ['public', 'draft', 'secret" | |||
|
110 | 108 | def _filterunknown(ui, changelog, phaseroots): |
|
111 | 109 | """remove unknown nodes from the phase boundary |
|
112 | 110 | |
|
113 | Nothing is lost as unknown nodes only hold data for their descendants | |
|
111 | Nothing is lost as unknown nodes only hold data for their descendants. | |
|
114 | 112 | """ |
|
115 | 113 | updated = False |
|
116 | 114 | nodemap = changelog.nodemap # to filter unknown nodes |
@@ -282,7 +280,7 b' def retractboundary(repo, targetphase, n' | |||
|
282 | 280 | repo._phasecache.replace(phcache) |
|
283 | 281 | |
|
284 | 282 | def listphases(repo): |
|
285 |
"""List phases root for seriali |
|
|
283 | """List phases root for serialization over pushkey""" | |
|
286 | 284 | keys = {} |
|
287 | 285 | value = '%i' % draft |
|
288 | 286 | for root in repo._phasecache.phaseroots[draft]: |
General Comments 0
You need to be logged in to leave comments.
Login now