##// END OF EJS Templates
rewriting: add an option for rewrite commands to use the archived phase...
Boris Feld -
r41961:64de5f44 default
parent child Browse files
Show More
@@ -470,6 +470,9 b" coreconfigitem('experimental', 'bundleco"
470 470 coreconfigitem('experimental', 'changegroup3',
471 471 default=False,
472 472 )
473 coreconfigitem('experimental', 'cleanup-as-archived',
474 default=False,
475 )
473 476 coreconfigitem('experimental', 'clientcompressionengines',
474 477 default=list,
475 478 )
@@ -1016,6 +1016,7 b' def cleanupnodes(repo, replacements, ope'
1016 1016 for phase, nodes in toadvance.items():
1017 1017 phases.advanceboundary(repo, tr, phase, nodes)
1018 1018
1019 mayusearchived = repo.ui.config('experimental', 'cleanup-as-archived')
1019 1020 # Obsolete or strip nodes
1020 1021 if obsolete.isenabled(repo, obsolete.createmarkersopt):
1021 1022 # If a node is already obsoleted, and we want to obsolete it
@@ -1033,6 +1034,17 b' def cleanupnodes(repo, replacements, ope'
1033 1034 if rels:
1034 1035 obsolete.createmarkers(repo, rels, operation=operation,
1035 1036 metadata=metadata)
1037 elif phases.supportinternal(repo) and mayusearchived:
1038 # this assume we do not have "unstable" nodes above the cleaned ones
1039 allreplaced = set()
1040 for ns in replacements.keys():
1041 allreplaced.update(ns)
1042 if backup:
1043 from . import repair # avoid import cycle
1044 node = min(allreplaced, key=repo.changelog.rev)
1045 repair.backupbundle(repo, allreplaced, allreplaced, node,
1046 operation)
1047 phases.retractboundary(repo, tr, phases.archived, allreplaced)
1036 1048 else:
1037 1049 from . import repair # avoid import cycle
1038 1050 tostrip = list(n for ns in replacements for n in ns)
@@ -75,3 +75,69 b' Test that bundle can unarchive a changes'
75 75 date: Thu Jan 01 00:00:00 1970 +0000
76 76 summary: root
77 77
78
79 Test that history rewriting command can use the archived phase when allowed to
80 ------------------------------------------------------------------------------
81
82 $ hg up 'desc(unbundletesting)'
83 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
84 $ echo bar >> a
85 $ hg commit --amend --config experimental.cleanup-as-archived=yes
86 $ hg log -G
87 @ changeset: 2:d1e73e428f29
88 | tag: tip
89 | parent: 0:c1863a3840c6
90 | user: test
91 | date: Thu Jan 01 00:00:00 1970 +0000
92 | summary: unbundletesting
93 |
94 o changeset: 0:c1863a3840c6
95 user: test
96 date: Thu Jan 01 00:00:00 1970 +0000
97 summary: root
98
99 $ hg log -G --hidden
100 @ changeset: 2:d1e73e428f29
101 | tag: tip
102 | parent: 0:c1863a3840c6
103 | user: test
104 | date: Thu Jan 01 00:00:00 1970 +0000
105 | summary: unbundletesting
106 |
107 | o changeset: 1:883aadbbf309
108 |/ user: test
109 | date: Thu Jan 01 00:00:00 1970 +0000
110 | summary: unbundletesting
111 |
112 o changeset: 0:c1863a3840c6
113 user: test
114 date: Thu Jan 01 00:00:00 1970 +0000
115 summary: root
116
117 $ ls -1 .hg/strip-backup/
118 883aadbbf309-efc55adc-amend.hg
119 883aadbbf309-efc55adc-backup.hg
120 $ hg unbundle .hg/strip-backup/883aadbbf309*amend.hg
121 adding changesets
122 adding manifests
123 adding file changes
124 added 0 changesets with 0 changes to 1 files
125 (run 'hg update' to get a working copy)
126 $ hg log -G
127 @ changeset: 2:d1e73e428f29
128 | tag: tip
129 | parent: 0:c1863a3840c6
130 | user: test
131 | date: Thu Jan 01 00:00:00 1970 +0000
132 | summary: unbundletesting
133 |
134 | o changeset: 1:883aadbbf309
135 |/ user: test
136 | date: Thu Jan 01 00:00:00 1970 +0000
137 | summary: unbundletesting
138 |
139 o changeset: 0:c1863a3840c6
140 user: test
141 date: Thu Jan 01 00:00:00 1970 +0000
142 summary: root
143
General Comments 0
You need to be logged in to leave comments. Login now