README 23.8 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
125
126
6.6.0 - in progress
-------------------

127
128
  - amend: add a --extract flag to move change back to the working copy
    (same as uncommit, but accessible through the amend commit)
129
130
  - uncommit: add support for --current-date and --current-user option
  - fold: add support for --current-date and --current-user option
131
  - metaedit: add support for --current-date and --current-user option
Pierre-Yves David's avatar
Pierre-Yves David committed
132
133

  - topic: add --age option to sort topic by the most recently touched,
134
135
136
137
138
  - topic: add a 't0' to access the root of a topic while keeping it active,
  - topic: allow 'hg prev' to me move to 't0',
  - topic: add a config option to enforce topic on new commit
    (experimental.enforce-topic)

139
6.5.0 -- 2017-07-02
140
141
-------------------

142
143
features:

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

149
150
151
152
153
154
155
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.

156
topic (0.1.0):
157
158

 - stack: also show the unstable status for the current changeset, (issue5553)
159
 - stack: properly abort when and unknown topic is requested,
160
161
 - stack: add basic and raw support for named branches,
 - topic: changing topic on revs no longer adds extra instability, (issue5441)
162
 - topic: topics: rename '--change' flag to '--rev' flag,
Pierre-Yves David's avatar
Pierre-Yves David committed
163
 - topic: multiple large performance improvements,
164
 - topic: various small output improvement,
165
 - topic: improved topic preservation for various commands.
Boris Feld's avatar
Boris Feld committed
166
167


168
6.4.0 -- 2017-06-16
169
-------------------
170

171
172
 - template: signifiant improvement to the '{obsfate}' template (now 4.2+ only)
 - template: fix 'successors' and 'precursors' template to expose hex-node
173
174
 - effect flag: the experiment is now active by default,
   (see 'hg help -e evolve' to opt out)
175
 - effect flag: fix a small bug related to hidden changeset,
176
 - obscache: reduce impact on large repository
177
 - obshashrange: install a '.max-revs' option see extension help for details
178

Pierre-Yves David's avatar
Pierre-Yves David committed
179
6.3.1 -- 2017-06-01
180
181
182
183
-------------------

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

184
6.3.0 -- 2017-05-31
185
186
187
-------------------

 - olog: add an 'obslog' alias
188
 - olog: add an '--all' option to show the whole obsolescence history tree.
189
190
 - evolution: add an experiment to track the effect of rewrites.
   (See hg help - evolve for details)
191
192
193
194
195
 - 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)
196
197
 - obsdiscovery: add a config flag to disable all obsmarkers discovery
   (See hg help - evolve for details)
Boris Feld's avatar
Boris Feld committed
198
 - template: add a 'precursors' template that display the closests precursors of changesets
Boris Feld's avatar
Boris Feld committed
199
 - template: add a 'successors' template that display the closests successors of changesets
200
 - template: add a 'obsfate' template that display how a changeset has evolved
201
202
 - new discovery experiment: add options to restrict memory consumption on
   large repository (see "hg help -e evolve" for details).
203
 - evolve: fix --rev handling in --list mode
204

205
6.2.1 -- 2017-05-23
206
207
-------------------

208
209
 - prune: fix a crash related to color handling,
 - next: fix a crash related to color handling,
210
 - discovery: document the 'obshashrange' experiment,
211
 - cache: reduce the warming load in case of reset,
212
213
 - cache: add a 'experimental.obshashcache.warm-cache' option to allow
   disabling post transaction cache warming.
214

215
6.2.0 -- 2017-05-18
216
217
-------------------

218
 - olog: a new command to inspect the obs-history of a changeset (hg-4.0 + only),
219
 - topic: have thg display topic name if possible,
220
 - blackbox: log more information about discovery and cache computation,
221
 - obscache: more efficient update in the (rare) case of a transaction adding
222
223
224
   markers without changesets,
 - obscache: fix more cache invalidation propagation,
 - obscache: also enable the new cache (from 6.1.0) for 'evolve.server-only',
225
226
 - obshashrange-cache: update incrementally in the (common) case of a
   transaction not affecting existing range,
227
 - obshashrange-cache: keep the cache warm after each transaction,
228
 - topic: now requires Mercurial 4.0 or above,
229
230
 - stack: now display if current revision is in bad state (issue5533),
 - stack: fix json output to be valid json.
231

232
6.1.0 -- 2017-05-03
233
234
-------------------

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

Pierre-Yves David's avatar
Pierre-Yves David committed
241
6.0.1 -- 2017-04-20
242
243
-------------------

244
 - template: adapt to change in 4.2,
245
 - fix 'debugrecordpruneparents' (outdated API usage)
246
 - checkheads: give priority to updated 4.2 code,
Pierre-Yves David's avatar
Pierre-Yves David committed
247
 - serveronly: fix repository initialization.
248

249
6.0.0 -- 2017-03-31
250
-------------------
251

252
- push: improved detection of obsoleted remote branch (issue4354),
253
254
255
- drop compatibility for Mercurial < 3.8,
- removed old (unpackaged) pushexperiment extension,
- move all extensions in the official 'hgext3rd' namespace package,
256
- add the "topic" experimental extensions. See the README.topic file for details
257
258
- officially ship 'evolve.serveronly' extensions. That extensions contains
  only the part related to exchange and is intended to be used by server.
259

260
261
262
  Using the extension will enable evolution, use 'experimental.evolution=!'
  to disable obsmarkers echange.  The old '__temporary__.advertiseobsolete'
  option is no longer supported.
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277

- 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.

278
279
280
- 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.
281

282
5.6.1 -- 2017-02-28
283
-------------------
284

285
- fix a crash that sometime happened when evolving merges.
286

287
5.6.0 -- 2017-02-01
288
-------------------
289

290
291
292
293
294
- 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)
295

Pierre-Yves David's avatar
Pierre-Yves David committed
296
5.5.0 -- 2016-10-30
297
-------------------
298

299
300
301
302
303
304
305
- 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 .'
306

Pierre-Yves David's avatar
Pierre-Yves David committed
307
5.4.1 -- 2016-08-01
308
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
309
310
311

 - compat with Mercurial 3.9

312
5.4.0 -- 2016-05-06
313
-------------------
314

315
- Some collaboration with the topic experimental extensions,
316
  - hg evolve --all with consider all troubles in your current topic,
317
318
  - preserve 'topic' during evolve,
  - 'next' and 'prev' restrict themself to the current topic by default,
319
- remove the dangerous 'kill' alias for 'prune' (because 'hg kill -1' without
Pierre-Yves David's avatar
Pierre-Yves David committed
320
  the leading 'hg' will give you an hardtime)
321
322
323
324
- 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.
325
- small improvement to the `hg split` instruction
326
- add a 'metaedit' command to rewrite changeset meta data.
327

Pierre-Yves David's avatar
Pierre-Yves David committed
328
5.3.0 -- 2016-02-11
329
-------------------
330

331
332
333
- 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.
334
- evolve: compatibility with Mercurial 3.7
335
- evolve: support merge with a single obsolete parent (hg-3.7+ only)
336
- evolve: prevent added file to be marked as unknown if evolve fails (issue4966)
337
338
- evolve: stop relying on graftstate file for save evolve state
          (for `hg evolve --continue`)
339
340
- evolve: fix divergence resolution when it result in an empty commit
          (issue4950) (hg-3.5+ only)
341
342
343
- no longer lock the repository for `hg parents` (issue4895)
- updated help for the `evolve` command

Pierre-Yves David's avatar
Pierre-Yves David committed
344
5.2.1 -- 2015-11-02
345
-------------------
346

347
- add compatibility with Mercurial 3.6
348
- prune: fixed possible issue with lock and bookmark
349
- next/prev: fixed possible issue with lock and bookmark
Pierre-Yves David's avatar
Pierre-Yves David committed
350
351
- add some progress data during changesets discovery
- take advantage of dirstate/transaction collaboration
352

Pierre-Yves David's avatar
Pierre-Yves David committed
353
5.2.0 -- 2015-06-25
354
-------------------
355
356
357
358

- 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
359
- evolve: gain --unstable --divergent --bumped flag to select the trouble
360
- evolve: issue more useful error message and hint when evolve has nothing to
361
362
363
          do as invocated.
- evolve: bare `hg evolve` commands now abort when multiple changesets could be
          a target.
364
365
366
- 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`.
367
368
- evolve: add a 'experimental.evolutioncommands' for fine grained commands
          enabling
timeless developer's avatar
timeless developer committed
369
- next/prev: requires `--merge` to move with uncommitted changes
Pierre-Yves David's avatar
Pierre-Yves David committed
370
- next: significantly reword error messages
371
- next: add a --evolve flag to evolve aspiring children when on a head
372

Pierre-Yves David's avatar
Pierre-Yves David committed
373
5.1.5 -- 2015-06-23
374
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
375
376

- minor documentation cleanup
377
- support -i option for `hg amend` if commit supports it (3.4)
Pierre-Yves David's avatar
Pierre-Yves David committed
378
- fix the `debugrecordpruneparents` utility
Anton Shestakov's avatar
Anton Shestakov committed
379
- fix some possible crash during command abort (release nonexistent transaction)
380
- fix simple4server bug tracker URL
381
- compatibility with bookmark API change in future Mercurial 3.5
Pierre-Yves David's avatar
Pierre-Yves David committed
382
- prune no longer move the active bookmark for no reason (issue4559)
383
- evolve: stop reporting divergence base as missing when we actually have it
384
- significant performance improvement for all revsets.
385
386
- 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
387

Pierre-Yves David's avatar
Pierre-Yves David committed
388
5.1.4 -- 2015-04-23
389
-------------------
390
391

- significant documentation update
392
393
- fix issue4616: pulling with bundle2 would crash if common marker when
  discovered on non-served changesets.
394
- fix the debugobsrelsethashtree command
395

Pierre-Yves David's avatar
Pierre-Yves David committed
396
5.1.3 -- 2015-04-20
397
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
398

Anton Shestakov's avatar
Anton Shestakov committed
399
- discovery: fix misbehaving discovery across python version
Pierre-Yves David's avatar
Pierre-Yves David committed
400
401
- pull: properly install the bundle2 par generator
  (avoid sending all markers for each pull)
402
- commit: avoid potential deadlock (acquires wlock before lock)
403
- graft: avoid potential deadlock (acquires wlock before lock)
Pierre-Yves David's avatar
Pierre-Yves David committed
404

Pierre-Yves David's avatar
Pierre-Yves David committed
405
5.1.2 -- 2015-04-01
406
-------------------
407
408
409

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

Pierre-Yves David's avatar
Pierre-Yves David committed
410
5.1.1 -- 2015-03-05
411
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
412
413
414
415
416

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

417
5.1 -- 2015-01-30
418
-------------------
419

420
- evolve: explicitly disable bookmark on evolve (issue4432)
421
- evolve: don't abort Mercurial on version mismatch
Anton Shestakov's avatar
Anton Shestakov committed
422
- compatibility with mercurial 3.3
423

Pierre-Yves David's avatar
Pierre-Yves David committed
424
5.0.2 -- 2014-12-14
425
-------------------
426
427
428

- evolve: remove dependency to the rebase extension

429
5.0.1 -- 2014-11-25
430
-------------------
431
432

- amend: fix --logfile argument
433
- evolve: preserve branch change when evolving
434
- evolve: fix potential crash while solving `bumped` changesets.
Pierre-Yves David's avatar
Pierre-Yves David committed
435
436
437
438
439
440
- 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

441
5.0.0 -- 2014-10-22
442
-------------------
443
444

- drop compat with Mercurial pre 3.2
445
- uncommit: add a --rev argument
446
- evolve: add a `working directory now at xxxxxxxxxx` message
447
- evolve: automatically translate obsolete hashes when evolving
448
- properly skip marker creating if patch apply cleanly
449
- prune: work around a massive slowdown from lazy revset
450
- grab: "fix" the grab alias on window
451

452
453
454
455
456
- 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
457
4.1.0 -- 2014-08-08
458
-------------------
459
460

- amend: add -D/--current-date option
461
- amend: add -U/--current-user option
Pierre-Yves David's avatar
Pierre-Yves David committed
462
- evolve: add a --tool option
463
- evolve: add a --confirm option
464
465
- mark "commit -o", "graft -o" and "graft -O" as deprecated since they are
  unlikely to eventually make it into core.
466
467
- push obsmarkers and phases in the same transaction than changesets
  (when using hg >= 3.1 and bundle2-exp is enabled)
468
469
- hide message about the obsolescence marker exchange behind a
  `experimental.verbose-obsolescence-exchange` variable (default to False).
470

471
4.0.1 -- 2014-08-08
472
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
473
474
475

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

476
4.0.0 -- 2014-06-03
477
-------------------
478

479
- require Mercurial version 3.0.1 or above
480
- some compatibility fixes with future 3.1.0
481
482
483
484
485
- 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.
486
487
488
489
490
- 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
491

492
493
494
    - added progress when pulling obsmarkers
    - only pull markers relevant to pulled subset
    - avoid exchanging common markers in some case
495
    - use bundle2 as transport when available.
Pierre-Yves David's avatar
Pierre-Yves David committed
496

497
 - add a hook related to the new commands
498

Pierre-Yves David's avatar
Pierre-Yves David committed
499
3.3.2 -- 2014-05-14
500
-------------------
501
502
503

- 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
504
- adds a --obsolete flag to import (requires Mercurial 3.0)
505
- prune: update to successor rather than parent when pruning '.' with -s
506
- fold: add missing --message and --logfile option
507
- fold: add squash as an alias
508

Pierre-Yves David's avatar
Pierre-Yves David committed
509
3.3.1 -- 2014-04-23
510
-------------------
511
512

- various language fix
513
514
515
- 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)
516
- fold: enable --date and --user options
517

Pierre-Yves David's avatar
Pierre-Yves David committed
518
3.3.0 -- 2014-03-04
519
-------------------
520

521
- raise Mercurial's minimal requirement to 2.7
522
523
- drop `latercomer` and `conflicting` compatibility. Those old alias are
  deprecated for a long time now.
524
525
- add verbose hint about how to handle corner case by hand.
  This should help people until evolve is able to to it itself.
526
527
- 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.
528
- add progress indicator for long evolve command
529
- report troubles creation from `hg import`
530

Pierre-Yves David's avatar
Pierre-Yves David committed
531
3.2.0 -- 2013-11-15
532
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
533
534
535
536
537

- 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)
538
- parents command: add "working directory parent is obsolete" message
539
540
- evolve command: allow updating to the successor if the parent is
  obsolete
541
- gdown and gup commands: add next and previous alias, respectively
542
- make grab aliases compatible with Mercurial 2.8
Pierre-Yves David's avatar
Pierre-Yves David committed
543
- Tested with 2.6, 2.7 and 2.8
Pierre-Yves David's avatar
Pierre-Yves David committed
544

Pierre-Yves David's avatar
Pierre-Yves David committed
545
3.1.0 -- 2013-02-11
546
-------------------
Pierre-Yves David's avatar
merge  
Pierre-Yves David committed
547

Pierre-Yves David's avatar
Pierre-Yves David committed
548
- amend: drop deprecated --change option for amend
Anton Shestakov's avatar
Anton Shestakov committed
549
- alias: add a grab alias to be used instead of graft -O
550
- touch: add a --duplicate option to *not* obsolete the old version
551
- touch: fix touching multiple revision at the same time
552
- evolve: add a --all option
Levi Bard's avatar
Levi Bard committed
553
554
- prune: various minor improvements
- prune: add option to prune a specific bookmark
555
- prune: add -u and -d option to control metadata
556
557

3.0.0 -- 2013-02-02
558
-------------------
559

Pierre-Yves David's avatar
merge  
Pierre-Yves David committed
560
561
- compatibility with 2.5

562
2.2.0 --
563
-------------------
564
565
566

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

Pierre-Yves David's avatar
Pierre-Yves David committed
567
2.1.0 -- 2012-12-03
568
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
569
570
571
572
573

- qsync fixes
- have qfold ask for commit message

2.0.0 -- 2012-10-26
574
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
575
576
577

- compat with mercurial 2.4

Pierre-Yves David's avatar
Pierre-Yves David committed
578
1.1.0 -- 2012-10-26
579
-------------------
580
581

- fix troubles creation reporting from rebase
582
583
584
- rename latecomer to bumped
- renamed conflicting to divergent
- smarter divergent handling
585

Pierre-Yves David's avatar
Pierre-Yves David committed
586
1.0.2 -- 2012-09-19
587
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
588
589
590
591
592
593

- 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
594
1.0.1 -- 2012-08-31
595
-------------------
Pierre-Yves David's avatar
Pierre-Yves David committed
596
597
598
599
600

- documentation improvement
- fix a performance bug with hgweb

1.0 -- 2012-08-29
601
-------------------
602
603
604
605

- 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
606
- stabilize handle conflicting
607
608
609
- stabilize get a --continue switch
- merge and update ignore extinct changeset in most case.
- new "troubled()" revset
610
- summary now reports troubles changesets
Pierre-Yves David's avatar
Pierre-Yves David committed
611
612
- new touch command
- new fold command
613
- new basic olog alias
614
615
616
617
618
619
620

- 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


621
0.7 -- 2012-08-06
622
-------------------
623
624
625
626
627
628
629
630
631
632
633

- 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
634
-------------------
635
636

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

0.5 -- 2012-07-16
641
-------------------
642

643
644
645
646
647
648
649
650
- 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
651
-------------------
652

Anton Shestakov's avatar
Anton Shestakov committed
653
- [convert] properly exclude null successors from conversion
654
655
656
657
- Ignore buggy marker in newerversion


0.4.0 -- 2012-07-06
658
-------------------
659
660
661
662
663
664
665

- 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
666
-------------------
667
668

- obsolete:  Add "latecomer" error detection (stabilize does not handle resolution yet)
669
670
671
672
- 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
673
674
- revset:    add, successors(), allsuccessors(), precursors(), allprecursors(),
             latecomer() and hidden()
675
- evolve:    add `prune` alias to `kill`.
Anton Shestakov's avatar
Anton Shestakov committed
676
- stabilize: clearly state that stabilize does not handle conflict
Pierre-Yves David's avatar
Pierre-Yves David committed
677
- template:  add an {obsolete} keyword
678
679

0.2.0 -- 2012-06-20
680
-------------------
681
682
683
684
685
686
687

- 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`