README 25.5 KB
Newer Older
Pierre-Yves David's avatar
Pierre-Yves David committed
1
=============================
Pierre-Yves David's avatar
Pierre-Yves David committed
2
3
4
Mutable History For Mercurial
=============================

5
6
7
Evolve Extension
=================

Pierre-Yves David's avatar
Pierre-Yves David committed
8
9
10
This package supplies the ``evolve`` extension for Mercurial,

**The full implementation of the changeset evolution concept is still in
11
12
13
progress.**  Please subscribe to the `evolve-testers mailing list
<https://www.mercurial-scm.org/mailman/listinfo/evolve-testers>`_ to stay up to
date with changes.
Pierre-Yves David's avatar
Pierre-Yves David committed
14

15
This extension:
Pierre-Yves David's avatar
Pierre-Yves David committed
16

17
* enables the “changeset evolution” feature of Mercurial core,
18
19

* provides a set of commands to mutate your history,
Pierre-Yves David's avatar
Pierre-Yves David committed
20

21
22
23
* issues several warning messages when troubles from some mutable appears in
  your repository,

24
* provides an ``hg evolve`` command to deal with such "troubles",
25

26
* improves performance of obsolescence marker exchanges and discovery during
27
  push and pull.
Pierre-Yves David's avatar
Pierre-Yves David committed
28

29
30
31
32
33
Documentation
-------------

We recommend reading the documentation first. An online version is
available here:
Pierre-Yves David's avatar
Pierre-Yves David committed
34

35
    https://www.mercurial-scm.org/doc/evolution/
Pierre-Yves David's avatar
Pierre-Yves David committed
36

37
38
39
40
41
How to Install
==============

Using Pip
---------
42
43

You can install the latest evolution version usin pip::
44

45
46
47
48
49
50
51
    $ pip install --user hg-evolve

Then just enable it in you hgrc::

    $ hg config --edit # adds the two line below:
    [extensions]
    evolve =
Pierre-Yves David's avatar
Pierre-Yves David committed
52

53
54
From Source
-----------
55

56
57
58
59
To install a local version from source::

    $ hg clone https://www.mercurial-scm.org/repo/evolve/
    $ cd evolve
60
    $ pip install --user .
61

62
63
64
65
66
67
68
69
Then just enable it in you hgrc::

    $ hg config --edit # adds the two line below:
    [extensions]
    evolve =

Documentation lives in ``doc/``.

70
71
Server Only Setup
=================
72

73
74
75
76
It is possible to enable a smaller subset of the extensions aimed at server
serving repository. It skips the additions of the new commands and local UI
messages that might add performance overheads. To use the server only
extension, install the package and use::
77
78

    $ hg config --edit # adds the two line below:
79
    [extensions]
80
    evolve.serveronly =
81
82


83
84
How to Contribute
=================
Pierre-Yves David's avatar
Pierre-Yves David committed
85

86
87
88
Bugs are to be reported on the mercurial's bug tracker (component: `evolution`_):

.. _evolution: https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=---
89

90
91
92
Please use the patchbomb extension to send email to `mercurial devel
<https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel>`_. Please make
sure to use the evolve-ext flag when doing so. You can use a command like
93
this::
94

95
    $ hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '<your patches>'
96

97
98
99
For guidelines on the patch description, see the `official Mercurial guideline`_.

.. _`official Mercurial guideline`: https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions
100
101

Please don't forget to update and run the tests when you fix a bug or
102
add a feature. To run the tests, you need a working copy of Mercurial,
103
say in $HGSRC::
104

105
106
    $ cd tests
    $ python $HGSRC/tests/run-tests.py
107

108
109
110
111
112
113
114
Branch policy
-------------

The evolve test are highly impacted by changes in core. To deal with this, we use named branches.

There are two main branches: "stable" and "default". Tests on these branch are
supposed to pass with the corresponding "default" and "stable" branch from core
115
Mercurial. The documentation is built from the tip of stable.
116
117
118
119

In addition, we have compatibility branches to check tests on older version of
Mercurial. They are the "mercurial-x.y" branches. They are used to apply
expected test change only, no code change should happen there.
Pierre-Yves David's avatar
Pierre-Yves David committed
120

121
Changelog
122
=========
123

124
6.7.1 -- 2017-10-10
125
126
-------------------

127
  * obsfate: fix case were current user would disapear from the user list
128

129
130
topic (0.3.1)

131
  * stack: fix evolution preview for simple split.
132
133
134
  * fix a performance regression affecting all transactions.
    (the more non public changeset (hidden included), the slower)

135
6.7.0 -- 2017-09-27
136
137
-------------------

Pierre-Yves David's avatar
Pierre-Yves David committed
138
  * compatibility with change in future 4.4 at this release date,
139
  * documentation: improvement to content, wording and graphs,
Pierre-Yves David's avatar
Pierre-Yves David committed
140
  * obslog: improved templatability,
141
  * obslog/log: improve verb used to describe and evolution,
Pierre-Yves David's avatar
Pierre-Yves David committed
142
143
  * pstatus/pdiff: update to full command. They now appears in the help,
  * uncommit: add a --interactive option (4.3+ only).
144

145
146
topic (0.3.0)

Pierre-Yves David's avatar
Pierre-Yves David committed
147
148
149
150
151
152
153
154
155
  * push: add a --topic option to mirror --bookmark and --branch,
  * stack: improve display of interleaved topic,
  * stack: improve display of merge commit,
  * topic: add a new 'debugconvertbookmark' commands (4.3+ only),
    It helps migrating from bookmark feature branch to topic feature branch,
  * topic: --age flag also shows the user who last touched the topic,
  * topic: be more informative about topic activation and deactivation,
  * topic: gain a --current flag,
  * topic: small clarification and cleanup on various output.
156

157
6.6.0 -- 2017-07-25
158
159
-------------------

160
  - amend: add a --extract flag to move change back to the working copy,
161
    (same as uncommit, but accessible through the amend commit)
162
163
164
165
166
167
168
  - split: now properly refuse to split public changeset,
  - commands: unify and improve the pre-rewrite validation and error message,
  - uncommit: add support for --current-date and --current-user option,
  - fold: add support for --current-date and --current-user option,
  - metaedit: add support for --current-date and --current-user option,
  - split: add support for --current-date and --current-user option,
  - compat: use various new API instead of the one deprecated in 4.3,
169
    (when available)
170
171
172
  - documentation: various minor documentation update.

topic (0.2.0):
Pierre-Yves David's avatar
Pierre-Yves David committed
173
174

  - topic: add --age option to sort topic by the most recently touched,
175
176
  - topic: add a 't0' to access the root of a topic while keeping it active,
  - topic: allow 'hg prev' to me move to 't0',
177
  - topic: add a config option to enforce topic on new commit,
178
    (experimental.enforce-topic)
179
  - topic: make command names valid as expected, even if ui.strict=true.
180

181
6.5.0 -- 2017-07-02
182
183
-------------------

184
185
features:

Pierre-Yves David's avatar
Pierre-Yves David committed
186
187
 - obslog: gain a --patch flag to display changes introduced by the evolution
  (Currently limited to in simple case only)
188
189
 - log: display obsolescence fate by default, (future 4.3 only)
 - doc: various minor improvement.
Pierre-Yves David's avatar
Pierre-Yves David committed
190

191
192
193
194
195
196
197
bugfixes:

 - evolve: fix branch preservation for merge,
 - obsfate: improve support for advanced template reformating,
 - split: preserve author of the splitted changeset.
 - grab: properly fix hg executable on windows.

198
topic (0.1.0):
199
200

 - stack: also show the unstable status for the current changeset, (issue5553)
201
 - stack: properly abort when and unknown topic is requested,
202
203
 - stack: add basic and raw support for named branches,
 - topic: changing topic on revs no longer adds extra instability, (issue5441)
204
 - topic: topics: rename '--change' flag to '--rev' flag,
Pierre-Yves David's avatar
Pierre-Yves David committed
205
 - topic: multiple large performance improvements,
206
 - topic: various small output improvement,
207
 - topic: improved topic preservation for various commands.
Boris Feld's avatar
Boris Feld committed
208
209


210
6.4.0 -- 2017-06-16
211
-------------------
212

213
214
 - template: signifiant improvement to the '{obsfate}' template (now 4.2+ only)
 - template: fix 'successors' and 'precursors' template to expose hex-node
215
216
 - effect flag: the experiment is now active by default,
   (see 'hg help -e evolve' to opt out)
217
 - effect flag: fix a small bug related to hidden changeset,
218
 - obscache: reduce impact on large repository
219
 - obshashrange: install a '.max-revs' option see extension help for details
220

Pierre-Yves David's avatar
Pierre-Yves David committed
221
6.3.1 -- 2017-06-01
222
223
224
225
-------------------

 - also backport the "revelant-markers" fix when using "evolve.serveronly"

226
6.3.0 -- 2017-05-31
227
228
229
-------------------

 - olog: add an 'obslog' alias
230
 - olog: add an '--all' option to show the whole obsolescence history tree.
231
232
 - evolution: add an experiment to track the effect of rewrites.
   (See hg help - evolve for details)
233
234
235
236
237
 - exchange: fix the "relevant-markers" algorithm to include inline prune.
   This will impact discovery of obsmarkers between server and client if one
   still uses the old algorithm. Please upgrade both clients and servers as
   soon as possible.
   (See changeset 176d1a0ce385 in core Mercurial for details)
238
239
 - obsdiscovery: add a config flag to disable all obsmarkers discovery
   (See hg help - evolve for details)
Boris Feld's avatar
Boris Feld committed
240
 - template: add a 'precursors' template that display the closests precursors of changesets
Boris Feld's avatar
Boris Feld committed
241
 - template: add a 'successors' template that display the closests successors of changesets
242
 - template: add a 'obsfate' template that display how a changeset has evolved
243
244
 - new discovery experiment: add options to restrict memory consumption on
   large repository (see "hg help -e evolve" for details).
245
 - evolve: fix --rev handling in --list mode
246

247
6.2.1 -- 2017-05-23
248
249
-------------------

250
251
 - prune: fix a crash related to color handling,
 - next: fix a crash related to color handling,
252
 - discovery: document the 'obshashrange' experiment,
253
 - cache: reduce the warming load in case of reset,
254
255
 - cache: add a 'experimental.obshashcache.warm-cache' option to allow
   disabling post transaction cache warming.
256

257
6.2.0 -- 2017-05-18
258
259
-------------------

260
 - olog: a new command to inspect the obs-history of a changeset (hg-4.0 + only),
261
 - topic: have thg display topic name if possible,
262
 - blackbox: log more information about discovery and cache computation,
263
 - obscache: more efficient update in the (rare) case of a transaction adding
264
265
266
   markers without changesets,
 - obscache: fix more cache invalidation propagation,
 - obscache: also enable the new cache (from 6.1.0) for 'evolve.server-only',
267
268
 - obshashrange-cache: update incrementally in the (common) case of a
   transaction not affecting existing range,
269
 - obshashrange-cache: keep the cache warm after each transaction,
270
 - topic: now requires Mercurial 4.0 or above,
271
272
 - stack: now display if current revision is in bad state (issue5533),
 - stack: fix json output to be valid json.
273

274
6.1.0 -- 2017-05-03
275
276
-------------------

277
 - improve message about obsolete working copy parent,
278
 - improve message issued  when accessing hidden nodes (4.2 only),
279
 - introduce a new caches to reduce the impact of evolution on read-only commands,
280
 - add a 'experimental.auto-publish' config. See `hg help -e evolve` for details.
281
282
 - fix the propagation of some some cache invalidation,

Pierre-Yves David's avatar
Pierre-Yves David committed
283
6.0.1 -- 2017-04-20
284
285
-------------------

286
 - template: adapt to change in 4.2,
287
 - fix 'debugrecordpruneparents' (outdated API usage)
288
 - checkheads: give priority to updated 4.2 code,
Pierre-Yves David's avatar
Pierre-Yves David committed
289
 - serveronly: fix repository initialization.
290

291
6.0.0 -- 2017-03-31
292
-------------------
293

294
- push: improved detection of obsoleted remote branch (issue4354),
295
296
297
- drop compatibility for Mercurial < 3.8,
- removed old (unpackaged) pushexperiment extension,
- move all extensions in the official 'hgext3rd' namespace package,
298
- add the "topic" experimental extensions. See the README.topic file for details
299
300
- officially ship 'evolve.serveronly' extensions. That extensions contains
  only the part related to exchange and is intended to be used by server.
301

302
303
304
  Using the extension will enable evolution, use 'experimental.evolution=!'
  to disable obsmarkers echange.  The old '__temporary__.advertiseobsolete'
  option is no longer supported.
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319

- a new prototype of obsmarker discovery is available. The prototype is still
  at early stage and not recommended for production.
  Examples of current limitations:

  - write access to the repo is highly recommanded for all operation,
  - large memory footprint,
  - initial caching is slow,
  - unusable on large repo (because of various issue pointed earlier),
  - likely to constains various bugs.

  It can be tested by setting `experimental.obshashrange=1` on both client and
  server. It is recommanded to get in touch with the evolve maintainer if you
  decide to test it.

320
321
322
- the 'debugrecordpruneparents' have been moved into the 'evolve.legacy'
  separate extension. enable that extentions if you need to convert/update
  markers in an old repository.
323

324
5.6.1 -- 2017-02-28
325
-------------------
326

327
- fix a crash that sometime happened when evolving merges.
328

329
5.6.0 -- 2017-02-01
330
-------------------
331

332
333
334
335
336
- compatibility with Mercurial 4.1.
- improvement of prune error message.
- fold: require --from flag for folding revisions to working copy
- fix crash when trying to fold an empty revision set (issue5453)
- uncommit: preserve copy information of remaining files (issue5403)
337

Pierre-Yves David's avatar
Pierre-Yves David committed
338
5.5.0 -- 2016-10-30
339
-------------------
340

341
342
343
344
345
346
347
- The {obsolete} template now yield "obsolete" or "".
- compatibility with Mercurial 4.0
- Fix erroneous manifest computation when solving 'bumped' changeset.
- split: avoid crash on empty commit (issue5191),
- next: improve locking to avoid issue with working copy parent (issue5244)
- prev: improve locking to avoid issue with working copy parent (issue5244)
- evolve: fix abort suggestion to include '.' in 'hg update -C .'
348

Pierre-Yves David's avatar
Pierre-Yves David committed
349
5.4.1 -- 2016-08-01
350
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
351
352
353

 - compat with Mercurial 3.9

354
5.4.0 -- 2016-05-06
355
-------------------
356

357
- Some collaboration with the topic experimental extensions,
358
  - hg evolve --all with consider all troubles in your current topic,
359
360
  - preserve 'topic' during evolve,
  - 'next' and 'prev' restrict themself to the current topic by default,
361
- remove the dangerous 'kill' alias for 'prune' (because 'hg kill -1' without
Pierre-Yves David's avatar
Pierre-Yves David committed
362
  the leading 'hg' will give you an hardtime)
363
364
365
366
- during 'hg evolve' skip unsupported merge instead of aborting
- various documentation fix and update
- hg summary now suggest 'hg evolve --continue when appropriate`
- compatibility with Mercurial 3.8 'hgext' namespace package.
367
- small improvement to the `hg split` instruction
368
- add a 'metaedit' command to rewrite changeset meta data.
369

Pierre-Yves David's avatar
Pierre-Yves David committed
370
5.3.0 -- 2016-02-11
371
-------------------
372

373
374
375
- split: add a new command to split changesets,
- tests: drop our copy of 'run-tests.py' use core one instead,
- bookmark: do all bookmark movement within a transaction.
376
- evolve: compatibility with Mercurial 3.7
377
- evolve: support merge with a single obsolete parent (hg-3.7+ only)
378
- evolve: prevent added file to be marked as unknown if evolve fails (issue4966)
379
380
- evolve: stop relying on graftstate file for save evolve state
          (for `hg evolve --continue`)
381
382
- evolve: fix divergence resolution when it result in an empty commit
          (issue4950) (hg-3.5+ only)
383
384
385
- no longer lock the repository for `hg parents` (issue4895)
- updated help for the `evolve` command

Pierre-Yves David's avatar
Pierre-Yves David committed
386
5.2.1 -- 2015-11-02
387
-------------------
388

389
- add compatibility with Mercurial 3.6
390
- prune: fixed possible issue with lock and bookmark
391
- next/prev: fixed possible issue with lock and bookmark
Pierre-Yves David's avatar
Pierre-Yves David committed
392
393
- add some progress data during changesets discovery
- take advantage of dirstate/transaction collaboration
394

Pierre-Yves David's avatar
Pierre-Yves David committed
395
5.2.0 -- 2015-06-25
396
-------------------
397
398
399
400

- evolve: gain a --rev option to control what revisions to evolve (issue4391)
- evolve: revision are processed in the order they stack on destination
- evolve: properly skip unstable revision with non-evolved unstable parent
401
- evolve: gain --unstable --divergent --bumped flag to select the trouble
402
- evolve: issue more useful error message and hint when evolve has nothing to
403
404
405
          do as invocated.
- evolve: bare `hg evolve` commands now abort when multiple changesets could be
          a target.
406
407
408
- evolve: `hg evolve --all` only evolve changeset that will end up as
          descendant of the current working copy. The old behavior of `--all`
          in now in `--all --any`.
409
410
- evolve: add a 'experimental.evolutioncommands' for fine grained commands
          enabling
timeless developer's avatar
timeless developer committed
411
- next/prev: requires `--merge` to move with uncommitted changes
Pierre-Yves David's avatar
Pierre-Yves David committed
412
- next: significantly reword error messages
413
- next: add a --evolve flag to evolve aspiring children when on a head
414

Pierre-Yves David's avatar
Pierre-Yves David committed
415
5.1.5 -- 2015-06-23
416
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
417
418

- minor documentation cleanup
419
- support -i option for `hg amend` if commit supports it (3.4)
Pierre-Yves David's avatar
Pierre-Yves David committed
420
- fix the `debugrecordpruneparents` utility
Anton Shestakov's avatar
Anton Shestakov committed
421
- fix some possible crash during command abort (release nonexistent transaction)
422
- fix simple4server bug tracker URL
423
- compatibility with bookmark API change in future Mercurial 3.5
Pierre-Yves David's avatar
Pierre-Yves David committed
424
- prune no longer move the active bookmark for no reason (issue4559)
425
- evolve: stop reporting divergence base as missing when we actually have it
426
- significant performance improvement for all revsets.
427
428
- provide a hint of how to update to the successor of an obsolete working copy
  parent.
Pierre-Yves David's avatar
Pierre-Yves David committed
429

Pierre-Yves David's avatar
Pierre-Yves David committed
430
5.1.4 -- 2015-04-23
431
-------------------
432
433

- significant documentation update
434
435
- fix issue4616: pulling with bundle2 would crash if common marker when
  discovered on non-served changesets.
436
- fix the debugobsrelsethashtree command
437

Pierre-Yves David's avatar
Pierre-Yves David committed
438
5.1.3 -- 2015-04-20
439
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
440

Anton Shestakov's avatar
Anton Shestakov committed
441
- discovery: fix misbehaving discovery across python version
Pierre-Yves David's avatar
Pierre-Yves David committed
442
443
- pull: properly install the bundle2 par generator
  (avoid sending all markers for each pull)
444
- commit: avoid potential deadlock (acquires wlock before lock)
445
- graft: avoid potential deadlock (acquires wlock before lock)
Pierre-Yves David's avatar
Pierre-Yves David committed
446

Pierre-Yves David's avatar
Pierre-Yves David committed
447
5.1.2 -- 2015-04-01
448
-------------------
449
450
451

- evolve: prevent a crash in httpclient_pushobsmarkers() when pushing

Pierre-Yves David's avatar
Pierre-Yves David committed
452
5.1.1 -- 2015-03-05
453
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
454
455
456
457
458

- debugobsconvert: fix invalid markers during conversion
- discovery: cache some of the obs hash computation to improve performance (issue4518)
- revset: fix some crash with (issue4515)

459
5.1 -- 2015-01-30
460
-------------------
461

462
- evolve: explicitly disable bookmark on evolve (issue4432)
463
- evolve: don't abort Mercurial on version mismatch
Anton Shestakov's avatar
Anton Shestakov committed
464
- compatibility with mercurial 3.3
465

Pierre-Yves David's avatar
Pierre-Yves David committed
466
5.0.2 -- 2014-12-14
467
-------------------
468
469
470

- evolve: remove dependency to the rebase extension

471
5.0.1 -- 2014-11-25
472
-------------------
473
474

- amend: fix --logfile argument
475
- evolve: preserve branch change when evolving
476
- evolve: fix potential crash while solving `bumped` changesets.
Pierre-Yves David's avatar
Pierre-Yves David committed
477
478
479
480
481
482
- uncommit: abort when rev specifies the current changeset
- evolve: various message improvement
- evolve: fix selection of changeset to evolve from the middle of a stack (issue4434)
- evolve: make next/prev only move bookmarks optionally
- evolve: tell user which "base of divergent changeset" is not found

483
5.0.0 -- 2014-10-22
484
-------------------
485
486

- drop compat with Mercurial pre 3.2
487
- uncommit: add a --rev argument
488
- evolve: add a `working directory now at xxxxxxxxxx` message
489
- evolve: automatically translate obsolete hashes when evolving
490
- properly skip marker creating if patch apply cleanly
491
- prune: work around a massive slowdown from lazy revset
492
- grab: "fix" the grab alias on window
493

494
495
496
497
498
- fix an issue where prune performance were quadratic with the number of
  changesets pruned.
- pull: use discovery to pull less obsmarkers through bundle2


Pierre-Yves David's avatar
Pierre-Yves David committed
499
4.1.0 -- 2014-08-08
500
-------------------
501
502

- amend: add -D/--current-date option
503
- amend: add -U/--current-user option
Pierre-Yves David's avatar
Pierre-Yves David committed
504
- evolve: add a --tool option
505
- evolve: add a --confirm option
506
507
- mark "commit -o", "graft -o" and "graft -O" as deprecated since they are
  unlikely to eventually make it into core.
508
509
- push obsmarkers and phases in the same transaction than changesets
  (when using hg >= 3.1 and bundle2-exp is enabled)
510
511
- hide message about the obsolescence marker exchange behind a
  `experimental.verbose-obsolescence-exchange` variable (default to False).
512

513
4.0.1 -- 2014-08-08
514
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
515
516
517

- createmarkers() accept an iterable (for compat with other extension)

518
4.0.0 -- 2014-06-03
519
-------------------
520

521
- require Mercurial version 3.0.1 or above
522
- some compatibility fixes with future 3.1.0
523
524
525
526
527
- deprecated `gup` and `gdown` in favor of prev and next
- record parent of pruned parent at prune time
- added a `debugobsstorestat` command to gather data on obsmarker content.
- added a `debugrecordpruneparents` command to upgrade existing prune marker
  with parent information. Please run it once per repo after upgrading.
528
529
530
531
532
- improvement to obsolescence marker exchange:
  - added progress when pushing obsmarkers
  - added multiple output during obsolescence markers exchange
  - only push markers relevant to pushed subset
  - add a new experimental way to exchange marker (when server support):
Pierre-Yves David's avatar
Pierre-Yves David committed
533

534
535
536
    - added progress when pulling obsmarkers
    - only pull markers relevant to pulled subset
    - avoid exchanging common markers in some case
537
    - use bundle2 as transport when available.
Pierre-Yves David's avatar
Pierre-Yves David committed
538

539
 - add a hook related to the new commands
540

Pierre-Yves David's avatar
Pierre-Yves David committed
541
3.3.2 -- 2014-05-14
542
-------------------
543
544
545

- fix a bug where evolve were creating changeset with 2 parents on windows
  (fix issues #16, #35 and #42)
Anton Shestakov's avatar
Anton Shestakov committed
546
- adds a --obsolete flag to import (requires Mercurial 3.0)
547
- prune: update to successor rather than parent when pruning '.' with -s
548
- fold: add missing --message and --logfile option
549
- fold: add squash as an alias
550

Pierre-Yves David's avatar
Pierre-Yves David committed
551
3.3.1 -- 2014-04-23
552
-------------------
553
554

- various language fix
555
556
557
- active bookmark now move when using prev/next (#37)
- fix some preservation of rename information on evolve (#33)
- abort when evolve tries to move a node on top of itself (will helps on the #35 front)
558
- fold: enable --date and --user options
559

Pierre-Yves David's avatar
Pierre-Yves David committed
560
3.3.0 -- 2014-03-04
561
-------------------
562

563
- raise Mercurial's minimal requirement to 2.7
564
565
- drop `latercomer` and `conflicting` compatibility. Those old alias are
  deprecated for a long time now.
566
567
- add verbose hint about how to handle corner case by hand.
  This should help people until evolve is able to to it itself.
568
569
- removed the qsync extension. The only user I knew about (logilab) is not
  using it anymore. It not compatible with coming Mercurial version 2.9.
570
- add progress indicator for long evolve command
571
- report troubles creation from `hg import`
572

Pierre-Yves David's avatar
Pierre-Yves David committed
573
3.2.0 -- 2013-11-15
574
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
575
576
577
578
579

- conform to the Mercurial custom of lowercase messages
- added a small extension to experiment with obsolescence marker push
- amend: drop the deprecated note option
- amend: use core mechanism for amend (fix multiple bugs)
580
- parents command: add "working directory parent is obsolete" message
581
582
- evolve command: allow updating to the successor if the parent is
  obsolete
583
- gdown and gup commands: add next and previous alias, respectively
584
- make grab aliases compatible with Mercurial 2.8
Pierre-Yves David's avatar
Pierre-Yves David committed
585
- Tested with 2.6, 2.7 and 2.8
Pierre-Yves David's avatar
Pierre-Yves David committed
586

Pierre-Yves David's avatar
Pierre-Yves David committed
587
3.1.0 -- 2013-02-11
588
-------------------
Pierre-Yves David's avatar
merge  
Pierre-Yves David committed
589

Pierre-Yves David's avatar
Pierre-Yves David committed
590
- amend: drop deprecated --change option for amend
Anton Shestakov's avatar
Anton Shestakov committed
591
- alias: add a grab alias to be used instead of graft -O
592
- touch: add a --duplicate option to *not* obsolete the old version
593
- touch: fix touching multiple revision at the same time
594
- evolve: add a --all option
Levi Bard's avatar
Levi Bard committed
595
596
- prune: various minor improvements
- prune: add option to prune a specific bookmark
597
- prune: add -u and -d option to control metadata
598
599

3.0.0 -- 2013-02-02
600
-------------------
601

Pierre-Yves David's avatar
merge  
Pierre-Yves David committed
602
603
- compatibility with 2.5

604
2.2.0 --
605
-------------------
606
607
608

- make evolve smarter at picking next troubled to solved without --any

Pierre-Yves David's avatar
Pierre-Yves David committed
609
2.1.0 -- 2012-12-03
610
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
611
612
613
614
615

- qsync fixes
- have qfold ask for commit message

2.0.0 -- 2012-10-26
616
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
617
618
619

- compat with mercurial 2.4

Pierre-Yves David's avatar
Pierre-Yves David committed
620
1.1.0 -- 2012-10-26
621
-------------------
622
623

- fix troubles creation reporting from rebase
624
625
626
- rename latecomer to bumped
- renamed conflicting to divergent
- smarter divergent handling
627

Pierre-Yves David's avatar
Pierre-Yves David committed
628
1.0.2 -- 2012-09-19
629
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
630
631
632
633
634
635

- fix hg fold bug
- fix hg pull --rebase
- fix detection of conflict with external tools
- adapt to core movement (caches and --amend)

Pierre-Yves David's avatar
Pierre-Yves David committed
636
1.0.1 -- 2012-08-31
637
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
638
639
640
641
642

- documentation improvement
- fix a performance bug with hgweb

1.0 -- 2012-08-29
643
-------------------
644
645
646
647

- Align with Mercurial version 2.3 (drop 2.2 support).
- stabilize handle killed parent
- stabilize handle late comer
Pierre-Yves David's avatar
Pierre-Yves David committed
648
- stabilize handle conflicting
649
650
651
- stabilize get a --continue switch
- merge and update ignore extinct changeset in most case.
- new "troubled()" revset
652
- summary now reports troubles changesets
Pierre-Yves David's avatar
Pierre-Yves David committed
653
654
- new touch command
- new fold command
655
- new basic olog alias
656
657
658
659
660
661
662

- rebase refuse to work on public changeset again
- rebase explicitly state that there is nothing to rebase because everything is
  extinct() when that happen.
- amend now cleanly abort when --change switch is misused


663
0.7 -- 2012-08-06
664
-------------------
665
666
667
668
669
670
671
672
673
674
675

- hook: work around insanely huge value in obsolete pushkey call
- pushkey: properly handle abort during obsolete markers push
- amend: wrap the whole process in a single transaction.
- evolve: tweak and add EOL to kill warning
- obsolete: fix doc, rebase no longer aborts with --keep
- obsolete/evolve: fix grammar in prerequisite messages
- evolve: avoid duplication in graft wrapper
- evolve: graft --continue is optional, test

0.6 -- 2012-07-31
676
-------------------
677
678

- obsolete: change warning output to match mercurial core on
Anton Shestakov's avatar
Anton Shestakov committed
679
- qsync: ignore nonexistent nodes
680
681
682
- make compat server both compatible with "dump" and "dump%i" version

0.5 -- 2012-07-16
683
-------------------
684

685
686
687
688
689
690
691
692
- obsolete: Detect conflicting changeset!
- obsolete: adapt to core: marker are written in transaction now
- evolve: add the solve alias to obsolete
- doc: big update of terms and summary of the concept
- evolve: switch the official name for "kill" to prune


0.4.1 -- 2012-07-10
693
-------------------
694

Anton Shestakov's avatar
Anton Shestakov committed
695
- [convert] properly exclude null successors from conversion
696
697
698
699
- Ignore buggy marker in newerversion


0.4.0 -- 2012-07-06
700
-------------------
701
702
703
704
705
706
707

- obsolete: public changeset are no longer latecomer.
- obsolete: move to official binary format
- adapt for new mercurial
- obsolete: we are not compatible with 2.1 any more

0.3.0 -- 2012-06-27
708
-------------------
709
710

- obsolete:  Add "latecomer" error detection (stabilize does not handle resolution yet)
711
712
713
714
- evolve:    Introduce a new `uncommit` command to remove change from a changeset
- rebase:    allow the use of --keep again
- commit:    --amend option create obsolete marker (but still strip)
- obsolete:  fewer marker are created when collapsing revision.
Pierre-Yves David's avatar
Pierre-Yves David committed
715
716
- revset:    add, successors(), allsuccessors(), precursors(), allprecursors(),
             latecomer() and hidden()
717
- evolve:    add `prune` alias to `kill`.
Anton Shestakov's avatar
Anton Shestakov committed
718
- stabilize: clearly state that stabilize does not handle conflict
Pierre-Yves David's avatar
Pierre-Yves David committed
719
- template:  add an {obsolete} keyword
720
721

0.2.0 -- 2012-06-20
722
-------------------
723
724
725
726
727
728
729

- stabilize: improve choice of the next changeset to stabilize
- stabilize: improve resolution of several corner case
- rebase:    handle removing empty changesets
- rebase:    handle --collapse
- evolve:   add `obsolete` alias to `kill`
- evolve:   add `evolve` alias to `stabilize`