63 This packages also provides the ``topic`` extensions. It implements a new |
68 This packages also provides the ``topic`` extensions. It implements a new |
64 experimental concept to provide lightweight feature branches for the mutable |
69 experimental concept to provide lightweight feature branches for the mutable |
65 parts of the history. The experiments is still at an early stage and have |
70 parts of the history. The experiments is still at an early stage and have |
66 significant usability and performance issues. |
71 significant usability and performance issues. |
67 |
72 |
68 enable topic |
73 Enable |
69 ------------ |
74 ------ |
70 |
75 |
71 The topic extensions is included in the evolve package. See the install instruction for evolve. |
76 The topic extensions is included in the evolve package. See the install instruction for evolve. |
72 |
77 |
73 Then enable it in you configuration:: |
78 Then enable it in you configuration:: |
74 |
79 |
75 $ hg config --edit # adds the two line below: |
80 $ hg config --edit # adds the two line below: |
76 [extensions] |
81 [extensions] |
77 topics = |
82 topics = |
78 |
83 |
79 help |
84 Documentation |
80 ---- |
85 ------------- |
81 |
86 |
82 * See 'hg help -e topic' for a generic help. |
87 * See 'hg help -e topic' for a generic help. |
83 * See 'hg help topics' and 'hg help stack' for help on specific commands. |
88 * See 'hg help topics' and 'hg help stack' for help on specific commands. |
84 * See the 'tests/test-topic-tutorial.t' file for a quick tutorial. |
89 * See the 'tests/test-topic-tutorial.t' file for a quick tutorial. |
85 |
90 |
86 Contribute |
91 How to Contribute |
87 ========== |
92 ================= |
88 |
93 |
89 Bugs are to be reported on the mercurial's bug tracker (component: evolution): |
94 Bugs are to be reported on the mercurial's bug tracker (component: evolution): |
90 https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=--- |
95 https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=--- |
91 |
96 |
92 Please use the patchbomb extension to send email to mercurial devel. Please |
97 Please use the patchbomb extension to send email to mercurial devel. Please |
93 make sure to use the evolve-ext flag when doing so. You can use a command like |
98 make sure to use the evolve-ext flag when doing so. You can use a command like |
94 this: |
99 this:: |
95 |
100 |
96 hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '<your patches>' |
101 $ hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '<your patches>' |
97 |
102 |
98 See also |
103 See also |
99 https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions |
104 https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions |
100 for guidelines on the patch description. |
105 for guidelines on the patch description. |
101 |
106 |
102 Please don't forget to update and run the tests when you fix a bug or |
107 Please don't forget to update and run the tests when you fix a bug or |
103 add a feature. To run the tests, you need a working copy of Mercurial, |
108 add a feature. To run the tests, you need a working copy of Mercurial, |
104 say in $HGSRC: |
109 say in $HGSRC:: |
105 |
110 |
106 cd tests |
111 $ cd tests |
107 python $HGSRC/tests/run-tests.py |
112 $ python $HGSRC/tests/run-tests.py |
108 |
113 |
109 (evolve's stable and default branches correspond to Mercurial's stable |
114 (evolve's stable and default branches correspond to Mercurial's stable |
110 and default branches. So to test evolve from default, you need |
115 and default branches. So to test evolve from default, you need |
111 Mercurial on default.) |
116 Mercurial on default.) |
112 |
117 |
113 |
118 |
114 Changelog |
119 Changelog |
115 ========= |
120 ========= |
116 |
121 |
117 6.0.0 -- |
122 6.0.0 -- In progress |
118 |
123 -------------------- |
119 - drop compatibility for Mercurial < 3.8, |
124 |
120 - removed old (unpackaged) pushexperiment extension, |
125 - drop compatibility for Mercurial < 3.8, |
121 - move all extensions in the official 'hgext3rd' namespace package, |
126 - removed old (unpackaged) pushexperiment extension, |
122 - add the "topic" experimental extensions. |
127 - move all extensions in the official 'hgext3rd' namespace package, |
123 - officially ship 'evolve.serveronly' extensions. That extensions contains |
128 - add the "topic" experimental extensions. |
124 only the part related to exchange and is intended to be used by server. |
129 - officially ship 'evolve.serveronly' extensions. That extensions contains |
125 |
130 only the part related to exchange and is intended to be used by server. |
126 Using the extension will enable evolution, use 'experimental.evolution=!' |
131 |
127 to disable obsmarkers echange. The old '__temporary__.advertiseobsolete' |
132 Using the extension will enable evolution, use 'experimental.evolution=!' |
128 option is no longer supported. |
133 to disable obsmarkers echange. The old '__temporary__.advertiseobsolete' |
|
134 option is no longer supported. |
129 |
135 |
130 5.6.1 -- 2017-02-28 |
136 5.6.1 -- 2017-02-28 |
131 |
137 ------------------- |
132 - fix a crash that sometime happened when evolving merges. |
138 |
|
139 - fix a crash that sometime happened when evolving merges. |
133 |
140 |
134 5.6.0 -- 2017-02-01 |
141 5.6.0 -- 2017-02-01 |
135 |
142 ------------------- |
136 - compatibility with Mercurial 4.1. |
143 |
137 - improvement of prune error message. |
144 - compatibility with Mercurial 4.1. |
138 - fold: require --from flag for folding revisions to working copy |
145 - improvement of prune error message. |
139 - fix crash when trying to fold an empty revision set (issue5453) |
146 - fold: require --from flag for folding revisions to working copy |
140 - uncommit: preserve copy information of remaining files (issue5403) |
147 - fix crash when trying to fold an empty revision set (issue5453) |
|
148 - uncommit: preserve copy information of remaining files (issue5403) |
141 |
149 |
142 5.5.0 -- 2016-10-30 |
150 5.5.0 -- 2016-10-30 |
143 |
151 ------------------- |
144 - The {obsolete} template now yield "obsolete" or "". |
152 |
145 - compatibility with Mercurial 4.0 |
153 - The {obsolete} template now yield "obsolete" or "". |
146 - Fix erroneous manifest computation when solving 'bumped' changeset. |
154 - compatibility with Mercurial 4.0 |
147 - split: avoid crash on empty commit (issue5191), |
155 - Fix erroneous manifest computation when solving 'bumped' changeset. |
148 - next: improve locking to avoid issue with working copy parent (issue5244) |
156 - split: avoid crash on empty commit (issue5191), |
149 - prev: improve locking to avoid issue with working copy parent (issue5244) |
157 - next: improve locking to avoid issue with working copy parent (issue5244) |
150 - evolve: fix abort suggestion to include '.' in 'hg update -C .' |
158 - prev: improve locking to avoid issue with working copy parent (issue5244) |
|
159 - evolve: fix abort suggestion to include '.' in 'hg update -C .' |
151 |
160 |
152 5.4.1 -- 2016-08-01 |
161 5.4.1 -- 2016-08-01 |
|
162 ------------------- |
153 |
163 |
154 - compat with Mercurial 3.9 |
164 - compat with Mercurial 3.9 |
155 |
165 |
156 5.4.0 -- 2016-05-06 |
166 5.4.0 -- 2016-05-06 |
|
167 ------------------- |
157 |
168 |
158 - Some collaboration with the topic experimental extensions, |
169 - Some collaboration with the topic experimental extensions, |
159 - hg evolve --all with consider all troubles in your current topic, |
170 - hg evolve --all with consider all troubles in your current topic, |
160 - preserve 'topic' during evolve, |
171 - preserve 'topic' during evolve, |
161 - 'next' and 'prev' restrict themself to the current topic by default, |
172 - 'next' and 'prev' restrict themself to the current topic by default, |
182 (issue4950) (hg-3.5+ only) |
194 (issue4950) (hg-3.5+ only) |
183 - no longer lock the repository for `hg parents` (issue4895) |
195 - no longer lock the repository for `hg parents` (issue4895) |
184 - updated help for the `evolve` command |
196 - updated help for the `evolve` command |
185 |
197 |
186 5.2.1 -- 2015-11-02 |
198 5.2.1 -- 2015-11-02 |
|
199 ------------------- |
187 |
200 |
188 - add compatibility with Mercurial 3.6 |
201 - add compatibility with Mercurial 3.6 |
189 - prune: fixed possible issue with lock and bookmark |
202 - prune: fixed possible issue with lock and bookmark |
190 - next/prev: fixed possible issue with lock and bookmark |
203 - next/prev: fixed possible issue with lock and bookmark |
191 - add some progress data during changesets discovery |
204 - add some progress data during changesets discovery |
192 - take advantage of dirstate/transaction collaboration |
205 - take advantage of dirstate/transaction collaboration |
193 |
206 |
194 5.2.0 -- 2015-06-25 |
207 5.2.0 -- 2015-06-25 |
|
208 ------------------- |
195 |
209 |
196 - evolve: gain a --rev option to control what revisions to evolve (issue4391) |
210 - evolve: gain a --rev option to control what revisions to evolve (issue4391) |
197 - evolve: revision are processed in the order they stack on destination |
211 - evolve: revision are processed in the order they stack on destination |
198 - evolve: properly skip unstable revision with non-evolved unstable parent |
212 - evolve: properly skip unstable revision with non-evolved unstable parent |
199 - evolve: gain --unstable --divergent --bumped flag to select the trouble |
213 - evolve: gain --unstable --divergent --bumped flag to select the trouble |
223 - significant performance improvement for all revsets. |
238 - significant performance improvement for all revsets. |
224 - provide a hint of how to update to the successor of an obsolete working copy |
239 - provide a hint of how to update to the successor of an obsolete working copy |
225 parent. |
240 parent. |
226 |
241 |
227 5.1.4 -- 2015-04-23 |
242 5.1.4 -- 2015-04-23 |
|
243 ------------------- |
228 |
244 |
229 - significant documentation update |
245 - significant documentation update |
230 - fix issue4616: pulling with bundle2 would crash if common marker when |
246 - fix issue4616: pulling with bundle2 would crash if common marker when |
231 discovered on non-served changesets. |
247 discovered on non-served changesets. |
232 - fix the debugobsrelsethashtree command |
248 - fix the debugobsrelsethashtree command |
233 |
249 |
234 5.1.3 -- 2015-04-20 |
250 5.1.3 -- 2015-04-20 |
|
251 ------------------- |
235 |
252 |
236 - discovery: fix misbehaving discovery across python version |
253 - discovery: fix misbehaving discovery across python version |
237 - pull: properly install the bundle2 par generator |
254 - pull: properly install the bundle2 par generator |
238 (avoid sending all markers for each pull) |
255 (avoid sending all markers for each pull) |
239 - commit: avoid potential deadlock (acquires wlock before lock) |
256 - commit: avoid potential deadlock (acquires wlock before lock) |
240 - graft: avoid potential deadlock (acquires wlock before lock) |
257 - graft: avoid potential deadlock (acquires wlock before lock) |
241 |
258 |
242 5.1.2 -- 2015-04-01 |
259 5.1.2 -- 2015-04-01 |
|
260 ------------------- |
243 |
261 |
244 - evolve: prevent a crash in httpclient_pushobsmarkers() when pushing |
262 - evolve: prevent a crash in httpclient_pushobsmarkers() when pushing |
245 |
263 |
246 5.1.1 -- 2015-03-05 |
264 5.1.1 -- 2015-03-05 |
|
265 ------------------- |
247 |
266 |
248 - debugobsconvert: fix invalid markers during conversion |
267 - debugobsconvert: fix invalid markers during conversion |
249 - discovery: cache some of the obs hash computation to improve performance (issue4518) |
268 - discovery: cache some of the obs hash computation to improve performance (issue4518) |
250 - revset: fix some crash with (issue4515) |
269 - revset: fix some crash with (issue4515) |
251 |
270 |
252 5.1 -- 2015-01-30 |
271 5.1 -- 2015-01-30 |
|
272 ------------------- |
253 |
273 |
254 - evolve: explicitly disable bookmark on evolve (issue4432) |
274 - evolve: explicitly disable bookmark on evolve (issue4432) |
255 - evolve: don't abort Mercurial on version mismatch |
275 - evolve: don't abort Mercurial on version mismatch |
256 - compatibility with mercurial 3.3 |
276 - compatibility with mercurial 3.3 |
257 |
277 |
258 5.0.2 -- 2014-12-14 |
278 5.0.2 -- 2014-12-14 |
|
279 ------------------- |
259 |
280 |
260 - evolve: remove dependency to the rebase extension |
281 - evolve: remove dependency to the rebase extension |
261 |
282 |
262 5.0.1 -- 2014-11-25 |
283 5.0.1 -- 2014-11-25 |
|
284 ------------------- |
263 |
285 |
264 - amend: fix --logfile argument |
286 - amend: fix --logfile argument |
265 - evolve: preserve branch change when evolving |
287 - evolve: preserve branch change when evolving |
266 - evolve: fix potential crash while solving `bumped` changesets. |
288 - evolve: fix potential crash while solving `bumped` changesets. |
267 - uncommit: abort when rev specifies the current changeset |
289 - uncommit: abort when rev specifies the current changeset |
268 - evolve: various message improvement |
290 - evolve: various message improvement |
269 - evolve: fix selection of changeset to evolve from the middle of a stack (issue4434) |
291 - evolve: fix selection of changeset to evolve from the middle of a stack (issue4434) |
270 - evolve: make next/prev only move bookmarks optionally |
292 - evolve: make next/prev only move bookmarks optionally |
271 - evolve: tell user which "base of divergent changeset" is not found |
293 - evolve: tell user which "base of divergent changeset" is not found |
272 |
294 |
273 |
|
274 |
|
275 5.0.0 -- 2014-10-22 |
295 5.0.0 -- 2014-10-22 |
|
296 ------------------- |
276 |
297 |
277 - drop compat with Mercurial pre 3.2 |
298 - drop compat with Mercurial pre 3.2 |
278 - uncommit: add a --rev argument |
299 - uncommit: add a --rev argument |
279 - evolve: add a `working directory now at xxxxxxxxxx` message |
300 - evolve: add a `working directory now at xxxxxxxxxx` message |
280 - evolve: automatically translate obsolete hashes when evolving |
301 - evolve: automatically translate obsolete hashes when evolving |
325 - use bundle2 as transport when available. |
349 - use bundle2 as transport when available. |
326 |
350 |
327 - add a hook related to the new commands |
351 - add a hook related to the new commands |
328 |
352 |
329 3.3.2 -- 2014-05-14 |
353 3.3.2 -- 2014-05-14 |
|
354 ------------------- |
330 |
355 |
331 - fix a bug where evolve were creating changeset with 2 parents on windows |
356 - fix a bug where evolve were creating changeset with 2 parents on windows |
332 (fix issues #16, #35 and #42) |
357 (fix issues #16, #35 and #42) |
333 - adds a --obsolete flag to import (requires Mercurial 3.0) |
358 - adds a --obsolete flag to import (requires Mercurial 3.0) |
334 - prune: update to successor rather than parent when pruning '.' with -s |
359 - prune: update to successor rather than parent when pruning '.' with -s |
335 - fold: add missing --message and --logfile option |
360 - fold: add missing --message and --logfile option |
336 - fold: add squash as an alias |
361 - fold: add squash as an alias |
337 |
362 |
338 3.3.1 -- 2014-04-23 |
363 3.3.1 -- 2014-04-23 |
|
364 ------------------- |
339 |
365 |
340 - various language fix |
366 - various language fix |
341 - active bookmark now move when using prev/next (#37) |
367 - active bookmark now move when using prev/next (#37) |
342 - fix some preservation of rename information on evolve (#33) |
368 - fix some preservation of rename information on evolve (#33) |
343 - abort when evolve tries to move a node on top of itself (will helps on the #35 front) |
369 - abort when evolve tries to move a node on top of itself (will helps on the #35 front) |
344 - fold: enable --date and --user options |
370 - fold: enable --date and --user options |
345 |
371 |
346 3.3.0 -- 2014-03-04 |
372 3.3.0 -- 2014-03-04 |
|
373 ------------------- |
347 |
374 |
348 - raise Mercurial's minimal requirement to 2.7 |
375 - raise Mercurial's minimal requirement to 2.7 |
349 - drop `latercomer` and `conflicting` compatibility. Those old alias are |
376 - drop `latercomer` and `conflicting` compatibility. Those old alias are |
350 deprecated for a long time now. |
377 deprecated for a long time now. |
351 - add verbose hint about how to handle corner case by hand. |
378 - add verbose hint about how to handle corner case by hand. |
378 - prune: various minor improvements |
407 - prune: various minor improvements |
379 - prune: add option to prune a specific bookmark |
408 - prune: add option to prune a specific bookmark |
380 - prune: add -u and -d option to control metadata |
409 - prune: add -u and -d option to control metadata |
381 |
410 |
382 3.0.0 -- 2013-02-02 |
411 3.0.0 -- 2013-02-02 |
|
412 ------------------- |
383 |
413 |
384 - compatibility with 2.5 |
414 - compatibility with 2.5 |
385 |
415 |
386 2.2.0 -- |
416 2.2.0 -- |
|
417 ------------------- |
387 |
418 |
388 - make evolve smarter at picking next troubled to solved without --any |
419 - make evolve smarter at picking next troubled to solved without --any |
389 |
420 |
390 2.1.0 -- 2012-12-03 |
421 2.1.0 -- 2012-12-03 |
|
422 ------------------- |
391 |
423 |
392 - qsync fixes |
424 - qsync fixes |
393 - have qfold ask for commit message |
425 - have qfold ask for commit message |
394 |
426 |
395 2.0.0 -- 2012-10-26 |
427 2.0.0 -- 2012-10-26 |
|
428 ------------------- |
396 |
429 |
397 - compat with mercurial 2.4 |
430 - compat with mercurial 2.4 |
398 |
431 |
399 1.1.0 -- 2012-10-26 |
432 1.1.0 -- 2012-10-26 |
|
433 ------------------- |
400 |
434 |
401 - fix troubles creation reporting from rebase |
435 - fix troubles creation reporting from rebase |
402 - rename latecomer to bumped |
436 - rename latecomer to bumped |
403 - renamed conflicting to divergent |
437 - renamed conflicting to divergent |
404 - smarter divergent handling |
438 - smarter divergent handling |
405 |
439 |
406 1.0.2 -- 2012-09-19 |
440 1.0.2 -- 2012-09-19 |
|
441 ------------------- |
407 |
442 |
408 - fix hg fold bug |
443 - fix hg fold bug |
409 - fix hg pull --rebase |
444 - fix hg pull --rebase |
410 - fix detection of conflict with external tools |
445 - fix detection of conflict with external tools |
411 - adapt to core movement (caches and --amend) |
446 - adapt to core movement (caches and --amend) |
412 |
447 |
413 1.0.1 -- 2012-08-31 |
448 1.0.1 -- 2012-08-31 |
|
449 ------------------- |
414 |
450 |
415 - documentation improvement |
451 - documentation improvement |
416 - fix a performance bug with hgweb |
452 - fix a performance bug with hgweb |
417 |
453 |
418 1.0 -- 2012-08-29 |
454 1.0 -- 2012-08-29 |
|
455 ------------------- |
419 |
456 |
420 - Align with Mercurial version 2.3 (drop 2.2 support). |
457 - Align with Mercurial version 2.3 (drop 2.2 support). |
421 - stabilize handle killed parent |
458 - stabilize handle killed parent |
422 - stabilize handle late comer |
459 - stabilize handle late comer |
423 - stabilize handle conflicting |
460 - stabilize handle conflicting |
445 - obsolete/evolve: fix grammar in prerequisite messages |
483 - obsolete/evolve: fix grammar in prerequisite messages |
446 - evolve: avoid duplication in graft wrapper |
484 - evolve: avoid duplication in graft wrapper |
447 - evolve: graft --continue is optional, test |
485 - evolve: graft --continue is optional, test |
448 |
486 |
449 0.6 -- 2012-07-31 |
487 0.6 -- 2012-07-31 |
|
488 ------------------- |
450 |
489 |
451 - obsolete: change warning output to match mercurial core on |
490 - obsolete: change warning output to match mercurial core on |
452 - qsync: ignore nonexistent nodes |
491 - qsync: ignore nonexistent nodes |
453 - make compat server both compatible with "dump" and "dump%i" version |
492 - make compat server both compatible with "dump" and "dump%i" version |
454 |
493 |
455 0.5 -- 2012-07-16 |
494 0.5 -- 2012-07-16 |
|
495 ------------------- |
456 |
496 |
457 - obsolete: Detect conflicting changeset! |
497 - obsolete: Detect conflicting changeset! |
458 - obsolete: adapt to core: marker are written in transaction now |
498 - obsolete: adapt to core: marker are written in transaction now |
459 - evolve: add the solve alias to obsolete |
499 - evolve: add the solve alias to obsolete |
460 - doc: big update of terms and summary of the concept |
500 - doc: big update of terms and summary of the concept |
461 - evolve: switch the official name for "kill" to prune |
501 - evolve: switch the official name for "kill" to prune |
462 |
502 |
463 |
503 |
464 0.4.1 -- 2012-07-10 |
504 0.4.1 -- 2012-07-10 |
|
505 ------------------- |
465 |
506 |
466 - [convert] properly exclude null successors from conversion |
507 - [convert] properly exclude null successors from conversion |
467 - Ignore buggy marker in newerversion |
508 - Ignore buggy marker in newerversion |
468 |
509 |
469 |
510 |
470 0.4.0 -- 2012-07-06 |
511 0.4.0 -- 2012-07-06 |
|
512 ------------------- |
471 |
513 |
472 - obsolete: public changeset are no longer latecomer. |
514 - obsolete: public changeset are no longer latecomer. |
473 - obsolete: move to official binary format |
515 - obsolete: move to official binary format |
474 - adapt for new mercurial |
516 - adapt for new mercurial |
475 - obsolete: we are not compatible with 2.1 any more |
517 - obsolete: we are not compatible with 2.1 any more |
476 |
518 |
477 0.3.0 -- 2012-06-27 |
519 0.3.0 -- 2012-06-27 |
|
520 ------------------- |
478 |
521 |
479 - obsolete: Add "latecomer" error detection (stabilize does not handle resolution yet) |
522 - obsolete: Add "latecomer" error detection (stabilize does not handle resolution yet) |
480 - evolve: Introduce a new `uncommit` command to remove change from a changeset |
523 - evolve: Introduce a new `uncommit` command to remove change from a changeset |
481 - rebase: allow the use of --keep again |
524 - rebase: allow the use of --keep again |
482 - commit: --amend option create obsolete marker (but still strip) |
525 - commit: --amend option create obsolete marker (but still strip) |