# HG changeset patch # User Pierre-Yves David # Date 1507668041 -7200 # Node ID cb8ae3cb0bbc3fd830df589b1618834b91794c7b # Parent 774b4ea6ca584c912a9f8775851a86280d907024# Parent 9360d7ad727073a7ce3de89933adc6967bb22d69 branching: merge with stable diff -r 9360d7ad7270 -r cb8ae3cb0bbc CHANGELOG --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CHANGELOG Tue Oct 10 22:40:41 2017 +0200 @@ -0,0 +1,609 @@ +Changelog +========= + +6.7.1 -- 2017-10-10 +------------------- + + * obsfate: fix case were current user would disapear from the user list + +topic (0.3.1) + + * stack: fix evolution preview for simple split. + * fix a performance regression affecting all transactions. + (the more non public changeset (hidden included), the slower) + +6.7.0 -- 2017-09-27 +------------------- + + * compatibility with change in future 4.4 at this release date, + * documentation: improvement to content, wording and graphs, + * obslog: improved templatability, + * obslog/log: improve verb used to describe and evolution, + * pstatus/pdiff: update to full command. They now appears in the help, + * uncommit: add a --interactive option (4.3+ only). + +topic (0.3.0) + + * 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. + +6.6.0 -- 2017-07-25 +------------------- + + - amend: add a --extract flag to move change back to the working copy, + (same as uncommit, but accessible through the amend commit) + - 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, + (when available) + - documentation: various minor documentation update. + +topic (0.2.0): + + - topic: add --age option to sort topic by the most recently touched, + - 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) + - topic: make command names valid as expected, even if ui.strict=true. + +6.5.0 -- 2017-07-02 +------------------- + +features: + + - obslog: gain a --patch flag to display changes introduced by the evolution + (Currently limited to in simple case only) + - log: display obsolescence fate by default, (future 4.3 only) + - doc: various minor improvement. + +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. + +topic (0.1.0): + + - stack: also show the unstable status for the current changeset, (issue5553) + - stack: properly abort when and unknown topic is requested, + - stack: add basic and raw support for named branches, + - topic: changing topic on revs no longer adds extra instability, (issue5441) + - topic: topics: rename '--change' flag to '--rev' flag, + - topic: multiple large performance improvements, + - topic: various small output improvement, + - topic: improved topic preservation for various commands. + + +6.4.0 -- 2017-06-16 +------------------- + + - template: signifiant improvement to the '{obsfate}' template (now 4.2+ only) + - template: fix 'successors' and 'precursors' template to expose hex-node + - effect flag: the experiment is now active by default, + (see 'hg help -e evolve' to opt out) + - effect flag: fix a small bug related to hidden changeset, + - obscache: reduce impact on large repository + - obshashrange: install a '.max-revs' option see extension help for details + +6.3.1 -- 2017-06-01 +------------------- + + - also backport the "revelant-markers" fix when using "evolve.serveronly" + +6.3.0 -- 2017-05-31 +------------------- + + - olog: add an 'obslog' alias + - olog: add an '--all' option to show the whole obsolescence history tree. + - evolution: add an experiment to track the effect of rewrites. + (See hg help - evolve for details) + - 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) + - obsdiscovery: add a config flag to disable all obsmarkers discovery + (See hg help - evolve for details) + - template: add a 'precursors' template that display the closests precursors of changesets + - template: add a 'successors' template that display the closests successors of changesets + - template: add a 'obsfate' template that display how a changeset has evolved + - new discovery experiment: add options to restrict memory consumption on + large repository (see "hg help -e evolve" for details). + - evolve: fix --rev handling in --list mode + +6.2.1 -- 2017-05-23 +------------------- + + - prune: fix a crash related to color handling, + - next: fix a crash related to color handling, + - discovery: document the 'obshashrange' experiment, + - cache: reduce the warming load in case of reset, + - cache: add a 'experimental.obshashcache.warm-cache' option to allow + disabling post transaction cache warming. + +6.2.0 -- 2017-05-18 +------------------- + + - olog: a new command to inspect the obs-history of a changeset (hg-4.0 + only), + - topic: have thg display topic name if possible, + - blackbox: log more information about discovery and cache computation, + - obscache: more efficient update in the (rare) case of a transaction adding + markers without changesets, + - obscache: fix more cache invalidation propagation, + - obscache: also enable the new cache (from 6.1.0) for 'evolve.server-only', + - obshashrange-cache: update incrementally in the (common) case of a + transaction not affecting existing range, + - obshashrange-cache: keep the cache warm after each transaction, + - topic: now requires Mercurial 4.0 or above, + - stack: now display if current revision is in bad state (issue5533), + - stack: fix json output to be valid json. + +6.1.0 -- 2017-05-03 +------------------- + + - improve message about obsolete working copy parent, + - improve message issued when accessing hidden nodes (4.2 only), + - introduce a new caches to reduce the impact of evolution on read-only commands, + - add a 'experimental.auto-publish' config. See `hg help -e evolve` for details. + - fix the propagation of some some cache invalidation, + +6.0.1 -- 2017-04-20 +------------------- + + - template: adapt to change in 4.2, + - fix 'debugrecordpruneparents' (outdated API usage) + - checkheads: give priority to updated 4.2 code, + - serveronly: fix repository initialization. + +6.0.0 -- 2017-03-31 +------------------- + +- push: improved detection of obsoleted remote branch (issue4354), +- drop compatibility for Mercurial < 3.8, +- removed old (unpackaged) pushexperiment extension, +- move all extensions in the official 'hgext3rd' namespace package, +- add the "topic" experimental extensions. See the README.topic file for details +- officially ship 'evolve.serveronly' extensions. That extensions contains + only the part related to exchange and is intended to be used by server. + + Using the extension will enable evolution, use 'experimental.evolution=!' + to disable obsmarkers echange. The old '__temporary__.advertiseobsolete' + option is no longer supported. + +- 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. + +- 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. + +5.6.1 -- 2017-02-28 +------------------- + +- fix a crash that sometime happened when evolving merges. + +5.6.0 -- 2017-02-01 +------------------- + +- 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) + +5.5.0 -- 2016-10-30 +------------------- + +- 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 .' + +5.4.1 -- 2016-08-01 +------------------- + + - compat with Mercurial 3.9 + +5.4.0 -- 2016-05-06 +------------------- + +- Some collaboration with the topic experimental extensions, + - hg evolve --all with consider all troubles in your current topic, + - preserve 'topic' during evolve, + - 'next' and 'prev' restrict themself to the current topic by default, +- remove the dangerous 'kill' alias for 'prune' (because 'hg kill -1' without + the leading 'hg' will give you an hardtime) +- 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. +- small improvement to the `hg split` instruction +- add a 'metaedit' command to rewrite changeset meta data. + +5.3.0 -- 2016-02-11 +------------------- + +- 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. +- evolve: compatibility with Mercurial 3.7 +- evolve: support merge with a single obsolete parent (hg-3.7+ only) +- evolve: prevent added file to be marked as unknown if evolve fails (issue4966) +- evolve: stop relying on graftstate file for save evolve state + (for `hg evolve --continue`) +- evolve: fix divergence resolution when it result in an empty commit + (issue4950) (hg-3.5+ only) +- no longer lock the repository for `hg parents` (issue4895) +- updated help for the `evolve` command + +5.2.1 -- 2015-11-02 +------------------- + +- add compatibility with Mercurial 3.6 +- prune: fixed possible issue with lock and bookmark +- next/prev: fixed possible issue with lock and bookmark +- add some progress data during changesets discovery +- take advantage of dirstate/transaction collaboration + +5.2.0 -- 2015-06-25 +------------------- + +- 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 +- evolve: gain --unstable --divergent --bumped flag to select the trouble +- evolve: issue more useful error message and hint when evolve has nothing to + do as invocated. +- evolve: bare `hg evolve` commands now abort when multiple changesets could be + a target. +- 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`. +- evolve: add a 'experimental.evolutioncommands' for fine grained commands + enabling +- next/prev: requires `--merge` to move with uncommitted changes +- next: significantly reword error messages +- next: add a --evolve flag to evolve aspiring children when on a head + +5.1.5 -- 2015-06-23 +------------------- + +- minor documentation cleanup +- support -i option for `hg amend` if commit supports it (3.4) +- fix the `debugrecordpruneparents` utility +- fix some possible crash during command abort (release nonexistent transaction) +- fix simple4server bug tracker URL +- compatibility with bookmark API change in future Mercurial 3.5 +- prune no longer move the active bookmark for no reason (issue4559) +- evolve: stop reporting divergence base as missing when we actually have it +- significant performance improvement for all revsets. +- provide a hint of how to update to the successor of an obsolete working copy + parent. + +5.1.4 -- 2015-04-23 +------------------- + +- significant documentation update +- fix issue4616: pulling with bundle2 would crash if common marker when + discovered on non-served changesets. +- fix the debugobsrelsethashtree command + +5.1.3 -- 2015-04-20 +------------------- + +- discovery: fix misbehaving discovery across python version +- pull: properly install the bundle2 par generator + (avoid sending all markers for each pull) +- commit: avoid potential deadlock (acquires wlock before lock) +- graft: avoid potential deadlock (acquires wlock before lock) + +5.1.2 -- 2015-04-01 +------------------- + +- evolve: prevent a crash in httpclient_pushobsmarkers() when pushing + +5.1.1 -- 2015-03-05 +------------------- + +- debugobsconvert: fix invalid markers during conversion +- discovery: cache some of the obs hash computation to improve performance (issue4518) +- revset: fix some crash with (issue4515) + +5.1 -- 2015-01-30 +------------------- + +- evolve: explicitly disable bookmark on evolve (issue4432) +- evolve: don't abort Mercurial on version mismatch +- compatibility with mercurial 3.3 + +5.0.2 -- 2014-12-14 +------------------- + +- evolve: remove dependency to the rebase extension + +5.0.1 -- 2014-11-25 +------------------- + +- amend: fix --logfile argument +- evolve: preserve branch change when evolving +- evolve: fix potential crash while solving `bumped` changesets. +- 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 + +5.0.0 -- 2014-10-22 +------------------- + +- drop compat with Mercurial pre 3.2 +- uncommit: add a --rev argument +- evolve: add a `working directory now at xxxxxxxxxx` message +- evolve: automatically translate obsolete hashes when evolving +- properly skip marker creating if patch apply cleanly +- prune: work around a massive slowdown from lazy revset +- grab: "fix" the grab alias on window + +- fix an issue where prune performance were quadratic with the number of + changesets pruned. +- pull: use discovery to pull less obsmarkers through bundle2 + + +4.1.0 -- 2014-08-08 +------------------- + +- amend: add -D/--current-date option +- amend: add -U/--current-user option +- evolve: add a --tool option +- evolve: add a --confirm option +- mark "commit -o", "graft -o" and "graft -O" as deprecated since they are + unlikely to eventually make it into core. +- push obsmarkers and phases in the same transaction than changesets + (when using hg >= 3.1 and bundle2-exp is enabled) +- hide message about the obsolescence marker exchange behind a + `experimental.verbose-obsolescence-exchange` variable (default to False). + +4.0.1 -- 2014-08-08 +------------------- + +- createmarkers() accept an iterable (for compat with other extension) + +4.0.0 -- 2014-06-03 +------------------- + +- require Mercurial version 3.0.1 or above +- some compatibility fixes with future 3.1.0 +- 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. +- 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): + + - added progress when pulling obsmarkers + - only pull markers relevant to pulled subset + - avoid exchanging common markers in some case + - use bundle2 as transport when available. + + - add a hook related to the new commands + +3.3.2 -- 2014-05-14 +------------------- + +- fix a bug where evolve were creating changeset with 2 parents on windows + (fix issues #16, #35 and #42) +- adds a --obsolete flag to import (requires Mercurial 3.0) +- prune: update to successor rather than parent when pruning '.' with -s +- fold: add missing --message and --logfile option +- fold: add squash as an alias + +3.3.1 -- 2014-04-23 +------------------- + +- various language fix +- 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) +- fold: enable --date and --user options + +3.3.0 -- 2014-03-04 +------------------- + +- raise Mercurial's minimal requirement to 2.7 +- drop `latercomer` and `conflicting` compatibility. Those old alias are + deprecated for a long time now. +- add verbose hint about how to handle corner case by hand. + This should help people until evolve is able to to it itself. +- 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. +- add progress indicator for long evolve command +- report troubles creation from `hg import` + +3.2.0 -- 2013-11-15 +------------------- + +- 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) +- parents command: add "working directory parent is obsolete" message +- evolve command: allow updating to the successor if the parent is + obsolete +- gdown and gup commands: add next and previous alias, respectively +- make grab aliases compatible with Mercurial 2.8 +- Tested with 2.6, 2.7 and 2.8 + +3.1.0 -- 2013-02-11 +------------------- + +- amend: drop deprecated --change option for amend +- alias: add a grab alias to be used instead of graft -O +- touch: add a --duplicate option to *not* obsolete the old version +- touch: fix touching multiple revision at the same time +- evolve: add a --all option +- prune: various minor improvements +- prune: add option to prune a specific bookmark +- prune: add -u and -d option to control metadata + +3.0.0 -- 2013-02-02 +------------------- + +- compatibility with 2.5 + +2.2.0 -- +------------------- + +- make evolve smarter at picking next troubled to solved without --any + +2.1.0 -- 2012-12-03 +------------------- + +- qsync fixes +- have qfold ask for commit message + +2.0.0 -- 2012-10-26 +------------------- + +- compat with mercurial 2.4 + +1.1.0 -- 2012-10-26 +------------------- + +- fix troubles creation reporting from rebase +- rename latecomer to bumped +- renamed conflicting to divergent +- smarter divergent handling + +1.0.2 -- 2012-09-19 +------------------- + +- fix hg fold bug +- fix hg pull --rebase +- fix detection of conflict with external tools +- adapt to core movement (caches and --amend) + +1.0.1 -- 2012-08-31 +------------------- + +- documentation improvement +- fix a performance bug with hgweb + +1.0 -- 2012-08-29 +------------------- + +- Align with Mercurial version 2.3 (drop 2.2 support). +- stabilize handle killed parent +- stabilize handle late comer +- stabilize handle conflicting +- stabilize get a --continue switch +- merge and update ignore extinct changeset in most case. +- new "troubled()" revset +- summary now reports troubles changesets +- new touch command +- new fold command +- new basic olog alias + +- 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 + + +0.7 -- 2012-08-06 +------------------- + +- 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 +------------------- + +- obsolete: change warning output to match mercurial core on +- qsync: ignore nonexistent nodes +- make compat server both compatible with "dump" and "dump%i" version + +0.5 -- 2012-07-16 +------------------- + +- 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 +------------------- + +- [convert] properly exclude null successors from conversion +- Ignore buggy marker in newerversion + + +0.4.0 -- 2012-07-06 +------------------- + +- 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 +------------------- + +- obsolete: Add "latecomer" error detection (stabilize does not handle resolution yet) +- 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. +- revset: add, successors(), allsuccessors(), precursors(), allprecursors(), + latecomer() and hidden() +- evolve: add `prune` alias to `kill`. +- stabilize: clearly state that stabilize does not handle conflict +- template: add an {obsolete} keyword + +0.2.0 -- 2012-06-20 +------------------- + +- 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` diff -r 9360d7ad7270 -r cb8ae3cb0bbc MANIFEST.in --- a/MANIFEST.in Tue Oct 10 21:12:14 2017 +0200 +++ b/MANIFEST.in Tue Oct 10 22:40:41 2017 +0200 @@ -18,9 +18,10 @@ include hgext3rd/__init__.py include hgext3rd/evolve/*.py include hgext3rd/topic/*.py +include hgext3rd/topic/README include MANIFEST.in include README -include README-topic +include CHANGELOG include setup.py include tests/*.py include tests/*.sh diff -r 9360d7ad7270 -r cb8ae3cb0bbc README --- a/README Tue Oct 10 21:12:14 2017 +0200 +++ b/README Tue Oct 10 22:40:41 2017 +0200 @@ -117,613 +117,3 @@ 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. - -Changelog -========= - -6.7.1 -- 2017-10-10 -------------------- - - * obsfate: fix case were current user would disapear from the user list - -topic (0.3.1) - - * stack: fix evolution preview for simple split. - * fix a performance regression affecting all transactions. - (the more non public changeset (hidden included), the slower) - -6.7.0 -- 2017-09-27 -------------------- - - * compatibility with change in future 4.4 at this release date, - * documentation: improvement to content, wording and graphs, - * obslog: improved templatability, - * obslog/log: improve verb used to describe and evolution, - * pstatus/pdiff: update to full command. They now appears in the help, - * uncommit: add a --interactive option (4.3+ only). - -topic (0.3.0) - - * 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. - -6.6.0 -- 2017-07-25 -------------------- - - - amend: add a --extract flag to move change back to the working copy, - (same as uncommit, but accessible through the amend commit) - - 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, - (when available) - - documentation: various minor documentation update. - -topic (0.2.0): - - - topic: add --age option to sort topic by the most recently touched, - - 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) - - topic: make command names valid as expected, even if ui.strict=true. - -6.5.0 -- 2017-07-02 -------------------- - -features: - - - obslog: gain a --patch flag to display changes introduced by the evolution - (Currently limited to in simple case only) - - log: display obsolescence fate by default, (future 4.3 only) - - doc: various minor improvement. - -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. - -topic (0.1.0): - - - stack: also show the unstable status for the current changeset, (issue5553) - - stack: properly abort when and unknown topic is requested, - - stack: add basic and raw support for named branches, - - topic: changing topic on revs no longer adds extra instability, (issue5441) - - topic: topics: rename '--change' flag to '--rev' flag, - - topic: multiple large performance improvements, - - topic: various small output improvement, - - topic: improved topic preservation for various commands. - - -6.4.0 -- 2017-06-16 -------------------- - - - template: signifiant improvement to the '{obsfate}' template (now 4.2+ only) - - template: fix 'successors' and 'precursors' template to expose hex-node - - effect flag: the experiment is now active by default, - (see 'hg help -e evolve' to opt out) - - effect flag: fix a small bug related to hidden changeset, - - obscache: reduce impact on large repository - - obshashrange: install a '.max-revs' option see extension help for details - -6.3.1 -- 2017-06-01 -------------------- - - - also backport the "revelant-markers" fix when using "evolve.serveronly" - -6.3.0 -- 2017-05-31 -------------------- - - - olog: add an 'obslog' alias - - olog: add an '--all' option to show the whole obsolescence history tree. - - evolution: add an experiment to track the effect of rewrites. - (See hg help - evolve for details) - - 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) - - obsdiscovery: add a config flag to disable all obsmarkers discovery - (See hg help - evolve for details) - - template: add a 'precursors' template that display the closests precursors of changesets - - template: add a 'successors' template that display the closests successors of changesets - - template: add a 'obsfate' template that display how a changeset has evolved - - new discovery experiment: add options to restrict memory consumption on - large repository (see "hg help -e evolve" for details). - - evolve: fix --rev handling in --list mode - -6.2.1 -- 2017-05-23 -------------------- - - - prune: fix a crash related to color handling, - - next: fix a crash related to color handling, - - discovery: document the 'obshashrange' experiment, - - cache: reduce the warming load in case of reset, - - cache: add a 'experimental.obshashcache.warm-cache' option to allow - disabling post transaction cache warming. - -6.2.0 -- 2017-05-18 -------------------- - - - olog: a new command to inspect the obs-history of a changeset (hg-4.0 + only), - - topic: have thg display topic name if possible, - - blackbox: log more information about discovery and cache computation, - - obscache: more efficient update in the (rare) case of a transaction adding - markers without changesets, - - obscache: fix more cache invalidation propagation, - - obscache: also enable the new cache (from 6.1.0) for 'evolve.server-only', - - obshashrange-cache: update incrementally in the (common) case of a - transaction not affecting existing range, - - obshashrange-cache: keep the cache warm after each transaction, - - topic: now requires Mercurial 4.0 or above, - - stack: now display if current revision is in bad state (issue5533), - - stack: fix json output to be valid json. - -6.1.0 -- 2017-05-03 -------------------- - - - improve message about obsolete working copy parent, - - improve message issued when accessing hidden nodes (4.2 only), - - introduce a new caches to reduce the impact of evolution on read-only commands, - - add a 'experimental.auto-publish' config. See `hg help -e evolve` for details. - - fix the propagation of some some cache invalidation, - -6.0.1 -- 2017-04-20 -------------------- - - - template: adapt to change in 4.2, - - fix 'debugrecordpruneparents' (outdated API usage) - - checkheads: give priority to updated 4.2 code, - - serveronly: fix repository initialization. - -6.0.0 -- 2017-03-31 -------------------- - -- push: improved detection of obsoleted remote branch (issue4354), -- drop compatibility for Mercurial < 3.8, -- removed old (unpackaged) pushexperiment extension, -- move all extensions in the official 'hgext3rd' namespace package, -- add the "topic" experimental extensions. See the README.topic file for details -- officially ship 'evolve.serveronly' extensions. That extensions contains - only the part related to exchange and is intended to be used by server. - - Using the extension will enable evolution, use 'experimental.evolution=!' - to disable obsmarkers echange. The old '__temporary__.advertiseobsolete' - option is no longer supported. - -- 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. - -- 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. - -5.6.1 -- 2017-02-28 -------------------- - -- fix a crash that sometime happened when evolving merges. - -5.6.0 -- 2017-02-01 -------------------- - -- 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) - -5.5.0 -- 2016-10-30 -------------------- - -- 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 .' - -5.4.1 -- 2016-08-01 -------------------- - - - compat with Mercurial 3.9 - -5.4.0 -- 2016-05-06 -------------------- - -- Some collaboration with the topic experimental extensions, - - hg evolve --all with consider all troubles in your current topic, - - preserve 'topic' during evolve, - - 'next' and 'prev' restrict themself to the current topic by default, -- remove the dangerous 'kill' alias for 'prune' (because 'hg kill -1' without - the leading 'hg' will give you an hardtime) -- 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. -- small improvement to the `hg split` instruction -- add a 'metaedit' command to rewrite changeset meta data. - -5.3.0 -- 2016-02-11 -------------------- - -- 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. -- evolve: compatibility with Mercurial 3.7 -- evolve: support merge with a single obsolete parent (hg-3.7+ only) -- evolve: prevent added file to be marked as unknown if evolve fails (issue4966) -- evolve: stop relying on graftstate file for save evolve state - (for `hg evolve --continue`) -- evolve: fix divergence resolution when it result in an empty commit - (issue4950) (hg-3.5+ only) -- no longer lock the repository for `hg parents` (issue4895) -- updated help for the `evolve` command - -5.2.1 -- 2015-11-02 -------------------- - -- add compatibility with Mercurial 3.6 -- prune: fixed possible issue with lock and bookmark -- next/prev: fixed possible issue with lock and bookmark -- add some progress data during changesets discovery -- take advantage of dirstate/transaction collaboration - -5.2.0 -- 2015-06-25 -------------------- - -- 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 -- evolve: gain --unstable --divergent --bumped flag to select the trouble -- evolve: issue more useful error message and hint when evolve has nothing to - do as invocated. -- evolve: bare `hg evolve` commands now abort when multiple changesets could be - a target. -- 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`. -- evolve: add a 'experimental.evolutioncommands' for fine grained commands - enabling -- next/prev: requires `--merge` to move with uncommitted changes -- next: significantly reword error messages -- next: add a --evolve flag to evolve aspiring children when on a head - -5.1.5 -- 2015-06-23 -------------------- - -- minor documentation cleanup -- support -i option for `hg amend` if commit supports it (3.4) -- fix the `debugrecordpruneparents` utility -- fix some possible crash during command abort (release nonexistent transaction) -- fix simple4server bug tracker URL -- compatibility with bookmark API change in future Mercurial 3.5 -- prune no longer move the active bookmark for no reason (issue4559) -- evolve: stop reporting divergence base as missing when we actually have it -- significant performance improvement for all revsets. -- provide a hint of how to update to the successor of an obsolete working copy - parent. - -5.1.4 -- 2015-04-23 -------------------- - -- significant documentation update -- fix issue4616: pulling with bundle2 would crash if common marker when - discovered on non-served changesets. -- fix the debugobsrelsethashtree command - -5.1.3 -- 2015-04-20 -------------------- - -- discovery: fix misbehaving discovery across python version -- pull: properly install the bundle2 par generator - (avoid sending all markers for each pull) -- commit: avoid potential deadlock (acquires wlock before lock) -- graft: avoid potential deadlock (acquires wlock before lock) - -5.1.2 -- 2015-04-01 -------------------- - -- evolve: prevent a crash in httpclient_pushobsmarkers() when pushing - -5.1.1 -- 2015-03-05 -------------------- - -- debugobsconvert: fix invalid markers during conversion -- discovery: cache some of the obs hash computation to improve performance (issue4518) -- revset: fix some crash with (issue4515) - -5.1 -- 2015-01-30 -------------------- - -- evolve: explicitly disable bookmark on evolve (issue4432) -- evolve: don't abort Mercurial on version mismatch -- compatibility with mercurial 3.3 - -5.0.2 -- 2014-12-14 -------------------- - -- evolve: remove dependency to the rebase extension - -5.0.1 -- 2014-11-25 -------------------- - -- amend: fix --logfile argument -- evolve: preserve branch change when evolving -- evolve: fix potential crash while solving `bumped` changesets. -- 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 - -5.0.0 -- 2014-10-22 -------------------- - -- drop compat with Mercurial pre 3.2 -- uncommit: add a --rev argument -- evolve: add a `working directory now at xxxxxxxxxx` message -- evolve: automatically translate obsolete hashes when evolving -- properly skip marker creating if patch apply cleanly -- prune: work around a massive slowdown from lazy revset -- grab: "fix" the grab alias on window - -- fix an issue where prune performance were quadratic with the number of - changesets pruned. -- pull: use discovery to pull less obsmarkers through bundle2 - - -4.1.0 -- 2014-08-08 -------------------- - -- amend: add -D/--current-date option -- amend: add -U/--current-user option -- evolve: add a --tool option -- evolve: add a --confirm option -- mark "commit -o", "graft -o" and "graft -O" as deprecated since they are - unlikely to eventually make it into core. -- push obsmarkers and phases in the same transaction than changesets - (when using hg >= 3.1 and bundle2-exp is enabled) -- hide message about the obsolescence marker exchange behind a - `experimental.verbose-obsolescence-exchange` variable (default to False). - -4.0.1 -- 2014-08-08 -------------------- - -- createmarkers() accept an iterable (for compat with other extension) - -4.0.0 -- 2014-06-03 -------------------- - -- require Mercurial version 3.0.1 or above -- some compatibility fixes with future 3.1.0 -- 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. -- 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): - - - added progress when pulling obsmarkers - - only pull markers relevant to pulled subset - - avoid exchanging common markers in some case - - use bundle2 as transport when available. - - - add a hook related to the new commands - -3.3.2 -- 2014-05-14 -------------------- - -- fix a bug where evolve were creating changeset with 2 parents on windows - (fix issues #16, #35 and #42) -- adds a --obsolete flag to import (requires Mercurial 3.0) -- prune: update to successor rather than parent when pruning '.' with -s -- fold: add missing --message and --logfile option -- fold: add squash as an alias - -3.3.1 -- 2014-04-23 -------------------- - -- various language fix -- 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) -- fold: enable --date and --user options - -3.3.0 -- 2014-03-04 -------------------- - -- raise Mercurial's minimal requirement to 2.7 -- drop `latercomer` and `conflicting` compatibility. Those old alias are - deprecated for a long time now. -- add verbose hint about how to handle corner case by hand. - This should help people until evolve is able to to it itself. -- 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. -- add progress indicator for long evolve command -- report troubles creation from `hg import` - -3.2.0 -- 2013-11-15 -------------------- - -- 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) -- parents command: add "working directory parent is obsolete" message -- evolve command: allow updating to the successor if the parent is - obsolete -- gdown and gup commands: add next and previous alias, respectively -- make grab aliases compatible with Mercurial 2.8 -- Tested with 2.6, 2.7 and 2.8 - -3.1.0 -- 2013-02-11 -------------------- - -- amend: drop deprecated --change option for amend -- alias: add a grab alias to be used instead of graft -O -- touch: add a --duplicate option to *not* obsolete the old version -- touch: fix touching multiple revision at the same time -- evolve: add a --all option -- prune: various minor improvements -- prune: add option to prune a specific bookmark -- prune: add -u and -d option to control metadata - -3.0.0 -- 2013-02-02 -------------------- - -- compatibility with 2.5 - -2.2.0 -- -------------------- - -- make evolve smarter at picking next troubled to solved without --any - -2.1.0 -- 2012-12-03 -------------------- - -- qsync fixes -- have qfold ask for commit message - -2.0.0 -- 2012-10-26 -------------------- - -- compat with mercurial 2.4 - -1.1.0 -- 2012-10-26 -------------------- - -- fix troubles creation reporting from rebase -- rename latecomer to bumped -- renamed conflicting to divergent -- smarter divergent handling - -1.0.2 -- 2012-09-19 -------------------- - -- fix hg fold bug -- fix hg pull --rebase -- fix detection of conflict with external tools -- adapt to core movement (caches and --amend) - -1.0.1 -- 2012-08-31 -------------------- - -- documentation improvement -- fix a performance bug with hgweb - -1.0 -- 2012-08-29 -------------------- - -- Align with Mercurial version 2.3 (drop 2.2 support). -- stabilize handle killed parent -- stabilize handle late comer -- stabilize handle conflicting -- stabilize get a --continue switch -- merge and update ignore extinct changeset in most case. -- new "troubled()" revset -- summary now reports troubles changesets -- new touch command -- new fold command -- new basic olog alias - -- 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 - - -0.7 -- 2012-08-06 -------------------- - -- 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 -------------------- - -- obsolete: change warning output to match mercurial core on -- qsync: ignore nonexistent nodes -- make compat server both compatible with "dump" and "dump%i" version - -0.5 -- 2012-07-16 -------------------- - -- 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 -------------------- - -- [convert] properly exclude null successors from conversion -- Ignore buggy marker in newerversion - - -0.4.0 -- 2012-07-06 -------------------- - -- 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 -------------------- - -- obsolete: Add "latecomer" error detection (stabilize does not handle resolution yet) -- 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. -- revset: add, successors(), allsuccessors(), precursors(), allprecursors(), - latecomer() and hidden() -- evolve: add `prune` alias to `kill`. -- stabilize: clearly state that stabilize does not handle conflict -- template: add an {obsolete} keyword - -0.2.0 -- 2012-06-20 -------------------- - -- 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` diff -r 9360d7ad7270 -r cb8ae3cb0bbc README-topic --- a/README-topic Tue Oct 10 21:12:14 2017 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -Topic Extension -================ - -This packages also provides the ``topic`` experiment in an independent -extension. It implements a new experimental concept to provide lightweight -feature branches for the mutable parts of the history. The experiments is still -at an early stage and have significant usability and performance issues when -enabled. - -How to Install -============== - -The ``topic`` extension is included into the ``evolve` package, so the same instruction apply. - -Using Pip ---------- - -You can install the latest version using pip:: - - $ pip install --user hg-evolve - -Then just enable it in you hgrc:: - - $ hg config --edit # adds the two line below: - [extensions] - topic = - -From Source ------------ - -To install a local version from source:: - - $ hg clone https://www.mercurial-scm.org/repo/evolve/ - $ cd evolve - $ make install-home - -Enable ------- - -The topic extensions is included in the evolve package. See the install instruction for evolve. - -Then enable it in you configuration:: - - $ hg config --edit # adds the two line below: - [extensions] - topic = - -Documentation -------------- - -* See 'hg help -e topic' for a generic help. -* See 'hg help topics' and 'hg help stack' for help on specific commands. -* See the 'tests/test-topic-tutorial.t' file for a quick tutorial. diff -r 9360d7ad7270 -r cb8ae3cb0bbc hgext3rd/evolve/legacy.py --- a/hgext3rd/evolve/legacy.py Tue Oct 10 21:12:14 2017 +0200 +++ b/hgext3rd/evolve/legacy.py Tue Oct 10 22:40:41 2017 +0200 @@ -129,16 +129,16 @@ del oldmark['reason'] # unused until then oldobject = str(oldmark.pop('object')) oldsubjects = [str(s) for s in oldmark.pop('subjects', [])] - LOOKUP_ERRORS = (error.RepoLookupError, error.LookupError) + lookup_errors = (error.RepoLookupError, error.LookupError) if len(oldobject) != 40: try: oldobject = repo[oldobject].node() - except LOOKUP_ERRORS: + except lookup_errors: pass if any(len(s) != 40 for s in oldsubjects): try: oldsubjects = [repo[s].node() for s in oldsubjects] - except LOOKUP_ERRORS: + except lookup_errors: pass oldmark['date'] = '%i %i' % tuple(oldmark['date']) diff -r 9360d7ad7270 -r cb8ae3cb0bbc hgext3rd/evolve/metadata.py --- a/hgext3rd/evolve/metadata.py Tue Oct 10 21:12:14 2017 +0200 +++ b/hgext3rd/evolve/metadata.py Tue Oct 10 22:40:41 2017 +0200 @@ -5,7 +5,7 @@ # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. -__version__ = '6.7.1' +__version__ = '6.8.0.dev' testedwith = '3.8.4 3.9.2 4.0.2 4.1.3 4.2.3 4.3.2' minimumhgversion = '3.8' buglink = 'https://bz.mercurial-scm.org/' diff -r 9360d7ad7270 -r cb8ae3cb0bbc hgext3rd/evolve/obscache.py --- a/hgext3rd/evolve/obscache.py Tue Oct 10 21:12:14 2017 +0200 +++ b/hgext3rd/evolve/obscache.py Tue Oct 10 22:40:41 2017 +0200 @@ -111,9 +111,12 @@ return obsstore -if obsolete._readmarkers.__code__.co_argcount > 1: +if obsolete._fm0readmarkers.__code__.co_argcount > 1: # hg-4.3+ has the "offset" parameter, and _fm?readmarkers also have an # extra "stop" parameter + # Note that _readmarkers is wrapped by @util.nogc, so its co_argcount is + # misleadingly 0. So we check _fm0readmarkers instead, which increased its + # argument count in the same changeset (5d3ba439). _readmarkers = obsolete._readmarkers else: # XXX copied as is from Mercurial 4.2 and added the "offset" parameters diff -r 9360d7ad7270 -r cb8ae3cb0bbc hgext3rd/evolve/obshistory.py --- a/hgext3rd/evolve/obshistory.py Tue Oct 10 21:12:14 2017 +0200 +++ b/hgext3rd/evolve/obshistory.py Tue Oct 10 22:40:41 2017 +0200 @@ -132,7 +132,7 @@ succ = successors[0] if succ not in repo: - return False, "succ is unknown locally" + return False, "successor is unknown locally" # Check that both node and succ have the same parents nodep1, nodep2 = repo[node].p1(), repo[node].p2() @@ -498,7 +498,7 @@ fm.plain("\n") fm.plain(contentpatch) else: - patch = " (No patch available yet, %s)" % _patchavailable[1] + patch = " (No patch available, %s)" % _patchavailable[1] fm.plain("\n") # TODO: should be in json too fm.plain(patch) diff -r 9360d7ad7270 -r cb8ae3cb0bbc hgext3rd/evolve/templatekw.py --- a/hgext3rd/evolve/templatekw.py Tue Oct 10 21:12:14 2017 +0200 +++ b/hgext3rd/evolve/templatekw.py Tue Oct 10 22:40:41 2017 +0200 @@ -191,6 +191,13 @@ # Verb line.append(obsfateline['verb']) + # Successors + successors = obsfateline["successors"] + + if successors: + fmtsuccessors = map(lambda s: s[:12], successors) + line.append(" as %s" % ", ".join(fmtsuccessors)) + # Users if (verbose or normal) and 'users' in obsfateline: users = obsfateline['users'] @@ -205,13 +212,6 @@ if users: line.append(" by %s" % ", ".join(users)) - # Successors - successors = obsfateline["successors"] - - if successors: - fmtsuccessors = map(lambda s: s[:12], successors) - line.append(" as %s" % ", ".join(fmtsuccessors)) - # Date if verbose: min_date = obsfateline['min_date'] diff -r 9360d7ad7270 -r cb8ae3cb0bbc hgext3rd/topic/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hgext3rd/topic/README Tue Oct 10 22:40:41 2017 +0200 @@ -0,0 +1,53 @@ +Topic Extension +================ + +This packages also provides the ``topic`` experiment in an independent +extension. It implements a new experimental concept to provide lightweight +feature branches for the mutable parts of the history. The experiments is still +at an early stage and have significant usability and performance issues when +enabled. + +How to Install +============== + +The ``topic`` extension is included into the ``evolve` package, so the same instruction apply. + +Using Pip +--------- + +You can install the latest version using pip:: + + $ pip install --user hg-evolve + +Then just enable it in you hgrc:: + + $ hg config --edit # adds the two line below: + [extensions] + topic = + +From Source +----------- + +To install a local version from source:: + + $ hg clone https://www.mercurial-scm.org/repo/evolve/ + $ cd evolve + $ make install-home + +Enable +------ + +The topic extensions is included in the evolve package. See the install instruction for evolve. + +Then enable it in you configuration:: + + $ hg config --edit # adds the two line below: + [extensions] + topic = + +Documentation +------------- + +* See 'hg help -e topic' for a generic help. +* See 'hg help topics' and 'hg help stack' for help on specific commands. +* See the 'tests/test-topic-tutorial.t' file for a quick tutorial. diff -r 9360d7ad7270 -r cb8ae3cb0bbc hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Tue Oct 10 21:12:14 2017 +0200 +++ b/hgext3rd/topic/__init__.py Tue Oct 10 22:40:41 2017 +0200 @@ -48,6 +48,21 @@ Be aware that this extension is still an experiment, commands and other features are likely to be change/adjusted/dropped over time as we refine the concept. + +topic-mode +========== + +The topic extension can be configured to ensure the user do not forget to add +a topic when committing a new topic:: + + [experimental] + # behavior when commit is made without an active topic + topic-mode = ignore # do nothing special (default) + topic-mode = warning # print a warning + topic-mode = enforce # abort the commit (except for merge) + topic-mode = enforce-all # abort the commit (even for merge) + topic-mode = random # use a randomized generated topic (except for merge) + topic-mode = random-all # use a randomized generated topic (even for merge) """ from __future__ import absolute_import @@ -88,6 +103,7 @@ stack, topicmap, discovery, + randomname ) if util.safehasattr(registrar, 'command'): @@ -122,7 +138,8 @@ 'topic.active': 'green', } -__version__ = '0.3.1' +__version__ = '0.4.0.dev' + testedwith = '4.0.2 4.1.3 4.2.3 4.3.3' minimumhgversion = '4.0' buglink = 'https://bz.mercurial-scm.org/' @@ -702,25 +719,38 @@ p1 = c.p1().node() p2 = c.p2().node() if p1 in successors: - p1 = successors[p1] + p1 = successors[p1][0] if p2 in successors: - p2 = successors[p2] - mc = context.memctx( - repo, (p1, p2), c.description(), - c.files(), filectxfn, - user=c.user(), date=c.date(), extra=fixedextra) - newnode = repo.commitctx(mc) - successors[c.node()] = newnode + p2 = successors[p2][0] + mc = context.memctx(repo, + (p1, p2), + c.description(), + c.files(), + filectxfn, + user=c.user(), + date=c.date(), + extra=fixedextra) + + # phase handling + commitphase = c.phase() + overrides = {('phases', 'new-commit'): commitphase} + with repo.ui.configoverride(overrides, 'changetopic'): + newnode = repo.commitctx(mc) + + successors[c.node()] = (newnode,) ui.debug('new node id is %s\n' % node.hex(newnode)) - obsolete.createmarkers(repo, [(c, (repo[newnode],))]) rewrote += 1 + + # create obsmarkers and move bookmarks + scmutil.cleanupnodes(repo, successors, 'changetopics') + # move the working copy too wctx = repo[None] # in-progress merge is a bit too complex for now. if len(wctx.parents()) == 1: newid = successors.get(wctx.p1().node()) if newid is not None: - hg.update(repo, newid, quietempty=True) + hg.update(repo, newid[0], quietempty=True) return rewrote def _listtopics(ui, repo, opts): @@ -875,18 +905,66 @@ # i18n: column positioning for "hg summary" ui.write(_("topic: %s\n") % ui.label(t, 'topic.active')) +_validmode = [ + 'ignore', + 'warning', + 'enforce', + 'enforce-all', + 'random', + 'random-all', +] + +def _configtopicmode(ui): + """ Parse the config to get the topicmode + """ + topicmode = ui.config('experimental', 'topic-mode', default=None) + + # Fallback to read enforce-topic + if topicmode is None: + enforcetopic = ui.configbool('experimental', 'enforce-topic') + if enforcetopic: + topicmode = "enforce" + if topicmode not in _validmode: + topicmode = _validmode[0] + + return topicmode + def commitwrap(orig, ui, repo, *args, **opts): with repo.wlock(): - enforcetopic = ui.configbool('experimental', 'enforce-topic') + topicmode = _configtopicmode(ui) + ismergecommit = len(repo[None].parents()) == 2 + + notopic = not repo.currenttopic + mayabort = (topicmode == "enforce" and not ismergecommit) + maywarn = (topicmode == "warning" + or (topicmode == "enforce" and ismergecommit)) + + mayrandom = False + if topicmode == "random": + mayrandom = not ismergecommit + elif topicmode == "random-all": + mayrandom = True + + if topicmode == 'enforce-all': + ismergecommit = False + mayabort = True + maywarn = False + + hint = _("see 'hg help -e topic.topic-mode' for details") if opts.get('topic'): t = opts['topic'] with repo.vfs.open('topic', 'w') as f: f.write(t) - elif not repo.currenttopic and enforcetopic: + elif notopic and mayabort: msg = _("no active topic") - hint = _("set a current topic or use '--config " + - "experimental.enforce-topic=no' to commit without a topic") raise error.Abort(msg, hint=hint) + elif notopic and maywarn: + ui.warn(_("warning: new draft commit without topic\n")) + if not ui.quiet: + ui.warn(("(%s)") % hint) + elif notopic and mayrandom: + with repo.vfs.open('topic', 'w') as f: + f.write(randomname.randomtopicname(ui)) return orig(ui, repo, *args, **opts) def committextwrap(orig, repo, ctx, subs, extramsg): diff -r 9360d7ad7270 -r cb8ae3cb0bbc hgext3rd/topic/randomname.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hgext3rd/topic/randomname.py Tue Oct 10 22:40:41 2017 +0200 @@ -0,0 +1,1012 @@ +# randomname.py - topic extension +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2 or any later version. +"""random topic generator utils +""" + +import random + +animals = [ + 'aardvark', + 'albatross', + 'alligator', + 'alpaca', + 'ant', + 'anteater', + 'antelope', + 'ape', + 'armadillo', + 'ass', + 'baboon', + 'badger', + 'barracuda', + 'bat', + 'bear', + 'beaver', + 'bee', + 'beetle', + 'bison', + 'boar', + 'buffalo', + 'bushbaby', + 'bustard', + 'butterfly', + 'camel', + 'capuchin', + 'carabao', + 'caribou', + 'cat', + 'caterpillar', + 'cattle', + 'chameleon', + 'chamois', + 'cheetah', + 'chicken', + 'chimpanzee', + 'chinchilla', + 'chipmunk', + 'chough', + 'cicada', + 'clam', + 'cobra', + 'cockroach', + 'cod', + 'cormorant', + 'coyote', + 'crab', + 'crane', + 'cricket', + 'crocodile', + 'crow', + 'curlew', + 'deer', + 'dinosaur', + 'dog', + 'dogfish', + 'dolphin', + 'donkey', + 'dotterel', + 'dove', + 'dragon', + 'dragonfly', + 'duck', + 'dugong', + 'dunlin', + 'eagle', + 'echidna', + 'eel', + 'eland', + 'elephant', + 'elk', + 'emu', + 'falcon', + 'ferret', + 'finch', + 'fish', + 'flamingo', + 'fly', + 'fox', + 'frog', + 'gaur', + 'gazelle', + 'gecko', + 'gerbil', + 'giraffe', + 'gnat', + 'gnu', + 'goat', + 'goldfish', + 'goose', + 'gorilla', + 'goshawk', + 'grasshopper', + 'grouse', + 'guanaco', + 'guinea', + 'gull', + 'hamster', + 'hare', + 'hawk', + 'hedgehog', + 'heron', + 'herring', + 'hippopotamus', + 'hornet', + 'horse', + 'horsecrab', + 'hound', + 'hummingbird', + 'hyena', + 'hyrax', + 'ibex', + 'ibis', + 'iguana', + 'impala', + 'insect', + 'jackal', + 'jaguar', + 'jay', + 'jellyfish', + 'kangaroo', + 'koala', + 'kouprey', + 'kudu', + 'lapwing', + 'lark', + 'lemming', + 'lemur', + 'leopard', + 'lion', + 'lizard', + 'llama', + 'lobster', + 'locust', + 'loris', + 'louse', + 'lynx', + 'lyrebird', + 'magpie', + 'mallard', + 'mammoth', + 'manatee', + 'marten', + 'meerkat', + 'mink', + 'minnow', + 'mole', + 'mongoose', + 'monkey', + 'moose', + 'mosquito', + 'mouse', + 'mule', + 'muskrat', + 'narwhal', + 'newt', + 'nightingale', + 'numbat', + 'octopus', + 'okapi', + 'opossum', + 'oryx', + 'ostrich', + 'otter', + 'owl', + 'ox', + 'oyster', + 'panda', + 'panther', + 'parrot', + 'partridge', + 'peacock', + 'peafowl', + 'pelican', + 'penguin', + 'pheasant', + 'pig', + 'pigeon', + 'platypus', + 'pony', + 'porcupine', + 'porpoise', + 'prairie', + 'puffin', + 'pug', + 'quagga', + 'quail', + 'quelea', + 'rabbit', + 'raccoon', + 'ram', + 'rat', + 'raven', + 'reindeer', + 'rhea', + 'rhinoceros', + 'rook', + 'ruff', + 'salamander', + 'salmon', + 'sambar', + 'sandpiper', + 'sardine', + 'scorpion', + 'seahorse', + 'seal', + 'serval', + 'shark', + 'sheep', + 'shrew', + 'shrimp', + 'skink', + 'skunk', + 'snail', + 'snake', + 'spider', + 'squid', + 'squirrel', + 'starling', + 'stinkbug', + 'stork', + 'swan', + 'tapir', + 'tarsier', + 'termite', + 'tern', + 'tiger', + 'toad', + 'trout', + 'turkey', + 'turtle', + 'unicorn', + 'viper', + 'vulture', + 'wallaby', + 'walrus', + 'wasp', + 'weasel', + 'whale', + 'wolf', + 'wolverine', + 'wombat', + 'woodchuck', + 'woodcock', + 'woodpecker', + 'worm', + 'wren', + 'yak', + 'zebra', + 'zorilla' +] + +adjectives = [ + 'abiding', + 'abject', + 'ablaze', + 'able', + 'aboard', + 'abounding', + 'absorbed', + 'absorbing', + 'abstracted', + 'abundant', + 'acceptable', + 'accessible', + 'accurate', + 'acoustic', + 'adamant', + 'adaptable', + 'adhesive', + 'adjoining', + 'adorable', + 'adventurous', + 'affable', + 'affectionate', + 'agreeable', + 'alert', + 'alive', + 'alluring', + 'amazing', + 'ambiguous', + 'ambitious', + 'amiable', + 'amicable', + 'amused', + 'amusing', + 'ancient', + 'animated', + 'apricot', + 'aquatic', + 'arctic', + 'arenaceous', + 'aromatic', + 'aspiring', + 'assiduous', + 'assorted', + 'astonishing', + 'attractive', + 'auspicious', + 'automatic', + 'available', + 'average', + 'awake', + 'aware', + 'awesome', + 'axiomatic', + 'bashful', + 'bawdy', + 'beautiful', + 'beefy', + 'befitting', + 'beneficial', + 'benevolent', + 'bent', + 'best', + 'better', + 'bewildered', + 'bewitching', + 'big', + 'billowy', + 'bizarre', + 'black', + 'blithe', + 'blue', + 'blushing', + 'bouncy', + 'boundless', + 'brainy', + 'brash', + 'brave', + 'brawny', + 'brazen', + 'breezy', + 'brief', + 'bright', + 'brilliant', + 'broad', + 'brown', + 'bucolic', + 'bulky', + 'bumpy', + 'burgundy', + 'burly', + 'bustling', + 'busy', + 'calm', + 'capable', + 'capricious', + 'captivating', + 'carefree', + 'careful', + 'caring', + 'carrot', + 'ceaseless', + 'cerise', + 'certain', + 'challenging', + 'changeable', + 'charming', + 'cheerful', + 'chief', + 'chilly', + 'chipper', + 'classy', + 'clean', + 'clear', + 'clever', + 'cloudy', + 'coherent', + 'colorful', + 'colossal', + 'comfortable', + 'common', + 'communicative', + 'compassionate', + 'complete', + 'complex', + 'compulsive', + 'confused', + 'conscientious', + 'conscious', + 'conservative', + 'considerate', + 'convivial', + 'cooing', + 'cool', + 'cooperative', + 'coordinated', + 'courageous', + 'courteous', + 'crazy', + 'creative', + 'crispy', + 'crooked', + 'crowded', + 'cuddly', + 'cultured', + 'cunning', + 'curious', + 'curly', + 'curved', + 'curvy', + 'cut', + 'cute', + 'daily', + 'damp', + 'dapper', + 'dashing', + 'dazzling', + 'dear', + 'debonair', + 'decisive', + 'decorous', + 'deep', + 'defiant', + 'delicate', + 'delicious', + 'delighted', + 'delightful', + 'delirious', + 'descriptive', + 'detached', + 'detailed', + 'determined', + 'different', + 'diligent', + 'diminutive', + 'diplomatic', + 'discreet', + 'distinct', + 'distinctive', + 'dramatic', + 'dry', + 'dynamic', + 'dynamite', + 'eager', + 'early', + 'earthy', + 'easy', + 'easygoing', + 'eatable', + 'economic', + 'ecstatic', + 'educated', + 'efficacious', + 'efficient', + 'effortless', + 'eight', + 'elastic', + 'elated', + 'electric', + 'elegant', + 'elfin', + 'elite', + 'eminent', + 'emotional', + 'enchanted', + 'enchanting', + 'encouraging', + 'endless', + 'energetic', + 'enormous', + 'entertaining', + 'enthusiastic', + 'envious', + 'epicurean', + 'equable', + 'equal', + 'eternal', + 'ethereal', + 'evanescent', + 'even', + 'excellent', + 'excited', + 'exciting', + 'exclusive', + 'exotic', + 'expensive', + 'exquisite', + 'extroverted', + 'exuberant', + 'exultant', + 'fabulous', + 'fair', + 'faithful', + 'familiar', + 'famous', + 'fancy', + 'fantastic', + 'far', + 'fascinated', + 'fast', + 'fearless', + 'female', + 'fertile', + 'festive', + 'few', + 'fine', + 'first', + 'five', + 'fixed', + 'flamboyant', + 'flashy', + 'flat', + 'flawless', + 'flirtatious', + 'florid', + 'flowery', + 'fluffy', + 'fluttering', + 'foamy', + 'foolish', + 'foregoing', + 'fortunate', + 'four', + 'frank', + 'free', + 'frequent', + 'fresh', + 'friendly', + 'full', + 'functional', + 'funny', + 'furry', + 'future', + 'futuristic', + 'fuzzy', + 'gabby', + 'gainful', + 'garrulous', + 'general', + 'generous', + 'gentle', + 'giant', + 'giddy', + 'gifted', + 'gigantic', + 'gilded', + 'glamorous', + 'gleaming', + 'glorious', + 'glossy', + 'glowing', + 'godly', + 'good', + 'goofy', + 'gorgeous', + 'graceful', + 'grandiose', + 'grateful', + 'gratis', + 'gray', + 'great', + 'green', + 'gregarious', + 'grey', + 'groovy', + 'guiltless', + 'gusty', + 'guttural', + 'habitual', + 'half', + 'hallowed', + 'halting', + 'handsome', + 'happy', + 'hard', + 'hardworking', + 'harmonious', + 'heady', + 'healthy', + 'heavenly', + 'helpful', + 'hilarious', + 'historical', + 'holistic', + 'hollow', + 'honest', + 'honorable', + 'hopeful', + 'hospitable', + 'hot', + 'huge', + 'humorous', + 'hungry', + 'hushed', + 'hypnotic', + 'illustrious', + 'imaginary', + 'imaginative', + 'immense', + 'imminent', + 'impartial', + 'important', + 'imported', + 'impossible', + 'incandescent', + 'inconclusive', + 'incredible', + 'independent', + 'industrious', + 'inexpensive', + 'innate', + 'innocent', + 'inquisitive', + 'instinctive', + 'intellectual', + 'intelligent', + 'intense', + 'interesting', + 'internal', + 'intuitive', + 'inventive', + 'invincible', + 'jazzy', + 'jolly', + 'joyful', + 'joyous', + 'judicious', + 'juicy', + 'jumpy', + 'keen', + 'kind', + 'kindhearted', + 'kindly', + 'knotty', + 'knowing', + 'knowledgeable', + 'known', + 'laconic', + 'large', + 'lavish', + 'lean', + 'learned', + 'left', + 'legal', + 'level', + 'light', + 'likeable', + 'literate', + 'little', + 'lively', + 'living', + 'long', + 'longing', + 'loud', + 'lovely', + 'loving', + 'loyal', + 'lucky', + 'luminous', + 'lush', + 'luxuriant', + 'luxurious', + 'lyrical', + 'magenta', + 'magical', + 'magnificent', + 'majestic', + 'male', + 'mammoth', + 'many', + 'marvelous', + 'massive', + 'material', + 'mature', + 'meandering', + 'meaty', + 'medical', + 'mellow', + 'melodic', + 'melted', + 'merciful', + 'mighty', + 'miniature', + 'miniscule', + 'minor', + 'minute', + 'misty', + 'modern', + 'modest', + 'momentous', + 'motionless', + 'mountainous', + 'mute', + 'mysterious', + 'narrow', + 'natural', + 'near', + 'neat', + 'nebulous', + 'necessary', + 'neighborly', + 'new', + 'next', + 'nice', + 'nifty', + 'nimble', + 'nine', + 'nippy', + 'noiseless', + 'noisy', + 'nonchalant', + 'normal', + 'numberless', + 'numerous', + 'nutritious', + 'obedient', + 'observant', + 'obtainable', + 'oceanic', + 'omniscient', + 'one', + 'open', + 'opposite', + 'optimal', + 'optimistic', + 'opulent', + 'orange', + 'ordinary', + 'organic', + 'outgoing', + 'outrageous', + 'outstanding', + 'oval', + 'overjoyed', + 'overt', + 'palatial', + 'panoramic', + 'parallel', + 'passionate', + 'past', + 'pastoral', + 'patient', + 'peaceful', + 'perfect', + 'periodic', + 'permissible', + 'perpetual', + 'persistent', + 'petite', + 'philosophical', + 'physical', + 'picturesque', + 'pink', + 'pioneering', + 'piquant', + 'plausible', + 'pleasant', + 'plucky', + 'poised', + 'polite', + 'possible', + 'powerful', + 'practical', + 'precious', + 'premium', + 'present', + 'pretty', + 'previous', + 'private', + 'probable', + 'productive', + 'profound', + 'profuse', + 'protective', + 'proud', + 'psychedelic', + 'public', + 'pumped', + 'purple', + 'purring', + 'puzzled', + 'puzzling', + 'quaint', + 'quick', + 'quicker', + 'quickest', + 'quiet', + 'quirky', + 'quixotic', + 'quizzical', + 'rainy', + 'rapid', + 'rare', + 'rational', + 'ready', + 'real', + 'rebel', + 'receptive', + 'red', + 'reflective', + 'regular', + 'relaxed', + 'reliable', + 'relieved', + 'remarkable', + 'reminiscent', + 'reserved', + 'resolute', + 'resonant', + 'resourceful', + 'responsible', + 'rich', + 'ridiculous', + 'right', + 'rightful', + 'ripe', + 'ritzy', + 'roasted', + 'robust', + 'romantic', + 'roomy', + 'round', + 'royal', + 'ruddy', + 'rural', + 'rustic', + 'sable', + 'safe', + 'salty', + 'same', + 'satisfying', + 'savory', + 'scientific', + 'scintillating', + 'scrumptious', + 'second', + 'secret', + 'secretive', + 'seemly', + 'selective', + 'sensible', + 'separate', + 'shaggy', + 'shaky', + 'shining', + 'shiny', + 'short', + 'shy', + 'silent', + 'silky', + 'silly', + 'simple', + 'simplistic', + 'sincere', + 'six', + 'sizzling', + 'skillful', + 'sleepy', + 'slick', + 'slim', + 'smart', + 'smiling', + 'smooth', + 'soaring', + 'sociable', + 'soft', + 'solid', + 'sophisticated', + 'sparkling', + 'special', + 'spectacular', + 'speedy', + 'spicy', + 'spiffy', + 'spiritual', + 'splendid', + 'spooky', + 'spotless', + 'spotted', + 'square', + 'standing', + 'statuesque', + 'steadfast', + 'steady', + 'steep', + 'stimulating', + 'straight', + 'straightforward', + 'striking', + 'striped', + 'strong', + 'stunning', + 'stupendous', + 'sturdy', + 'subsequent', + 'substantial', + 'subtle', + 'successful', + 'succinct', + 'sudden', + 'super', + 'superb', + 'supreme', + 'swanky', + 'sweet', + 'swift', + 'sympathetic', + 'synonymous', + 'talented', + 'tall', + 'tame', + 'tan', + 'tangible', + 'tangy', + 'tasteful', + 'tasty', + 'telling', + 'temporary', + 'tempting', + 'ten', + 'tender', + 'terrific', + 'tested', + 'thankful', + 'therapeutic', + 'thin', + 'thinkable', + 'third', + 'thoughtful', + 'three', + 'thrifty', + 'tidy', + 'tiny', + 'toothsome', + 'towering', + 'tranquil', + 'tremendous', + 'tricky', + 'true', + 'truthful', + 'two', + 'typical', + 'ubiquitous', + 'ultra', + 'unassuming', + 'unbiased', + 'uncovered', + 'understanding', + 'understood', + 'unequaled', + 'unique', + 'unusual', + 'unwritten', + 'upbeat', + 'useful', + 'utopian', + 'utter', + 'uttermost', + 'valuable', + 'various', + 'vast', + 'verdant', + 'vermilion', + 'versatile', + 'versed', + 'victorious', + 'vigorous', + 'violet', + 'vivacious', + 'voiceless', + 'voluptuous', + 'wacky', + 'waiting', + 'wakeful', + 'wandering', + 'warm', + 'warmhearted', + 'wealthy', + 'whimsical', + 'whispering', + 'white', + 'whole', + 'wholesale', + 'whopping', + 'wide', + 'wiggly', + 'wild', + 'willing', + 'windy', + 'winsome', + 'wiry', + 'wise', + 'wistful', + 'witty', + 'womanly', + 'wonderful', + 'workable', + 'young', + 'youthful', + 'yummy', + 'zany', + 'zealous', + 'zesty', + 'zippy' +] + +def randomtopicname(ui): + if ui.configint("devel", "randomseed"): + random.seed(ui.configint("devel", "randomseed")) + return random.choice(adjectives) + "-" + random.choice(animals) diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-amend.t --- a/tests/test-amend.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-amend.t Tue Oct 10 22:40:41 2017 +0200 @@ -21,13 +21,12 @@ $ hg amend -d '0 0' $ hg debugobsolete 07f4944404050f47db2e5c5071e0e84e7a27bba9 6a022cbb61d5ba0f03f98ff2d36319dfea1034ae 0 (*) {'ef1': '*', 'user': 'test'} (glob) - b2e32ffb533cbe1d5759638c0cd4e8abc43b2738 0 {07f4944404050f47db2e5c5071e0e84e7a27bba9} (*) {'ef1': '*', 'user': 'test'} (glob) $ hg branch foo $ hg branches - foo 2:6a022cbb61d5 + foo 1:6a022cbb61d5 $ glog - @ 2@foo(draft) adda + @ 1@foo(draft) adda Test no-op @@ -35,7 +34,7 @@ nothing changed [1] $ glog - @ 2@foo(draft) adda + @ 1@foo(draft) adda Test forcing the message to the same value, no intermediate revision. @@ -44,7 +43,7 @@ nothing changed [1] $ glog - @ 2@foo(draft) adda + @ 1@foo(draft) adda Test collapsing into an existing revision, no intermediate revision. @@ -66,20 +65,19 @@ $ hg ci -m reseta $ hg debugobsolete 07f4944404050f47db2e5c5071e0e84e7a27bba9 6a022cbb61d5ba0f03f98ff2d36319dfea1034ae 0 (*) {'ef1': '*', 'user': 'test'} (glob) - b2e32ffb533cbe1d5759638c0cd4e8abc43b2738 0 {07f4944404050f47db2e5c5071e0e84e7a27bba9} (*) {'ef1': '*', 'user': 'test'} (glob) $ hg phase 2 2: draft $ glog - @ 4@foo(draft) reseta + @ 3@foo(draft) reseta | - o 3@foo(draft) changea + o 2@foo(draft) changea | - o 2@foo(draft) adda + o 1@foo(draft) adda Specify precise commit date with -d $ hg amend -d '2001-02-03 04:05:06 +0700' $ hg parents --template '{rev} {date|date}\n' - 5 Sat Feb 03 04:05:06 2001 +0700 + 4 Sat Feb 03 04:05:06 2001 +0700 Specify "now" as commit date with -D $ before=`date +%s` @@ -88,13 +86,13 @@ $ after=`date +%s` $ (echo $before ; echo $commit; echo $after) | sort -k1 -n -s \d+ (re) - \d+ 0 rev6 (re) + \d+ 0 rev5 (re) \d+ (re) Specify current user as committer with -U $ HGUSER=newbie hg amend -U $ hg parents --template '{rev} {author}\n' - 7 newbie + 6 newbie Check that --logfile works $ echo "logfile message" > logfile.txt @@ -109,7 +107,7 @@ (use 'hg config --edit' to set your username) [255] $ hg sum - parent: 8:* tip (glob) + parent: 7:* tip (glob) logfile message branch: foo commit: 1 unknown (clean) diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-discovery-obshashrange.t --- a/tests/test-discovery-obshashrange.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-discovery-obshashrange.t Tue Oct 10 22:40:41 2017 +0200 @@ -31,6 +31,7 @@ $ cd server $ hg debugbuilddag '.+7' $ hg blackbox + * @0000000000000000000000000000000000000000 (*)> init server exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> serve --stdio (glob) * @0000000000000000000000000000000000000000 (*)> -R server serve --stdio exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> debugbuilddag .+7 (glob) @@ -151,6 +152,7 @@ cccccccccccccccccccccccccccccccccccccccc bebd167eb94d257ace0e814aeb98e6972ed2970d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} $ rm ../server/.hg/blackbox.log $ hg blackbox + * @0000000000000000000000000000000000000000 (*)> clone 'ssh://user@dummy/server' client exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> pull --rev 4 (glob) * @0000000000000000000000000000000000000000 (*)> updated stablerange cache in *.???? seconds (glob) * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obshashrange in *.???? seconds (5r, 3o) (glob) @@ -180,8 +182,8 @@ running python "*/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) sending hello command sending between command - remote: 516 - remote: capabilities: _evoext_getbundle_obscommon _evoext_obshash_0 _evoext_obshash_1 _evoext_obshashrange_v0 _evoext_pullobsmarkers_0 _evoext_pushobsmarkers_0 batch branchmap bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Aobsmarkers%3DV0%2CV1%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps changegroupsubset getbundle known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash + remote: 533 + remote: capabilities: _evoext_getbundle_obscommon _evoext_obshash_0 _evoext_obshash_1 _evoext_obshashrange_v0 _evoext_pullobsmarkers_0 _evoext_pushobsmarkers_0 batch branchmap bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Aobsmarkers%3DV0%2CV1%0Aphases%3Dheads%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps changegroupsubset getbundle known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash remote: 1 preparing listkeys for "phases" sending listkeys command @@ -215,7 +217,7 @@ 45f8b879de922f6a6e620ba04205730335b6fc7e sending unbundle command bundle2-output-bundle: "HG20", 4 parts total - bundle2-output-part: "replycaps" 172 bytes payload + bundle2-output-part: "replycaps" 185 bytes payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-output-part: "obsmarkers" streamed payload diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-divergent.t --- a/tests/test-divergent.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-divergent.t Tue Oct 10 22:40:41 2017 +0200 @@ -45,7 +45,7 @@ 1 changesets pruned $ hg prune -s "desc(bdivergent2)" "desc(_b)" --hidden 1 changesets pruned - 2 new divergent changesets + 2 new content-divergent changesets $ hg log -G @ 3:e708fd28d5cf@default(draft) add bdivergent2 [content-divergent] | @@ -62,7 +62,7 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory is now at c26f1d3baed2 $ hg log -G - @ 5:c26f1d3baed2@default(draft) add bdivergent1 [] + @ 4:c26f1d3baed2@default(draft) add bdivergent1 [] | o 0:135f39f4bd78@default(draft) add _a [] @@ -88,24 +88,25 @@ 1 changesets pruned $ hg prune -s "desc(cdivergent2)" "desc(_c)" --hidden 1 changesets pruned - 2 new divergent changesets + 2 new content-divergent changesets $ hg log -G - @ 8:0a768ef678d9@default(draft) cdivergent2 [content-divergent] + @ 7:0a768ef678d9@default(draft) cdivergent2 [content-divergent] | - | o 7:26c7705fee96@default(draft) add cdivergent1 [content-divergent] + | o 6:26c7705fee96@default(draft) add cdivergent1 [content-divergent] |/ - | o 5:c26f1d3baed2@default(draft) add bdivergent1 [] + | o 4:c26f1d3baed2@default(draft) add bdivergent1 [] |/ o 0:135f39f4bd78@default(draft) add _a [] $ hg evolve --all --any --contentdivergent - merge:[7] add cdivergent1 - with: [8] cdivergent2 - base: [6] add _c + merge:[6] add cdivergent1 + with: [7] cdivergent2 + base: [5] add _c updating to "local" conflict 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - working directory is now at 6602ff5a79dc + nothing changed + working directory is now at 26c7705fee96 Test None docstring issue of evolve divergent, which caused hg crush @@ -124,7 +125,7 @@ 1 changesets pruned $ hg prune -s "desc(bdivergent2)" "desc(_b)" --hidden 1 changesets pruned - 2 new divergent changesets + 2 new content-divergent changesets $ hg log -G @ 3:e708fd28d5cf@default(draft) add bdivergent2 [content-divergent] | diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-drop.t --- a/tests/test-drop.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-drop.t Tue Oct 10 22:40:41 2017 +0200 @@ -178,7 +178,7 @@ $ hg commit --amend $ summary ============ graph ============== - @ changeset: 4:a2c06c884bfe + @ changeset: 3:a2c06c884bfe | tag: tip | parent: 1:19509a42b0d0 | user: test @@ -196,19 +196,13 @@ summary: add base ============ hidden ============= - @ changeset: 4:a2c06c884bfe + @ changeset: 3:a2c06c884bfe | tag: tip | parent: 1:19509a42b0d0 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: add child | - | x changeset: 3:87ea30a976fd - | | user: test - | | date: Thu Jan 01 00:00:00 1970 +0000 - | | obsolete: pruned - | | summary: temporary amend commit for 34b6c051bf1f - | | | x changeset: 2:34b6c051bf1f |/ user: test | date: Thu Jan 01 00:00:00 1970 +0000 @@ -227,7 +221,6 @@ ============ obsmark ============ 34b6c051bf1f78db6aef400776de5cb964470207 a2c06c884bfe53d3840026248bd8a7eafa152df8 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 87ea30a976fdf235bf096f04899cb02a903873e2 0 {34b6c051bf1f78db6aef400776de5cb964470207} (*) {'ef1': '*', 'user': 'test'} (glob) $ hg drop . 0 files updated, 0 files merged, 1 files removed, 0 files unresolved working directory now at 19509a42b0d0 diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-bumped.t --- a/tests/test-evolve-bumped.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-bumped.t Tue Oct 10 22:40:41 2017 +0200 @@ -67,7 +67,7 @@ pulling from ../public searching for changes no changes found - 1 new bumped changesets + 1 new phase-divergent changesets $ hg evolve -a -A --phasedivergent recreate:[2] tweak a @@ -105,7 +105,7 @@ $ hg commit -m "merge" $ hg commit --amend -m "New message" $ hg phase --public 551127da2a8a --hidden - 1 new bumped changesets + 1 new phase-divergent changesets $ hg log -G @ 7:b28e84916d8c@default(draft) New message |\ diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-cycles.t --- a/tests/test-evolve-cycles.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-cycles.t Tue Oct 10 22:40:41 2017 +0200 @@ -50,7 +50,7 @@ Create a cycle $ hg prune -s "desc(B)" "desc(A)" 1 changesets pruned - 2 new unstable changesets + 2 new orphan changesets $ hg prune -s "desc(C)" "desc(B)" 1 changesets pruned $ hg prune -s "desc(A)" "desc(C)" @@ -89,48 +89,48 @@ $ hg obslog "desc(A)" --hidden @ 2a34000d3544 (1) A - | rewritten(description, parent, content) as c473644ee0e9 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | x a8df460dbbfe (3) C - | rewritten(description, parent, content) as 2a34000d3544 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as 2a34000d3544 by test (*) (glob) | x c473644ee0e9 (2) B - | rewritten(description, parent, content) as a8df460dbbfe by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | $ hg obslog "desc(B)" --hidden @ 2a34000d3544 (1) A - | rewritten(description, parent, content) as c473644ee0e9 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | x a8df460dbbfe (3) C - | rewritten(description, parent, content) as 2a34000d3544 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as 2a34000d3544 by test (*) (glob) | x c473644ee0e9 (2) B - | rewritten(description, parent, content) as a8df460dbbfe by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | $ hg obslog "desc(C)" --hidden @ 2a34000d3544 (1) A - | rewritten(description, parent, content) as c473644ee0e9 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | x a8df460dbbfe (3) C - | rewritten(description, parent, content) as 2a34000d3544 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as 2a34000d3544 by test (*) (glob) | x c473644ee0e9 (2) B - | rewritten(description, parent, content) as a8df460dbbfe by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | Check that all option don't crash on a cycle either $ hg obslog "desc(C)" --hidden --all @ 2a34000d3544 (1) A - | rewritten(description, parent, content) as c473644ee0e9 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | x a8df460dbbfe (3) C - | rewritten(description, parent, content) as 2a34000d3544 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as 2a34000d3544 by test (*) (glob) | x c473644ee0e9 (2) B - | rewritten(description, parent, content) as a8df460dbbfe by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | Test with multiple cyles @@ -188,7 +188,7 @@ Create a first cycle $ hg prune -s "desc(B)" "desc(A)" 1 changesets pruned - 5 new unstable changesets + 5 new orphan changesets $ hg prune -s "desc(C)" "desc(B)" 1 changesets pruned $ hg prune --split -s "desc(A)" -s "desc(D)" "desc(C)" @@ -252,42 +252,42 @@ $ hg obslog "desc(D)" --hidden x 0da815c333f6 (5) E - | rewritten(description, parent, content) as d9f908fde1a1 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as d9f908fde1a1 by test (*) (glob) | @ 868d2e0eb19c (4) D - |\ rewritten(description, parent, content) as 0da815c333f6 by test (Thu Jan 01 00:00:00 1970 +0000) + |\ rewritten(description, parent, content) as 0da815c333f6 by test (*) (glob) | | | x d9f908fde1a1 (6) F - | | rewritten(description, parent, content) as 868d2e0eb19c by test (Thu Jan 01 00:00:00 1970 +0000) + | | rewritten(description, parent, content) as 868d2e0eb19c by test (*) (glob) | | +---x 2a34000d3544 (1) A - | | rewritten(description, parent, content) as c473644ee0e9 by test (Thu Jan 01 00:00:00 1970 +0000) + | | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | | x | a8df460dbbfe (3) C - | | rewritten(description, parent, content) as 2a34000d3544, 868d2e0eb19c by test (Thu Jan 01 00:00:00 1970 +0000) + | | rewritten(description, parent, content) as 2a34000d3544, 868d2e0eb19c by test (*) (glob) | | x | c473644ee0e9 (2) B - | | rewritten(description, parent, content) as a8df460dbbfe by test (Thu Jan 01 00:00:00 1970 +0000) + | | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | | Check that all option don't crash either on a cycle $ hg obslog --all --hidden "desc(F)" x 0da815c333f6 (5) E - | rewritten(description, parent, content) as d9f908fde1a1 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, parent, content) as d9f908fde1a1 by test (*) (glob) | @ 868d2e0eb19c (4) D - |\ rewritten(description, parent, content) as 0da815c333f6 by test (Thu Jan 01 00:00:00 1970 +0000) + |\ rewritten(description, parent, content) as 0da815c333f6 by test (*) (glob) | | | x d9f908fde1a1 (6) F - | | rewritten(description, parent, content) as 868d2e0eb19c by test (Thu Jan 01 00:00:00 1970 +0000) + | | rewritten(description, parent, content) as 868d2e0eb19c by test (*) (glob) | | +---x 2a34000d3544 (1) A - | | rewritten(description, parent, content) as c473644ee0e9 by test (Thu Jan 01 00:00:00 1970 +0000) + | | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | | x | a8df460dbbfe (3) C - | | rewritten(description, parent, content) as 2a34000d3544, 868d2e0eb19c by test (Thu Jan 01 00:00:00 1970 +0000) + | | rewritten(description, parent, content) as 2a34000d3544, 868d2e0eb19c by test (*) (glob) | | x | c473644ee0e9 (2) B - | | rewritten(description, parent, content) as a8df460dbbfe by test (Thu Jan 01 00:00:00 1970 +0000) + | | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | | Check the json output is valid in this case @@ -301,7 +301,7 @@ 0 ], "effect": [ - *, (glob) + "description", "parent", "content" ], @@ -413,7 +413,7 @@ "markers": [ { "date": [ - 0.0, + *, (glob) 0 ], "effect": [ diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-effectflags.t --- a/tests/test-evolve-effectflags.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-effectflags.t Tue Oct 10 22:40:41 2017 +0200 @@ -29,12 +29,12 @@ check result $ hg debugobsolete --rev . - 471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (*) {'ef1': '1', 'user': 'test'} (glob) + 471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} $ hg obslog . @ fdf9bde5129a (2) A1 | x 471f378eab4c (1) A0 - rewritten(description) as fdf9bde5129a by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as fdf9bde5129a by test (*) (glob) $ hg log --hidden -r "desc(A0)" changeset: 1:471f378eab4c @@ -53,12 +53,12 @@ check result $ hg debugobsolete --rev . - ef4a313b1e0ade55718395d80e6b88c5ccd875eb 5485c92d34330dac9d7a63dc07e1e3373835b964 0 (*) {'ef1': '16', 'user': 'test'} (glob) + ef4a313b1e0ade55718395d80e6b88c5ccd875eb 5485c92d34330dac9d7a63dc07e1e3373835b964 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '16', 'operation': 'amend', 'user': 'test'} $ hg obslog . @ 5485c92d3433 (4) B0 | x ef4a313b1e0a (3) B0 - rewritten(user) as 5485c92d3433 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(user) as 5485c92d3433 by test (*) (glob) $ hg log --hidden -r "ef4a313b1e0a" changeset: 3:ef4a313b1e0a @@ -77,12 +77,12 @@ check result $ hg debugobsolete --rev . - 2ef0680ff45038ac28c9f1ff3644341f54487280 4dd84345082e9e5291c2e6b3f335bbf8bf389378 0 (*) {'ef1': '32', 'user': 'test'} (glob) + 2ef0680ff45038ac28c9f1ff3644341f54487280 4dd84345082e9e5291c2e6b3f335bbf8bf389378 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '32', 'operation': 'amend', 'user': 'test'} $ hg obslog . @ 4dd84345082e (6) B1 | x 2ef0680ff450 (5) B1 - rewritten(date) as 4dd84345082e by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(date) as 4dd84345082e by test (*) (glob) $ hg log --hidden -r "2ef0680ff450" changeset: 5:2ef0680ff450 @@ -104,13 +104,12 @@ check result $ hg debugobsolete --rev . - 4d1430a201c1ffbd8465dec75edd4a691a2d97ec 0 {bd3db8264ceebf1966319f5df3be7aac6acd1a8e} (*) {'ef1': '0', 'user': 'test'} (glob) - bd3db8264ceebf1966319f5df3be7aac6acd1a8e 14a01456e0574f0e0a0b15b2345486a6364a8d79 0 (*) {'ef1': '64', 'user': 'test'} (glob) + bd3db8264ceebf1966319f5df3be7aac6acd1a8e 14a01456e0574f0e0a0b15b2345486a6364a8d79 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '64', 'operation': 'amend', 'user': 'test'} $ hg obslog . - @ 14a01456e057 (9) B2 + @ 14a01456e057 (8) B2 | x bd3db8264cee (7) B2 - rewritten(branch) as 14a01456e057 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(branch) as 14a01456e057 by test (*) (glob) $ hg log --hidden -r "bd3db8264cee" changeset: 7:bd3db8264cee @@ -129,20 +128,20 @@ $ mkcommit C0 $ mkcommit D0 $ hg rebase -r . -d 'desc(B0)' - rebasing 11:c85eff83a034 "D0" (tip) + rebasing 10:c85eff83a034 "D0" (tip) check result $ hg debugobsolete --rev . - c85eff83a0340efd9da52b806a94c350222f3371 da86aa2f19a30d6686b15cae15c7b6c908ec9699 0 (*) {'ef1': '4', 'user': 'test'} (glob) + c85eff83a0340efd9da52b806a94c350222f3371 da86aa2f19a30d6686b15cae15c7b6c908ec9699 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} $ hg obslog . - @ da86aa2f19a3 (12) D0 + @ da86aa2f19a3 (11) D0 | - x c85eff83a034 (11) D0 - rewritten(parent) as da86aa2f19a3 by test (Thu Jan 01 00:00:00 1970 +0000) + x c85eff83a034 (10) D0 + rewritten(parent) as da86aa2f19a3 by test (*) (glob) $ hg log --hidden -r "c85eff83a034" - changeset: 11:c85eff83a034 + changeset: 10:c85eff83a034 user: test date: Thu Jan 01 00:00:00 1970 +0000 obsolete: rebased as da86aa2f19a3 @@ -159,16 +158,15 @@ check result $ hg debugobsolete --rev . - d6f4d8b8d3c8cde990f13915bced7f92ce1cc54f 0 {ebfe0333e0d96f68a917afd97c0a0af87f1c3b5f} (*) {'ef1': '0', 'user': 'test'} (glob) - ebfe0333e0d96f68a917afd97c0a0af87f1c3b5f 75781fdbdbf58a987516b00c980bccda1e9ae588 0 (*) {'ef1': '8', 'user': 'test'} (glob) + ebfe0333e0d96f68a917afd97c0a0af87f1c3b5f 75781fdbdbf58a987516b00c980bccda1e9ae588 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} $ hg obslog . - @ 75781fdbdbf5 (15) E0 + @ 75781fdbdbf5 (13) E0 | - x ebfe0333e0d9 (13) E0 - rewritten(content) as 75781fdbdbf5 by test (Thu Jan 01 00:00:00 1970 +0000) + x ebfe0333e0d9 (12) E0 + rewritten(content) as 75781fdbdbf5 by test (*) (glob) $ hg log --hidden -r "ebfe0333e0d9" - changeset: 13:ebfe0333e0d9 + changeset: 12:ebfe0333e0d9 user: test date: Thu Jan 01 00:00:00 1970 +0000 obsolete: amended as 75781fdbdbf5 @@ -186,16 +184,15 @@ check result $ hg debugobsolete --rev . - 3b12912003b4e7aa6df6cded86255006c3c29d27 0 {fad47e5bd78e6aa4db1b5a0a1751bc12563655ff} (*) {'ef1': '0', 'user': 'test'} (glob) - fad47e5bd78e6aa4db1b5a0a1751bc12563655ff a94e0fd5f1c81d969381a76eb0d37ce499a44fae 0 (*) {'ef1': '113', 'user': 'test'} (glob) + fad47e5bd78e6aa4db1b5a0a1751bc12563655ff a94e0fd5f1c81d969381a76eb0d37ce499a44fae 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '113', 'operation': 'amend', 'user': 'test'} $ hg obslog . - @ a94e0fd5f1c8 (18) F1 + @ a94e0fd5f1c8 (15) F1 | - x fad47e5bd78e (16) F0 - rewritten(description, user, date, branch) as a94e0fd5f1c8 by test (Thu Jan 01 00:00:00 1970 +0000) + x fad47e5bd78e (14) F0 + rewritten(description, user, date, branch) as a94e0fd5f1c8 by test (*) (glob) $ hg log --hidden -r "fad47e5bd78e" - changeset: 16:fad47e5bd78e + changeset: 14:fad47e5bd78e user: test date: Thu Jan 01 00:00:00 1970 +0000 obsolete: rewritten as a94e0fd5f1c8 @@ -241,16 +238,16 @@ $ hg commit -m "H2" created new head $ hg rebase -s "desc(H1)" -d "desc(H2)" -t :merge3 - rebasing 20:b57fed8d8322 "H1" + rebasing 17:b57fed8d8322 "H1" merging H0 $ hg obslog tip - o e509e2eb3df5 (22) H1 + o e509e2eb3df5 (19) H1 | - x b57fed8d8322 (20) H1 - rewritten(parent) as e509e2eb3df5 by test (Thu Jan 01 00:00:00 1970 +0000) + x b57fed8d8322 (17) H1 + rewritten(parent) as e509e2eb3df5 by test (*) (glob) $ hg log --hidden -r "b57fed8d8322" - changeset: 20:b57fed8d8322 + changeset: 17:b57fed8d8322 branch: my-other-branch user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -269,13 +266,13 @@ check result $ hg obslog . - @ 12c6238b5e37 (26) I0 + @ 12c6238b5e37 (22) I0 | - x 2f599e54c1c6 (24) I0 - rewritten(meta) as 12c6238b5e37 by test (Thu Jan 01 00:00:00 1970 +0000) + x 2f599e54c1c6 (21) I0 + rewritten(meta) as 12c6238b5e37 by test (*) (glob) $ hg log --hidden -r "2f599e54c1c6" - changeset: 24:2f599e54c1c6 + changeset: 21:2f599e54c1c6 branch: closedbranch user: test date: Thu Jan 01 00:00:00 1970 +0000 diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-list.t --- a/tests/test-evolve-list.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-list.t Tue Oct 10 22:40:41 2017 +0200 @@ -17,7 +17,7 @@ $ hg up 0 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ echo a >> a && hg ci --amend -m a - 2 new unstable changesets + 2 new orphan changesets $ hg evolve --list d2ae7f538514: b unstable: cb9a9f314b8b (obsolete parent) @@ -34,7 +34,7 @@ adding a $ echo b > b && hg ci --amend -m ab $ hg phase --public --rev 0 --hidden - 1 new bumped changesets + 1 new phase-divergent changesets $ hg evolve --list 88cc282e27fc: ab bumped: cb9a9f314b8b (immutable precursor) @@ -64,7 +64,7 @@ rebasing 1:d2ae7f538514 "b" $ hg rebase -s 1 -d 3 --hidden --config experimental.allowdivergence=True rebasing 1:d2ae7f538514 "b" - 2 new divergent changesets + 2 new content-divergent changesets $ hg evolve --list c882616e9d84: b divergent: a922b3733e98 (draft) (precursor d2ae7f538514) diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-obshistory-complex.t --- a/tests/test-evolve-obshistory-complex.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-obshistory-complex.t Tue Oct 10 22:40:41 2017 +0200 @@ -68,7 +68,7 @@ $ hg fold --exact -r 1 -r 2 --date "0 0" -m "fold0" 2 changesets folded - 4 new unstable changesets + 4 new orphan changesets $ hg fold --exact -r 3 -r 4 --date "0 0" -m "fold1" 2 changesets folded $ hg fold --exact -r 5 -r 6 --date "0 0" -m "fold2" @@ -80,14 +80,14 @@ | parent: 4:868d2e0eb19c | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: fold2 | | o changeset: 8:d15d0ffc75f6 | | parent: 2:c473644ee0e9 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: fold1 | | | | o changeset: 7:b868bc49b0a4 @@ -236,27 +236,27 @@ | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: fold2 | o changeset: 14:ec31316faa9d | parent: 4:868d2e0eb19c | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: fold2 | | o changeset: 13:d0f33db50670 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: fold1 | | | o changeset: 12:7b3290f6e0a0 | | parent: 2:c473644ee0e9 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: fold1 | | | | o changeset: 11:e036916b63ea @@ -312,21 +312,21 @@ | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: fold2 | o changeset: 14:ec31316faa9d | parent: 4:868d2e0eb19c | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: fold2 | | o changeset: 12:7b3290f6e0a0 | | parent: 2:c473644ee0e9 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: fold1 | | | | o changeset: 10:19e14c8397fc @@ -374,25 +374,25 @@ o 7b3290f6e0a0 (12) fold1 |\ x | d15d0ffc75f6 (8) fold1 - |\ \ rewritten(parent, content) as 7b3290f6e0a0, d0f33db50670 by test (Thu Jan 01 00:00:00 1970 +0000) + |\ \ rewritten(parent, content) as 7b3290f6e0a0, d0f33db50670 by test (*) (glob) | | | | | x e036916b63ea (11) fold0 - | | | rewritten(description, parent, content) as 7b3290f6e0a0 by test (Thu Jan 01 00:00:00 1970 +0000) + | | | rewritten(description, parent, content) as 7b3290f6e0a0 by test (*) (glob) | | | x | | 868d2e0eb19c (4) D - / / rewritten(description, parent, content) as d15d0ffc75f6 by test (Thu Jan 01 00:00:00 1970 +0000) + / / rewritten(description, parent, content) as d15d0ffc75f6 by test (*) (glob) | | x | a8df460dbbfe (3) C - / rewritten(description, content) as d15d0ffc75f6 by test (Thu Jan 01 00:00:00 1970 +0000) + / rewritten(description, content) as d15d0ffc75f6 by test (*) (glob) | x b868bc49b0a4 (7) fold0 - |\ rewritten(parent, content) as 19e14c8397fc, e036916b63ea by test (Thu Jan 01 00:00:00 1970 +0000) + |\ rewritten(parent, content) as 19e14c8397fc, e036916b63ea by test (*) (glob) | | x | 2a34000d3544 (1) A - / rewritten(description, content) as b868bc49b0a4 by test (Thu Jan 01 00:00:00 1970 +0000) + / rewritten(description, content) as b868bc49b0a4 by test (*) (glob) | x c473644ee0e9 (2) B - rewritten(description, parent, content) as b868bc49b0a4 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description, parent, content) as b868bc49b0a4 by test (*) (glob) While with all option, we should see 15 changesets @@ -406,35 +406,35 @@ | | | | o ec31316faa9d (14) fold2 | | | |/| | | | x | 100cc25b765f (9) fold2 - | | | |\ \ rewritten(parent, content) as d4a000f63ee9, ec31316faa9d by test (Thu Jan 01 00:00:00 1970 +0000) + | | | |\ \ rewritten(parent, content) as d4a000f63ee9, ec31316faa9d by test (*) (glob) | | | | | | | +-------x d0f33db50670 (13) fold1 - | | | | | rewritten(description, parent, content) as ec31316faa9d by test (Thu Jan 01 00:00:00 1970 +0000) + | | | | | rewritten(description, parent, content) as ec31316faa9d by test (*) (glob) | | | | | +---x | | e036916b63ea (11) fold0 - | | / / rewritten(description, parent, content) as 7b3290f6e0a0 by test (Thu Jan 01 00:00:00 1970 +0000) + | | / / rewritten(description, parent, content) as 7b3290f6e0a0 by test (*) (glob) | | | | | | x | 0da815c333f6 (5) E - | | / rewritten(description, content) as 100cc25b765f by test (Thu Jan 01 00:00:00 1970 +0000) + | | / rewritten(description, content) as 100cc25b765f by test (*) (glob) | | | x | | b868bc49b0a4 (7) fold0 - |\ \ \ rewritten(parent, content) as 19e14c8397fc, e036916b63ea by test (Thu Jan 01 00:00:00 1970 +0000) + |\ \ \ rewritten(parent, content) as 19e14c8397fc, e036916b63ea by test (*) (glob) | | | | | | x | d15d0ffc75f6 (8) fold1 - | | |\ \ rewritten(parent, content) as 7b3290f6e0a0, d0f33db50670 by test (Thu Jan 01 00:00:00 1970 +0000) + | | |\ \ rewritten(parent, content) as 7b3290f6e0a0, d0f33db50670 by test (*) (glob) | | | | | | | | | x d9f908fde1a1 (6) F - | | | | rewritten(description, parent, content) as 100cc25b765f by test (Thu Jan 01 00:00:00 1970 +0000) + | | | | rewritten(description, parent, content) as 100cc25b765f by test (*) (glob) | | | | x | | | 2a34000d3544 (1) A - / / / rewritten(description, content) as b868bc49b0a4 by test (Thu Jan 01 00:00:00 1970 +0000) + / / / rewritten(description, content) as b868bc49b0a4 by test (*) (glob) | | | | x | 868d2e0eb19c (4) D - | / rewritten(description, parent, content) as d15d0ffc75f6 by test (Thu Jan 01 00:00:00 1970 +0000) + | / rewritten(description, parent, content) as d15d0ffc75f6 by test (*) (glob) | | | x a8df460dbbfe (3) C - | rewritten(description, content) as d15d0ffc75f6 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description, content) as d15d0ffc75f6 by test (*) (glob) | x c473644ee0e9 (2) B - rewritten(description, parent, content) as b868bc49b0a4 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description, parent, content) as b868bc49b0a4 by test (*) (glob) diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-obshistory.t --- a/tests/test-evolve-obshistory.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-obshistory.t Tue Oct 10 22:40:41 2017 +0200 @@ -31,19 +31,13 @@ > > Better commit message" $ hg log --hidden -G - @ changeset: 3:4ae3a4151de9 + @ changeset: 2:4ae3a4151de9 | tag: tip | parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: A1 | - | x changeset: 2:f137d23bb3e1 - | | user: test - | | date: Thu Jan 01 00:00:00 1970 +0000 - | | obsolete: pruned - | | summary: temporary amend commit for 471f378eab4c - | | | x changeset: 1:471f378eab4c |/ user: test | date: Thu Jan 01 00:00:00 1970 +0000 @@ -58,10 +52,10 @@ Actual test ----------- $ hg obslog --patch 4ae3a4151de9 - @ 4ae3a4151de9 (3) A1 + @ 4ae3a4151de9 (2) A1 | x 471f378eab4c (1) A0 - rewritten(description, content) as 4ae3a4151de9 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description, content) as 4ae3a4151de9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/4ae3a4151de9-changeset-description @@ -1,1 +1,3 @@ @@ -80,7 +74,7 @@ $ hg obslog --no-graph --patch 4ae3a4151de9 - 4ae3a4151de9 (3) A1 + 4ae3a4151de9 (2) A1 471f378eab4c (1) A0 rewritten(description, content) as 4ae3a4151de9 by test (Thu Jan 01 00:00:00 1970 +0000) --- a/471f378eab4c-changeset-description @@ -109,7 +103,7 @@ { "markers": [], "node": "4ae3a4151de9", - "rev": 3, + "rev": 2, "shortdescription": "A1" }, { @@ -137,7 +131,7 @@ ] $ hg obslog --hidden --patch 471f378eab4c x 471f378eab4c (1) A0 - rewritten(description, content) as 4ae3a4151de9 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description, content) as 4ae3a4151de9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/4ae3a4151de9-changeset-description @@ -1,1 +1,3 @@ @@ -245,7 +239,7 @@ $ hg obslog 'desc(B0)' --hidden --patch x 0dec01379d3b (2) B0 pruned by test (*) (glob) - (No patch available yet, no successors) + (No patch available, no successors) $ hg obslog 'desc(B0)' --hidden --no-graph -Tjson | python -m json.tool [ @@ -379,8 +373,8 @@ Check that debugobshistory on splitted commit show both targets $ hg obslog 471597cad322 --hidden --patch x 471597cad322 (1) A0 - rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (2)) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (2)) $ hg obslog 471597cad322 --hidden --no-graph -Tjson | python -m json.tool [ @@ -414,8 +408,8 @@ o 337fec4d2edc (2) A0 | x 471597cad322 (1) A0 - rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (2)) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (2)) With the all option, it should show the three changesets $ hg obslog --all 337fec4d2edc --patch @@ -424,8 +418,8 @@ | @ f257fde29c7a (3) A0 |/ x 471597cad322 (1) A0 - rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (2)) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (2)) Check that debugobshistory on the second successor after split show the revision plus the splitted one @@ -433,8 +427,8 @@ @ f257fde29c7a (3) A0 | x 471597cad322 (1) A0 - rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (2)) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (2)) With the all option, it should show the three changesets $ hg obslog f257fde29c7a --all --patch @@ -443,8 +437,8 @@ | @ f257fde29c7a (3) A0 |/ x 471597cad322 (1) A0 - rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (2)) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (2)) Obslog with all option all should also works on the splitted commit $ hg obslog -a 471597cad322 --hidden --patch @@ -453,8 +447,8 @@ | @ f257fde29c7a (3) A0 |/ x 471597cad322 (1) A0 - rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (2)) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (2)) Check that debugobshistory on both successors after split show a coherent graph @@ -464,8 +458,8 @@ | @ f257fde29c7a (3) A0 |/ x 471597cad322 (1) A0 - rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (2)) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (2)) $ hg update 471597cad322 abort: hidden revision '471597cad322'! @@ -632,8 +626,8 @@ $ hg obslog de7290d8b885 --hidden --patch x de7290d8b885 (1) A0 - rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (4)) + rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (4)) $ hg obslog de7290d8b885 --hidden --all --patch o 1ae8bc733a14 (4) A0 @@ -645,8 +639,8 @@ | o f257fde29c7a (3) A0 |/ x de7290d8b885 (1) A0 - rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (4)) + rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (4)) $ hg obslog de7290d8b885 --hidden --no-graph -Tjson | python -m json.tool [ @@ -680,8 +674,8 @@ @ c7f044602e9b (5) A0 | x de7290d8b885 (1) A0 - rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (4)) + rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (4)) $ hg obslog c7f044602e9b --no-graph -Tjson | python -m json.tool [ @@ -728,8 +722,8 @@ | o f257fde29c7a (3) A0 |/ x de7290d8b885 (1) A0 - rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (4)) + rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (4)) $ hg obslog 5 --all --patch o 1ae8bc733a14 (4) A0 @@ -741,8 +735,8 @@ | o f257fde29c7a (3) A0 |/ x de7290d8b885 (1) A0 - rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, too many successors (4)) + rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (*) (glob) + (No patch available, too many successors (4)) $ hg update de7290d8b885 abort: hidden revision 'de7290d8b885'! @@ -816,7 +810,7 @@ the revision with the target $ hg obslog --hidden 471f378eab4c --patch x 471f378eab4c (1) A0 - rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description, content) as eb5a0daa2192 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/eb5a0daa2192-changeset-description @@ -1,1 +1,1 @@ @@ -835,11 +829,11 @@ @ eb5a0daa2192 (3) C0 |\ x | 0dec01379d3b (2) B0 - / rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available yet, changesets rebased) + / rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) + | (No patch available, changesets rebased) | x 471f378eab4c (1) A0 - rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description, content) as eb5a0daa2192 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/eb5a0daa2192-changeset-description @@ -1,1 +1,1 @@ @@ -857,19 +851,19 @@ the revision with the target $ hg obslog --hidden 0dec01379d3b --patch x 0dec01379d3b (2) B0 - rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, changesets rebased) + rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) + (No patch available, changesets rebased) Check that with all option, all changesets are shown $ hg obslog --hidden --all 0dec01379d3b --patch @ eb5a0daa2192 (3) C0 |\ x | 0dec01379d3b (2) B0 - / rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available yet, changesets rebased) + / rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) + | (No patch available, changesets rebased) | x 471f378eab4c (1) A0 - rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description, content) as eb5a0daa2192 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/eb5a0daa2192-changeset-description @@ -1,1 +1,1 @@ @@ -889,11 +883,11 @@ @ eb5a0daa2192 (3) C0 |\ x | 0dec01379d3b (2) B0 - / rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available yet, changesets rebased) + / rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) + | (No patch available, changesets rebased) | x 471f378eab4c (1) A0 - rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description, content) as eb5a0daa2192 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/eb5a0daa2192-changeset-description @@ -1,1 +1,1 @@ @@ -923,7 +917,7 @@ 0 (glob) ], "effect": [ - *, (glob) + "description", "content" ], "succnodes": [ @@ -941,7 +935,7 @@ "markers": [ { "date": [ - 0.0, + *, (glob) 0 (glob) ], "effect": [ @@ -1015,21 +1009,21 @@ working directory parent is obsolete! (471f378eab4c) (use 'hg evolve' to update to its successor: fdf9bde5129a) $ hg amend -m "A2" - 2 new divergent changesets + 2 new content-divergent changesets $ hg log --hidden -G @ changeset: 3:65b757b745b9 | tag: tip | parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent + | instability: content-divergent | summary: A2 | | o changeset: 2:fdf9bde5129a |/ parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent + | instability: content-divergent | summary: A1 | | x changeset: 1:471f378eab4c @@ -1050,14 +1044,14 @@ Check that debugobshistory on the divergent revision show both destinations $ hg obslog --hidden 471f378eab4c --patch x 471f378eab4c (1) A0 - rewritten(description) as 65b757b745b9 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) as fdf9bde5129a by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1073,14 +1067,14 @@ | o fdf9bde5129a (2) A1 |/ x 471f378eab4c (1) A0 - rewritten(description) as 65b757b745b9 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) as fdf9bde5129a by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1132,14 +1126,14 @@ o fdf9bde5129a (2) A1 | x 471f378eab4c (1) A0 - rewritten(description) as 65b757b745b9 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) as fdf9bde5129a by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1155,14 +1149,14 @@ | o fdf9bde5129a (2) A1 |/ x 471f378eab4c (1) A0 - rewritten(description) as 65b757b745b9 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) as fdf9bde5129a by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1176,14 +1170,14 @@ @ 65b757b745b9 (3) A2 | x 471f378eab4c (1) A0 - rewritten(description) as 65b757b745b9 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) as fdf9bde5129a by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1198,14 +1192,14 @@ | o fdf9bde5129a (2) A1 |/ x 471f378eab4c (1) A0 - rewritten(description) as 65b757b745b9 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) as fdf9bde5129a by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1221,14 +1215,14 @@ | o fdf9bde5129a (2) A1 |/ x 471f378eab4c (1) A0 - rewritten(description) as 65b757b745b9 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) as fdf9bde5129a by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1374,7 +1368,7 @@ @ eb5a0daa2192 (4) C0 |\ x | 471f378eab4c (1) A0 - / rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) + / rewritten(description, content) as eb5a0daa2192 by test (*) (glob) | --- a/471f378eab4c-changeset-description | +++ b/eb5a0daa2192-changeset-description | @@ -1,1 +1,1 @@ @@ -1389,11 +1383,11 @@ | | x b7ea6d14e664 (3) B1 - | rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available yet, changesets rebased) + | rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) + | (No patch available, changesets rebased) | x 0dec01379d3b (2) B0 - rewritten(description) as b7ea6d14e664 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as b7ea6d14e664 by test (*) (glob) --- a/0dec01379d3b-changeset-description +++ b/b7ea6d14e664-changeset-description @@ -1,1 +1,1 @@ @@ -1406,7 +1400,7 @@ @ eb5a0daa2192 (4) C0 |\ x | 471f378eab4c (1) A0 - / rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) + / rewritten(description, content) as eb5a0daa2192 by test (*) (glob) | --- a/471f378eab4c-changeset-description | +++ b/eb5a0daa2192-changeset-description | @@ -1,1 +1,1 @@ @@ -1421,11 +1415,11 @@ | | x b7ea6d14e664 (3) B1 - | rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available yet, changesets rebased) + | rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) + | (No patch available, changesets rebased) | x 0dec01379d3b (2) B0 - rewritten(description) as b7ea6d14e664 by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as b7ea6d14e664 by test (*) (glob) --- a/0dec01379d3b-changeset-description +++ b/b7ea6d14e664-changeset-description @@ -1,1 +1,1 @@ @@ -1603,7 +1597,7 @@ @ 7a230b46bf61 (3) A2 | x fdf9bde5129a (2) A1 - | rewritten(description) as 7a230b46bf61 by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(description) as 7a230b46bf61 by test (*) (glob) | --- a/fdf9bde5129a-changeset-description | +++ b/7a230b46bf61-changeset-description | @@ -1,1 +1,1 @@ @@ -1612,7 +1606,7 @@ | | x 471f378eab4c (1) A0 - rewritten(description) as fdf9bde5129a by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1639,21 +1633,21 @@ o 7a230b46bf61 (2) A2 | x fdf9bde5129a - | rewritten(description) as 7a230b46bf61 by test (Thu Jan 01 00:00:00 1970 +0000) - | (No patch available yet, context is not local) + | rewritten(description) as 7a230b46bf61 by test (*) (glob) + | (No patch available, context is not local) | @ 471f378eab4c (1) A0 - rewritten(description) as fdf9bde5129a by test (Thu Jan 01 00:00:00 1970 +0000) - (No patch available yet, succ is unknown locally) + rewritten(description) as fdf9bde5129a by test (*) (glob) + (No patch available, successor is unknown locally) $ hg obslog 7a230b46bf61 --color=debug --patch o [evolve.node|7a230b46bf61] [evolve.rev|(2)] [evolve.short_description|A2] | x [evolve.node evolve.missing_change_ctx|fdf9bde5129a] - | [evolve.verb|rewritten](description) as [evolve.node|7a230b46bf61] by [evolve.user|test] [evolve.date|(Thu Jan 01 00:00:00 1970 +0000)] - | (No patch available yet, context is not local) + | [evolve.verb|rewritten](description) as [evolve.node|7a230b46bf61] by [evolve.user|test] [evolve.date|(*)] (glob) + | (No patch available, context is not local) | @ [evolve.node|471f378eab4c] [evolve.rev|(1)] [evolve.short_description|A0] - [evolve.verb|rewritten](description) as [evolve.node|fdf9bde5129a] by [evolve.user|test] [evolve.date|(Thu Jan 01 00:00:00 1970 +0000)] - (No patch available yet, succ is unknown locally) + [evolve.verb|rewritten](description) as [evolve.node|fdf9bde5129a] by [evolve.user|test] [evolve.date|(*)] (glob) + (No patch available, successor is unknown locally) diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-order.t --- a/tests/test-evolve-order.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-order.t Tue Oct 10 22:40:41 2017 +0200 @@ -44,9 +44,9 @@ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ echo "aaa" > _a $ hg amend - 2 new unstable changesets + 2 new orphan changesets $ hg log -G - @ 5:12d519679175@default(draft) add _a + @ 4:12d519679175@default(draft) add _a | | o 3:4d156641b718@default(draft) add _c | | @@ -60,9 +60,9 @@ evolve --rev reorders the rev to solve instability, trivial case 2 revs wrong order $ hg evolve --rev 'desc(_c) + desc(_b)' move:[2] add _b - atop:[5] add _a + atop:[4] add _a move:[3] add _c - atop:[6] add _b + atop:[5] add _b working directory is now at 52b8f9b04f83 evolve --rev reorders the rev to solve instability. Harder case, obsolescence @@ -73,10 +73,10 @@ $ hg up "desc(_a)" 0 files updated, 0 files merged, 3 files removed, 0 files unresolved $ hg amend -m "aprime" - 3 new unstable changesets + 3 new orphan changesets $ hg evolve --rev "desc(_b)" - move:[6] add _b - atop:[9] aprime + move:[5] add _b + atop:[8] aprime working directory is now at 476c9c052aae $ hg up "desc(_b) - obsolete()" 0 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -84,40 +84,40 @@ $ hg up "desc(aprime)" 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg amend -m "asecond" - 1 new unstable changesets + 1 new orphan changesets $ hg log -G - @ 12:9a584314f3f3@default(draft) asecond + @ 11:9a584314f3f3@default(draft) asecond | - | o 11:a59c79776f7c@default(draft) bprime + | o 10:a59c79776f7c@default(draft) bprime | | - | x 9:81a687b96d4d@default(draft) aprime + | x 8:81a687b96d4d@default(draft) aprime |/ - | o 8:464731bc0ed0@default(draft) add _d + | o 7:464731bc0ed0@default(draft) add _d | | - | o 7:52b8f9b04f83@default(draft) add _c + | o 6:52b8f9b04f83@default(draft) add _c | | - | x 6:59476c3836ef@default(draft) add _b + | x 5:59476c3836ef@default(draft) add _b | | - | x 5:12d519679175@default(draft) add _a + | x 4:12d519679175@default(draft) add _a |/ o 0:f92638be10c7@default(public) add p - $ hg evolve --rev "unstable()" - move:[11] bprime - atop:[12] asecond - move:[7] add _c - atop:[13] bprime - move:[8] add _d - atop:[14] add _c + $ hg evolve --rev "orphan()" + move:[10] bprime + atop:[11] asecond + move:[6] add _c + atop:[12] bprime + move:[7] add _d + atop:[13] add _c working directory is now at 739f18ac1d03 $ hg log -G - @ 15:739f18ac1d03@default(draft) add _d + @ 14:739f18ac1d03@default(draft) add _d | - o 14:e5960578d158@default(draft) add _c + o 13:e5960578d158@default(draft) add _c | - o 13:4ad33fa88946@default(draft) bprime + o 12:4ad33fa88946@default(draft) bprime | - o 12:9a584314f3f3@default(draft) asecond + o 11:9a584314f3f3@default(draft) asecond | o 0:f92638be10c7@default(public) add p @@ -131,28 +131,28 @@ $ mkstack "desc(_d)" c1second >/dev/null $ hg prune "desc(c1_)" -s "desc(c1prime)" 1 changesets pruned - 3 new unstable changesets + 3 new orphan changesets $ hg prune "desc(c2_)" -s "desc(c2prime)" 1 changesets pruned $ hg prune "desc(c1prime)" -s "desc(c1second)" 1 changesets pruned - 1 new unstable changesets + 1 new orphan changesets $ hg log -G -r "desc(_d)::" - @ 22:dcf786e878fd@default(draft) add c1second + @ 21:dcf786e878fd@default(draft) add c1second | - | o 21:507d52d715f6@default(draft) add c2prime + | o 20:507d52d715f6@default(draft) add c2prime | | - | x 20:c995cb124ddc@default(draft) add c1prime + | x 19:c995cb124ddc@default(draft) add c1prime |/ - | o 19:d096a2437fd0@default(draft) add c4_ + | o 18:d096a2437fd0@default(draft) add c4_ | | - | o 18:cde95c6cba7a@default(draft) add c3_ + | o 17:cde95c6cba7a@default(draft) add c3_ | | - | x 17:e0d9f7a099fe@default(draft) add c2_ + | x 16:e0d9f7a099fe@default(draft) add c2_ | | - | x 16:43b7c338b1f8@default(draft) add c1_ + | x 15:43b7c338b1f8@default(draft) add c1_ |/ - o 15:739f18ac1d03@default(draft) add _d + o 14:739f18ac1d03@default(draft) add _d | ~ @@ -161,40 +161,40 @@ $ mkstack "desc(_d)" b1prime b3prime >/dev/null $ hg prune "desc(b1_)" -s "desc(b1prime)" 1 changesets pruned - 3 new unstable changesets + 3 new orphan changesets $ hg prune "desc(b3_)" -s "desc(b3prime)" 1 changesets pruned $ hg prune "desc(b2_)" 1 changesets pruned $ hg log -G -r "desc(_d)::" - @ 28:b253ff5b65d1@default(draft) add b3prime + @ 27:b253ff5b65d1@default(draft) add b3prime | - o 27:4acf61f11dfb@default(draft) add b1prime + o 26:4acf61f11dfb@default(draft) add b1prime | - | o 26:594e1fbbd61f@default(draft) add b4_ + | o 25:594e1fbbd61f@default(draft) add b4_ | | - | x 25:be27500cfc76@default(draft) add b3_ + | x 24:be27500cfc76@default(draft) add b3_ | | - | x 24:b54f77dc5831@default(draft) add b2_ + | x 23:b54f77dc5831@default(draft) add b2_ | | - | x 23:0e1eba27e9aa@default(draft) add b1_ + | x 22:0e1eba27e9aa@default(draft) add b1_ |/ - | o 22:dcf786e878fd@default(draft) add c1second + | o 21:dcf786e878fd@default(draft) add c1second |/ - | o 21:507d52d715f6@default(draft) add c2prime + | o 20:507d52d715f6@default(draft) add c2prime | | - | x 20:c995cb124ddc@default(draft) add c1prime + | x 19:c995cb124ddc@default(draft) add c1prime |/ - | o 19:d096a2437fd0@default(draft) add c4_ + | o 18:d096a2437fd0@default(draft) add c4_ | | - | o 18:cde95c6cba7a@default(draft) add c3_ + | o 17:cde95c6cba7a@default(draft) add c3_ | | - | x 17:e0d9f7a099fe@default(draft) add c2_ + | x 16:e0d9f7a099fe@default(draft) add c2_ | | - | x 16:43b7c338b1f8@default(draft) add c1_ + | x 15:43b7c338b1f8@default(draft) add c1_ |/ - o 15:739f18ac1d03@default(draft) add _d + o 14:739f18ac1d03@default(draft) add _d | ~ @@ -203,35 +203,35 @@ (desc(_d)::) - desc(c3_) $ hg evolve --rev "(desc(_d)::) - desc(c3_)" cannot solve instability of d096a2437fd0, skipping - move:[21] add c2prime - atop:[22] add c1second - move:[26] add b4_ - atop:[28] add b3prime + move:[20] add c2prime + atop:[21] add c1second + move:[25] add b4_ + atop:[27] add b3prime working directory is now at ea93190a9cd1 Cleanup $ hg evolve --rev "(desc(_d)::)" - move:[18] add c3_ - atop:[29] add c2prime - move:[19] add c4_ - atop:[31] add c3_ + move:[17] add c3_ + atop:[28] add c2prime + move:[18] add c4_ + atop:[30] add c3_ working directory is now at 35e7b797ace5 $ hg log -G -r "desc(_d)::" - @ 32:35e7b797ace5@default(draft) add c4_ + @ 31:35e7b797ace5@default(draft) add c4_ | - o 31:0b9488394e89@default(draft) add c3_ + o 30:0b9488394e89@default(draft) add c3_ | - | o 30:ea93190a9cd1@default(draft) add b4_ + | o 29:ea93190a9cd1@default(draft) add b4_ | | - o | 29:881b9c092e53@default(draft) add c2prime + o | 28:881b9c092e53@default(draft) add c2prime | | - | o 28:b253ff5b65d1@default(draft) add b3prime + | o 27:b253ff5b65d1@default(draft) add b3prime | | - | o 27:4acf61f11dfb@default(draft) add b1prime + | o 26:4acf61f11dfb@default(draft) add b1prime | | - o | 22:dcf786e878fd@default(draft) add c1second + o | 21:dcf786e878fd@default(draft) add c1second |/ - o 15:739f18ac1d03@default(draft) add _d + o 14:739f18ac1d03@default(draft) add _d | ~ @@ -244,22 +244,22 @@ created new head $ hg prev 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [29] add c2prime + [28] add c2prime $ mkcommit c3part2 created new head $ hg prune -s 'desc(c3part1)' 'desc(c3_)' 1 changesets pruned - 1 new unstable changesets + 1 new orphan changesets $ hg prune -s 'desc(c3part2)' 'desc(c3_)' 1 changesets pruned - 2 new divergent changesets + 2 new content-divergent changesets $ hg up 'desc(b3prime)' 2 files updated, 0 files merged, 3 files removed, 0 files unresolved $ hg amend -m 'b3second' - 1 new unstable changesets - $ hg evolve --rev 'unstable()' - move:[30] add b4_ - atop:[35] b3second + 1 new orphan changesets + $ hg evolve --rev "orphan()" + move:[29] add b4_ + atop:[34] b3second skipping 0b9488394e89: divergent rewriting. can't choose destination working directory is now at 31809a198477 diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-serveronly-bundle2.t --- a/tests/test-evolve-serveronly-bundle2.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-serveronly-bundle2.t Tue Oct 10 22:40:41 2017 +0200 @@ -107,7 +107,7 @@ remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files (+1 heads) - remote: 2 new obsolescence markers + remote: 1 new obsolescence markers remote: obsoleted 1 changesets $ cat ../errors.log $ hg push @@ -127,7 +127,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re) - 2 new obsolescence markers + 1 new obsolescence markers obsoleted 1 changesets (run 'hg heads' to see heads) $ cat ../errors.log diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-serveronly.t --- a/tests/test-evolve-serveronly.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-serveronly.t Tue Oct 10 22:40:41 2017 +0200 @@ -114,8 +114,8 @@ the remote repository use years old versions of Mercurial and evolve pushing obsmarker using legacy method (please upgrade your server) - pushing 2 obsolescence markers (* bytes) (glob) - remote: 2 obsolescence markers added + pushing 1 obsolescence markers (* bytes) (glob) + remote: 1 obsolescence markers added remote: obsoleted 1 changesets $ cat ../errors.log $ hg push @@ -139,7 +139,7 @@ the remote repository use years old versions of Mercurial and evolve pulling obsmarker using legacy method (please upgrade your server) - 2 obsolescence markers added + 1 obsolescence markers added obsoleted 1 changesets (run 'hg heads' to see heads) $ cat ../errors.log diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-split.t --- a/tests/test-evolve-split.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-split.t Tue Oct 10 22:40:41 2017 +0200 @@ -44,7 +44,7 @@ $ hg commit -m "_pp" $ hg prune --succ "desc(_oo) + desc(_pp)" -r "desc('oo+pp')" --split 1 changesets pruned - 1 new unstable changesets + 1 new orphan changesets $ hg log -G @ 4:d0dcf24cddd3@default(draft) _pp | diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-templates.t --- a/tests/test-evolve-templates.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-templates.t Tue Oct 10 22:40:41 2017 +0200 @@ -36,26 +36,20 @@ $ HGUSER=test hg amend -m "A1" --config devel.default-date="1234567890 0" $ HGUSER=test2 hg amend -m "A2" --config devel.default-date="987654321 0" $ hg log --hidden -G - @ changeset: 4:d004c8f274b9 + @ changeset: 3:d004c8f274b9 | tag: tip | parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: A2 | - | x changeset: 3:a468dc9b3633 + | x changeset: 2:a468dc9b3633 |/ parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | obsolete: reworded by test2 as d004c8f274b9 + | obsolete: reworded as d004c8f274b9 by test2 | summary: A1 | - | x changeset: 2:f137d23bb3e1 - | | user: test - | | date: Thu Jan 01 00:00:00 1970 +0000 - | | obsolete: pruned - | | summary: temporary amend commit for 471f378eab4c - | | | x changeset: 1:471f378eab4c |/ user: test | date: Thu Jan 01 00:00:00 1970 +0000 @@ -76,9 +70,9 @@ Precursors template should show current revision as it is the working copy $ hg olog tip - o d004c8f274b9 (4) A2 + o d004c8f274b9 (3) A2 | - x a468dc9b3633 (3) A1 + x a468dc9b3633 (2) A1 | rewritten(description) as d004c8f274b9 by test2 (Thu Apr 19 04:25:21 2001 +0000) | @ 471f378eab4c (1) A0 @@ -97,7 +91,7 @@ $ hg log -G - o changeset: 4:d004c8f274b9 + o changeset: 3:d004c8f274b9 | tag: tip | parent: 0:ea207398892e | user: test @@ -107,7 +101,7 @@ | @ changeset: 1:471f378eab4c |/ user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | obsolete: rewritten by test, test2 as d004c8f274b9 + | obsolete: rewritten as d004c8f274b9 by test, test2 | summary: A0 | o changeset: 0:ea207398892e @@ -190,9 +184,6 @@ | semi-colon: [d004c8f274b9] | Fate: reworded as d004c8f274b9 by test2 | - | x f137d23bb3e1 - | | Fate: pruned - | | | x 471f378eab4c |/ Successors: [a468dc9b3633] | semi-colon: [a468dc9b3633] @@ -226,9 +217,6 @@ | semi-colon: [d004c8f274b9] | Fate: reworded as d004c8f274b9 by test2 | - | x f137d23bb3e1 - | | Fate: pruned - | | | x 471f378eab4c |/ Successors: [a468dc9b3633] | semi-colon: [a468dc9b3633] @@ -248,9 +236,6 @@ | x a468dc9b3633 |/ Obsfate: reworded as d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000) | - | x f137d23bb3e1 - | | Obsfate: pruned by test (at 2009-02-13 23:31 +0000) - | | | x 471f378eab4c |/ Obsfate: rewritten as a468dc9b3633 by test (at 2009-02-13 23:31 +0000) | @@ -260,11 +245,9 @@ $ hg fatelogjson --hidden @ d004c8f274b9 "" | - | x a468dc9b3633 [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["ef1", "1"], ["user", "test2"]], [987654321.0, 0], null]], "max_date": [987654321.0, 0], "min_date": [987654321.0, 0], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], "users": ["test2"], "verb": "reworded"}] + | x a468dc9b3633 [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test2"]], [987654321.0, 0], null]], "max_date": [987654321.0, 0], "min_date": [987654321.0, 0], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], "users": ["test2"], "verb": "reworded"}] |/ - | x f137d23bb3e1 [{"markers": [["f137d23bb3e11dc1daeb6264fac9cb2433782e15", [], 0, [["ef1", "0"], ["user", "test"]], [1234567890.0, 0], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]], "max_date": [1234567890.0, 0], "min_date": [1234567890.0, 0], "successors": [], "users": ["test"], "verb": "pruned"}] - | | - | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["ef1", "9"], ["user", "test"]], [1234567890.0, 0], null]], "max_date": [1234567890.0, 0], "min_date": [1234567890.0, 0], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], "users": ["test"], "verb": "rewritten"}] + | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["ef1", "9"], ["operation", "amend"], ["user", "test"]], [1234567890.0, 0], null]], "max_date": [1234567890.0, 0], "min_date": [1234567890.0, 0], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], "users": ["test"], "verb": "rewritten"}] |/ o ea207398892e "" @@ -639,21 +622,21 @@ working directory parent is obsolete! (471f378eab4c) (use 'hg evolve' to update to its successor: fdf9bde5129a) $ hg amend -m "A2" - 2 new divergent changesets + 2 new content-divergent changesets $ hg log --hidden -G @ changeset: 3:65b757b745b9 | tag: tip | parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent + | instability: content-divergent | summary: A2 | | o changeset: 2:fdf9bde5129a |/ parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent + | instability: content-divergent | summary: A1 | | x changeset: 1:471f378eab4c @@ -764,11 +747,11 @@ $ hg fatelogjson --hidden o 019fadeab383 "" | - | x 65b757b745b9 [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["ef1", "1"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], "users": ["test"], "verb": "reworded"}] + | x 65b757b745b9 [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], "users": ["test"], "verb": "reworded"}] |/ | @ fdf9bde5129a "" |/ - | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["ef1", "1"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], "users": ["test"], "verb": "reworded"}, {"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["65b757b745b935093c87a2bccd877521cccffcbd"], 0, [["ef1", "1"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["65b757b745b935093c87a2bccd877521cccffcbd"], "users": ["test"], "verb": "reworded"}] + | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], "users": ["test"], "verb": "reworded"}, {"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["65b757b745b935093c87a2bccd877521cccffcbd"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["65b757b745b935093c87a2bccd877521cccffcbd"], "users": ["test"], "verb": "reworded"}] |/ o ea207398892e "" @@ -983,7 +966,7 @@ | | x b7ea6d14e664 [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "13"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}] | | - | | x 0dec01379d3b [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["ef1", "1"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], "users": ["test"], "verb": "reworded"}] + | | x 0dec01379d3b [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], "users": ["test"], "verb": "reworded"}] | |/ | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "9"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}] |/ @@ -1134,7 +1117,7 @@ $ hg fatelogjson --hidden @ 7a230b46bf61 "" | - | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["ef1", "1"], ["user", "test"]], [0.0, 0], null], ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e", ["7a230b46bf61e50b30308c6cfd7bd1269ef54702"], 0, [["ef1", "1"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["7a230b46bf61e50b30308c6cfd7bd1269ef54702"], "users": ["test"], "verb": "reworded"}] + | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null], ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e", ["7a230b46bf61e50b30308c6cfd7bd1269ef54702"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["7a230b46bf61e50b30308c6cfd7bd1269ef54702"], "users": ["test"], "verb": "reworded"}] |/ o ea207398892e "" diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve-topic.t --- a/tests/test-evolve-topic.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve-topic.t Tue Oct 10 22:40:41 2017 +0200 @@ -87,16 +87,16 @@ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ echo ddd >> ddd $ hg amend - 6 new unstable changesets + 6 new orphan changesets $ hg up 'desc(fff)' 3 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo fff >> fff $ hg amend $ hg log -G - @ 13 - {foo} e104f49bab28 add fff (draft) + @ 11 - {foo} e104f49bab28 add fff (draft) | - | o 11 - {foo} d9cacd156ffc add ddd (draft) + | o 10 - {foo} d9cacd156ffc add ddd (draft) | | | | o 9 - {bar} 1d964213b023 add jjj (draft) | | | @@ -123,16 +123,16 @@ $ hg evolve --all move:[4] add eee - atop:[11] add ddd - move:[13] add fff - atop:[14] add eee + atop:[10] add ddd + move:[11] add fff + atop:[12] add eee working directory is now at 070c5573d8f9 $ hg log -G - @ 15 - {foo} 070c5573d8f9 add fff (draft) + @ 13 - {foo} 070c5573d8f9 add fff (draft) | - o 14 - {foo} 42b49017ff90 add eee (draft) + o 12 - {foo} 42b49017ff90 add eee (draft) | - o 11 - {foo} d9cacd156ffc add ddd (draft) + o 10 - {foo} d9cacd156ffc add ddd (draft) | | o 9 - {bar} 1d964213b023 add jjj (draft) | | @@ -160,28 +160,28 @@ $ hg evolve --rev 'topic(bar)' move:[6] add ggg - atop:[15] add fff + atop:[13] add fff move:[7] add hhh - atop:[16] add ggg + atop:[14] add ggg move:[8] add iii - atop:[17] add hhh + atop:[15] add hhh move:[9] add jjj - atop:[18] add iii + atop:[16] add iii working directory is now at 9bf430c106b7 $ hg log -G - @ 19 - {bar} 9bf430c106b7 add jjj (draft) + @ 17 - {bar} 9bf430c106b7 add jjj (draft) | - o 18 - {bar} d2dc89c57700 add iii (draft) + o 16 - {bar} d2dc89c57700 add iii (draft) | - o 17 - {bar} 20bc4d02aa62 add hhh (draft) + o 15 - {bar} 20bc4d02aa62 add hhh (draft) | - o 16 - {bar} 16d6f664b17c add ggg (draft) + o 14 - {bar} 16d6f664b17c add ggg (draft) | - o 15 - {foo} 070c5573d8f9 add fff (draft) + o 13 - {foo} 070c5573d8f9 add fff (draft) | - o 14 - {foo} 42b49017ff90 add eee (draft) + o 12 - {foo} 42b49017ff90 add eee (draft) | - o 11 - {foo} d9cacd156ffc add ddd (draft) + o 10 - {foo} d9cacd156ffc add ddd (draft) | o 2 - {foo} cced9bac76e3 add ccc (draft) | @@ -200,10 +200,10 @@ 0 files updated, 0 files merged, 4 files removed, 0 files unresolved $ hg prev 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [14] add eee + [12] add eee $ hg next 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - [15] add fff + [13] add fff $ hg next no children on topic "foo" do you want --no-topic @@ -211,11 +211,11 @@ $ hg next --no-topic switching to topic bar 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - [16] add ggg + [14] add ggg $ hg prev preserving the current topic 'bar' 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [15] add fff + [13] add fff $ hg prev no parent in topic "bar" (do you want --no-topic) @@ -223,4 +223,4 @@ $ hg prev --no-topic switching to topic foo 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [14] add eee + [12] add eee diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-evolve.t --- a/tests/test-evolve.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-evolve.t Tue Oct 10 22:40:41 2017 +0200 @@ -327,7 +327,7 @@ changeset plus the updating changeset are hidden from view by default:: $ hg log - 4 feature-B: another feature (child of 568a468b60fc) - test + 3 feature-B: another feature (child of 568a468b60fc) - test 1 feature-A: a nifty feature - test 0 : base - test @@ -344,22 +344,18 @@ (amend of on ancestors) $ hg amend - 1 new unstable changesets + 1 new orphan changesets $ hg log - 6 feature-A: a nifty feature - test - 4 feature-B: another feature (child of 568a468b60fc) - test + 4 feature-A: a nifty feature - test + 3 feature-B: another feature (child of 568a468b60fc) - test 1 : a nifty feature - test 0 : base - test $ hg up -q 0 $ glog --hidden - o 6:ba0ec09b1bab@default(draft) a nifty feature + o 4:ba0ec09b1bab@default(draft) a nifty feature | - | x 5:c296b79833d1@default(draft) temporary amend commit for 568a468b60fc + | o 3:6992c59c6b06@default(draft) another feature (child of 568a468b60fc) | | - | | o 4:6992c59c6b06@default(draft) another feature (child of 568a468b60fc) - | |/ - | | x 3:c97947cdc7a2@default(draft) temporary amend commit for 73296a82292a - | | | | | x 2:73296a82292a@default(draft) another feature (child of 568a468b60fc) | |/ | x 1:568a468b60fc@default(draft) a nifty feature @@ -367,101 +363,99 @@ @ 0:e55e0562ee93@default(public) base $ hg debugobsolete - 73296a82292a76fb8a7061969d2489ec0d84cd5e 6992c59c6b06a1b4a92e24ff884829ae026d018b 0 (*) {'ef1': '8', 'user': 'test'} (glob) - c97947cdc7a2a11cf78419f5c2c3dd3944ec79e8 0 {73296a82292a76fb8a7061969d2489ec0d84cd5e} (*) {'ef1': '0', 'user': 'test'} (glob) - 568a468b60fc99a42d5d4ddbe181caff1eef308d ba0ec09b1babf3489b567853807f452edd46704f 0 (*) {'ef1': '8', 'user': 'test'} (glob) - c296b79833d1d497f33144786174bf35e04e44a3 0 {568a468b60fc99a42d5d4ddbe181caff1eef308d} (*) {'ef1': '0', 'user': 'test'} (glob) + 73296a82292a76fb8a7061969d2489ec0d84cd5e 6992c59c6b06a1b4a92e24ff884829ae026d018b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} + 568a468b60fc99a42d5d4ddbe181caff1eef308d ba0ec09b1babf3489b567853807f452edd46704f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} $ hg evolve - move:[4] another feature (child of 568a468b60fc) - atop:[6] a nifty feature + move:[3] another feature (child of 568a468b60fc) + atop:[4] a nifty feature merging main-file-1 working directory is now at 99833d22b0c6 $ hg log - 7 feature-B: another feature (child of ba0ec09b1bab) - test - 6 feature-A: a nifty feature - test + 5 feature-B: another feature (child of ba0ec09b1bab) - test + 4 feature-A: a nifty feature - test 0 : base - test Test commit -o options - $ hg up 6 + $ hg up -r "desc('a nifty feature')" 1 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ hg revert -r 7 --all + $ hg revert -r "desc('another feature')" --all adding file-from-B reverting main-file-1 $ sed -i'' -e s/Zwei/deux/ main-file-1 - $ hg commit -m 'another feature that rox' -o 7 + $ hg commit -m 'another feature that rox' -o 5 created new head $ hg log - 8 feature-B: another feature that rox - test - 6 feature-A: a nifty feature - test + 6 feature-B: another feature that rox - test + 4 feature-A: a nifty feature - test 0 : base - test phase change turning obsolete changeset public issue a bumped warning - $ hg phase --hidden --public 7 - 1 new bumped changesets + $ hg phase --hidden --public 99833d22b0c6 + 1 new phase-divergent changesets all solving bumped troubled - $ hg log -G - @ 8 feature-B: another feature that rox - test + $ glog + @ 6:47d52a103155@default(draft) another feature that rox | - | o 7 : another feature (child of ba0ec09b1bab) - test + | o 5:99833d22b0c6@default(public) another feature (child of ba0ec09b1bab) |/ - o 6 feature-A: a nifty feature - test + o 4:ba0ec09b1bab@default(public) a nifty feature | - o 0 : base - test + o 0:e55e0562ee93@default(public) base $ hg evolve --any --traceback --phasedivergent - recreate:[8] another feature that rox - atop:[7] another feature (child of ba0ec09b1bab) + recreate:[6] another feature that rox + atop:[5] another feature (child of ba0ec09b1bab) computing new diff committed as 6707c5e1c49d working directory is now at 6707c5e1c49d - $ hg log -G - @ 9 feature-B: bumped update to 99833d22b0c6: - test + $ glog + @ 7:6707c5e1c49d@default(draft) bumped update to 99833d22b0c6: | - o 7 : another feature (child of ba0ec09b1bab) - test + o 5:99833d22b0c6@default(public) another feature (child of ba0ec09b1bab) | - o 6 feature-A: a nifty feature - test + o 4:ba0ec09b1bab@default(public) a nifty feature | - o 0 : base - test + o 0:e55e0562ee93@default(public) base - $ hg diff --hidden -r 9 -r 8 - $ hg diff -r 9^ -r 9 + $ hg diff --hidden -r 6707c5e1c49d -r 47d52a103155 + $ hg diff -r 6707c5e1c49d^ -r 6707c5e1c49d diff --git a/main-file-1 b/main-file-1 --- a/main-file-1 +++ b/main-file-1 @@ -3,1 +3,1 @@ -Zwei +deux - $ hg log -r 'bumped()' # no more bumped + $ hg log -r 'phasedivergent()' # no more bumped test evolve --all $ sed -i'' -e s/deux/to/ main-file-1 $ hg commit -m 'dansk 2!' $ sed -i'' -e s/Three/tre/ main-file-1 $ hg commit -m 'dansk 3!' - $ hg update 9 + $ hg update 6707c5e1c49d 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ sed -i'' -e s/Un/Én/ main-file-1 $ hg commit --amend -m 'dansk!' - 2 new unstable changesets + 2 new orphan changesets (ninja test for the {trouble} template: $ hg log -G --template '{rev} {troubles}\n' - @ 13 + @ 10 | - | o 11 orphan + | o 9 orphan | | - | o 10 orphan + | o 8 orphan | | - | x 9 + | x 7 |/ - o 7 + o 5 | - o 6 + o 4 | o 0 @@ -470,23 +464,23 @@ (/ninja) $ hg evolve --all --traceback - move:[10] dansk 2! - atop:[13] dansk! + move:[8] dansk 2! + atop:[10] dansk! merging main-file-1 - move:[11] dansk 3! - atop:[14] dansk 2! + move:[9] dansk 3! + atop:[11] dansk 2! merging main-file-1 working directory is now at 68557e4f0048 $ hg log -G - @ 15 : dansk 3! - test + @ 12 : dansk 3! - test | - o 14 : dansk 2! - test + o 11 : dansk 2! - test | - o 13 feature-B: dansk! - test + o 10 feature-B: dansk! - test | - o 7 : another feature (child of ba0ec09b1bab) - test + o 5 : another feature (child of ba0ec09b1bab) - test | - o 6 feature-A: a nifty feature - test + o 4 feature-A: a nifty feature - test | o 0 : base - test @@ -546,13 +540,13 @@ checking manifests crosschecking files in changesets and manifests checking files - 3 files, 4 changesets, 4 total revisions + 3 files, 3 changesets, 3 total revisions $ hg --config extensions.hgext.mq= strip 'extinct()' abort: empty revision set [255] (do some garbare collection) $ hg --config extensions.hgext.mq= strip --hidden 'extinct()' --config devel.strip-obsmarkers=no - saved backup bundle to $TESTTMP/alpha/.hg/strip-backup/e87767087a57-d7bd82e9-backup.hg (glob) + saved backup bundle to $TESTTMP/alpha/.hg/strip-backup/e87767087a57-a365b072-backup.hg (glob) $ hg verify checking changesets checking manifests @@ -571,7 +565,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - 2 new obsolescence markers + 1 new obsolescence markers (run 'hg update' to get a working copy) $ hg up 2 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -770,12 +764,12 @@ @ d26d339c513f (12) add 4 |\ x | af636757ce3b (11) add 3 - |\ \ rewritten(description, user, parent, content) as d26d339c513f by test (Thu Jan 01 00:00:00 1970 +0000) + |\ \ rewritten(description, user, parent, content) as d26d339c513f by test (*) (glob) | | | | \ \ | |\ \ | | | x ce341209337f (4) add 4 - | | | rewritten(description, user, content) as d26d339c513f by test (Thu Jan 01 00:00:00 1970 +0000) + | | | rewritten(description, user, content) as d26d339c513f by test (*) (glob) | | | Test obsstore stat @@ -831,7 +825,7 @@ $ hg ci -m c $ hg prune .^ 1 changesets pruned - 1 new unstable changesets + 1 new orphan changesets $ hg stab --any move:[15] c atop:[13] a @@ -848,13 +842,13 @@ 2 changesets folded 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ glog - @ 16:98cb758db56d@default(draft) Folding with custom commit message + @ 13:98cb758db56d@default(draft) Folding with custom commit message | - o 13:0a2f9b959bb4@default(draft) dansk! + o 10:0a2f9b959bb4@default(draft) dansk! | - o 7:99833d22b0c6@default(public) another feature (child of ba0ec09b1bab) + o 5:99833d22b0c6@default(public) another feature (child of ba0ec09b1bab) | - o 6:ba0ec09b1bab@default(public) a nifty feature + o 4:ba0ec09b1bab@default(public) a nifty feature | o 0:e55e0562ee93@default(public) base @@ -867,10 +861,10 @@ 2 changesets folded 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg qlog - 17 - a00182c58888 A longer + 14 - a00182c58888 A longer commit message (draft) - 7 - 99833d22b0c6 another feature (child of ba0ec09b1bab) (public) - 6 - ba0ec09b1bab a nifty feature (public) + 5 - 99833d22b0c6 another feature (child of ba0ec09b1bab) (public) + 4 - ba0ec09b1bab a nifty feature (public) 0 - e55e0562ee93 base (public) $ cd .. @@ -908,17 +902,17 @@ marked working directory as branch mybranch (branches are permanent and global, did you want a bookmark?) $ hg amend - 1 new unstable changesets + 1 new orphan changesets $ hg evolve move:[3] a3 - atop:[5] a2 + atop:[4] a2 working directory is now at 7c5649f73d11 $ hg log -G --template '{rev} [{branch}] {desc|firstline}\n' - @ 6 [mybranch] a3 + @ 5 [mybranch] a3 | - o 5 [mybranch] a2 + o 4 [mybranch] a2 | o 1 [default] a1 | @@ -930,42 +924,42 @@ $ hg up 'desc(a1)' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg amend -m 'a1_' - 2 new unstable changesets + 2 new orphan changesets $ hg evolve - move:[5] a2 - atop:[7] a1_ + move:[4] a2 + atop:[6] a1_ working directory is now at eb07e22a0e63 $ hg evolve - move:[6] a3 - atop:[8] a2 + move:[5] a3 + atop:[7] a2 working directory is now at 777c26ca5e78 $ hg log -G --template '{rev} [{branch}] {desc|firstline}\n' - @ 9 [mybranch] a3 + @ 8 [mybranch] a3 | - o 8 [mybranch] a2 + o 7 [mybranch] a2 | - o 7 [default] a1_ + o 6 [default] a1_ | o 0 [default] a0 Evolve from the middle of a stack pick the right changesets. - $ hg up 7 + $ hg up -r "desc('a1_')" 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg ci --amend -m 'a1__' - 2 new unstable changesets + 2 new orphan changesets - $ hg up 8 + $ hg up -r "desc('a2')" 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log -G --template '{rev} [{branch}] {desc|firstline}\n' - o 10 [default] a1__ + o 9 [default] a1__ | - | o 9 [mybranch] a3 + | o 8 [mybranch] a3 | | - | @ 8 [mybranch] a2 + | @ 7 [mybranch] a2 | | - | x 7 [default] a1_ + | x 6 [default] a1_ |/ o 0 [default] a0 @@ -977,69 +971,69 @@ Evolve disables active bookmarks. - $ hg up 10 + $ hg up -r "desc('a1__')" 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg bookmark testbookmark $ ls .hg/bookmarks* .hg/bookmarks .hg/bookmarks.* (glob) $ hg evolve - move:[8] a2 - atop:[10] a1__ + move:[7] a2 + atop:[9] a1__ (leaving bookmark testbookmark) working directory is now at d952e93add6f $ ls .hg/bookmarks* .hg/bookmarks - $ hg log -G - @ 11 : a2 - test + $ glog + @ 10:d952e93add6f@mybranch(draft) a2 | - o 10 testbookmark: a1__ - test + o 9:9f8b83c2e7f3@default(draft) a1__ | - | o 9 : a3 - test + | o 8:777c26ca5e78@mybranch(draft) a3 | | - | x 8 : a2 - test + | x 7:eb07e22a0e63@mybranch(draft) a2 | | - | x 7 : a1_ - test + | x 6:faafc6cea0ba@default(draft) a1_ |/ - o 0 : a0 - test + o 0:07c1c36d9ef0@default(draft) a0 Possibility to select what trouble to solve first, asking for bumped before divergent - $ hg up 10 + $ hg up -r "desc('a1__')" 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg revert -r 11 --all + $ hg revert -r d952e93add6f --all reverting a $ hg log -G --template '{rev} [{branch}] {desc|firstline}\n' - o 11 [mybranch] a2 + o 10 [mybranch] a2 | - @ 10 [default] a1__ + @ 9 [default] a1__ | - | o 9 [mybranch] a3 + | o 8 [mybranch] a3 | | - | x 8 [mybranch] a2 + | x 7 [mybranch] a2 | | - | x 7 [default] a1_ + | x 6 [default] a1_ |/ o 0 [default] a0 $ echo "hello world" > newfile $ hg add newfile - $ hg commit -m "add new file bumped" -o 11 - $ hg phase --public --hidden 11 - 1 new bumped changesets + $ hg commit -m "add new file bumped" -o 10 + $ hg phase --public --hidden d952e93add6f + 1 new phase-divergent changesets $ hg log -G - @ 12 : add new file bumped - test + @ 11 : add new file bumped - test | - | o 11 : a2 - test + | o 10 : a2 - test |/ - o 10 testbookmark: a1__ - test + o 9 testbookmark: a1__ - test | - | o 9 : a3 - test + | o 8 : a3 - test | | - | x 8 : a2 - test + | x 7 : a2 - test | | - | x 7 : a1_ - test + | x 6 : a1_ - test |/ o 0 : a0 - test @@ -1048,38 +1042,38 @@ normally the unstable changeset would be solve first $ hg log -G - @ 12 : add new file bumped - test + @ 11 : add new file bumped - test | - | o 11 : a2 - test + | o 10 : a2 - test |/ - o 10 testbookmark: a1__ - test + o 9 testbookmark: a1__ - test | - | o 9 : a3 - test + | o 8 : a3 - test | | - | x 8 : a2 - test + | x 7 : a2 - test | | - | x 7 : a1_ - test + | x 6 : a1_ - test |/ o 0 : a0 - test - $ hg evolve -r 12 --phasedivergent - recreate:[12] add new file bumped - atop:[11] a2 + $ hg evolve -r "desc('add new file bumped')" --phasedivergent + recreate:[11] add new file bumped + atop:[10] a2 computing new diff committed as f15d32934071 working directory is now at f15d32934071 $ hg evolve --any - move:[9] a3 - atop:[13] bumped update to d952e93add6f: + move:[8] a3 + atop:[12] bumped update to d952e93add6f: working directory is now at cce26b684bfe $ glog - @ 14:cce26b684bfe@default(draft) a3 + @ 13:cce26b684bfe@default(draft) a3 | - o 13:f15d32934071@default(draft) bumped update to d952e93add6f: + o 12:f15d32934071@default(draft) bumped update to d952e93add6f: | - o 11:d952e93add6f@mybranch(public) a2 + o 10:d952e93add6f@mybranch(public) a2 | - o 10:9f8b83c2e7f3@default(public) a1__ + o 9:9f8b83c2e7f3@default(public) a1__ | o 0:07c1c36d9ef0@default(public) a0 @@ -1096,69 +1090,69 @@ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ printf "newline\nnewline\n" >> a $ hg log -G - o 16 : add gh - test + o 15 : add gh - test | - | o 15 : add gg - test + | o 14 : add gg - test |/ - @ 14 : a3 - test + @ 13 : a3 - test | - o 13 : bumped update to d952e93add6f: - test + o 12 : bumped update to d952e93add6f: - test | - o 11 : a2 - test + o 10 : a2 - test | - o 10 testbookmark: a1__ - test + o 9 testbookmark: a1__ - test | o 0 : a0 - test $ hg amend - 2 new unstable changesets - $ hg log -G - @ 18 : a3 - test + 2 new orphan changesets + $ glog + @ 16:edc3c9de504e@default(draft) a3 | - | o 16 : add gh - test + | o 15:beb41503aa3e@default(draft) add gh | | - | | o 15 : add gg - test + | | o 14:27247fcb2df6@default(draft) add gg | |/ - | x 14 : a3 - test + | x 13:cce26b684bfe@default(draft) a3 |/ - o 13 : bumped update to d952e93add6f: - test + o 12:f15d32934071@default(draft) bumped update to d952e93add6f: | - o 11 : a2 - test + o 10:d952e93add6f@mybranch(public) a2 | - o 10 testbookmark: a1__ - test + o 9:9f8b83c2e7f3@default(public) a1__ | - o 0 : a0 - test + o 0:07c1c36d9ef0@default(public) a0 Evolving an empty revset should do nothing - $ hg evolve --rev "16 and 15" + $ hg evolve --rev "beb41503aa3e and 27247fcb2df6" set of specified revisions is empty [1] - $ hg evolve --rev "14::" --phasedivergent + $ hg evolve --rev "cce26b684bfe::" --phasedivergent no phasedivergent changesets in specified revisions (do you want to use --orphan) [2] - $ hg evolve --rev "14::" --orphan - move:[15] add gg - atop:[18] a3 - move:[16] add gh - atop:[18] a3 + $ hg evolve --rev "cce26b684bfe::" --orphan + move:[14] add gg + atop:[16] a3 + move:[15] add gh + atop:[16] a3 working directory is now at e02107f98737 - $ hg log -G - @ 20 : add gh - test + $ glog + @ 18:e02107f98737@default(draft) add gh | - | o 19 : add gg - test + | o 17:24e63b319adf@default(draft) add gg |/ - o 18 : a3 - test + o 16:edc3c9de504e@default(draft) a3 | - o 13 : bumped update to d952e93add6f: - test + o 12:f15d32934071@default(draft) bumped update to d952e93add6f: | - o 11 : a2 - test + o 10:d952e93add6f@mybranch(public) a2 | - o 10 testbookmark: a1__ - test + o 9:9f8b83c2e7f3@default(public) a1__ | - o 0 : a0 - test + o 0:07c1c36d9ef0@default(public) a0 Enabling commands selectively, no command enabled, next and fold and unknown $ cat >> $HGRCPATH < EOF Check hg evolve --rev on singled out commit - $ hg up 19 -C + $ hg up 24e63b319adf -C 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit j1 $ mkcommit j2 @@ -1272,28 +1266,28 @@ $ echo "hello" > j4 $ hg add j4 $ hg amend - 2 new unstable changesets - $ glog -r "18::" - @ 25:8dc373be86d9@default(draft) add j1 + 2 new orphan changesets + $ glog -r "edc3c9de504e::" + @ 22:8dc373be86d9@default(draft) add j1 | - | o 23:d7eadcf6eccd@default(draft) add j3 + | o 21:d7eadcf6eccd@default(draft) add j3 | | - | o 22:2223ea564144@default(draft) add j2 + | o 20:2223ea564144@default(draft) add j2 | | - | x 21:48490698b269@default(draft) add j1 + | x 19:48490698b269@default(draft) add j1 |/ - | o 20:e02107f98737@default(draft) add gh + | o 18:e02107f98737@default(draft) add gh | | - o | 19:24e63b319adf@default(draft) add gg + o | 17:24e63b319adf@default(draft) add gg |/ - o 18:edc3c9de504e@default(draft) a3 + o 16:edc3c9de504e@default(draft) a3 | ~ - $ hg evolve --rev 23 --any + $ hg evolve --rev d7eadcf6eccd --any abort: cannot specify both "--rev" and "--any" [255] - $ hg evolve --rev 23 + $ hg evolve --rev d7eadcf6eccd cannot solve instability of d7eadcf6eccd, skipping Check that uncommit respects the allowunstable option @@ -1313,74 +1307,74 @@ $ hg uncommit --all new changeset is empty (use 'hg prune .' to remove it) - $ glog -r "18::" - @ 26:044804d0c10d@default(draft) add j1 + $ glog -r "edc3c9de504e::" + @ 23:044804d0c10d@default(draft) add j1 | - | o 23:d7eadcf6eccd@default(draft) add j3 + | o 21:d7eadcf6eccd@default(draft) add j3 | | - | o 22:2223ea564144@default(draft) add j2 + | o 20:2223ea564144@default(draft) add j2 | | - | x 21:48490698b269@default(draft) add j1 + | x 19:48490698b269@default(draft) add j1 |/ - | o 20:e02107f98737@default(draft) add gh + | o 18:e02107f98737@default(draft) add gh | | - o | 19:24e63b319adf@default(draft) add gg + o | 17:24e63b319adf@default(draft) add gg |/ - o 18:edc3c9de504e@default(draft) a3 + o 16:edc3c9de504e@default(draft) a3 | ~ Check that prune respects the allowunstable option $ hg up -C . 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg up 20 + $ hg up e02107f98737 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg evolve --all nothing to evolve on current working copy parent (2 other orphan in the repository, do you want --any or --rev) [2] $ hg evolve --all --any - move:[22] add j2 - atop:[26] add j1 - move:[23] add j3 - atop:[27] add j2 + move:[20] add j2 + atop:[23] add j1 + move:[21] add j3 + atop:[24] add j2 working directory is now at c9a20e2d74aa - $ glog -r "18::" - @ 28:c9a20e2d74aa@default(draft) add j3 + $ glog -r "edc3c9de504e::" + @ 25:c9a20e2d74aa@default(draft) add j3 | - o 27:b0e3066231e2@default(draft) add j2 + o 24:b0e3066231e2@default(draft) add j2 | - o 26:044804d0c10d@default(draft) add j1 + o 23:044804d0c10d@default(draft) add j1 | - | o 20:e02107f98737@default(draft) add gh + | o 18:e02107f98737@default(draft) add gh | | - o | 19:24e63b319adf@default(draft) add gg + o | 17:24e63b319adf@default(draft) add gg |/ - o 18:edc3c9de504e@default(draft) a3 + o 16:edc3c9de504e@default(draft) a3 | ~ - $ hg up 19 + $ hg up 24e63b319adf 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ mkcommit c5_ created new head - $ hg prune '26 + 27' + $ hg prune '044804d0c10d + b0e3066231e2' abort: touch will orphan 1 descendants (see 'hg help evolution.instability') [255] - $ hg prune '19::28' + $ hg prune '24e63b319adf::c9a20e2d74aa' abort: touch will orphan 1 descendants (see 'hg help evolution.instability') [255] - $ hg prune '26::' + $ hg prune '044804d0c10d::' 3 changesets pruned - $ glog -r "18::" - @ 29:2251801b6c91@default(draft) add c5_ + $ glog -r "edc3c9de504e::" + @ 26:2251801b6c91@default(draft) add c5_ | - | o 20:e02107f98737@default(draft) add gh + | o 18:e02107f98737@default(draft) add gh | | - o | 19:24e63b319adf@default(draft) add gg + o | 17:24e63b319adf@default(draft) add gg |/ - o 18:edc3c9de504e@default(draft) a3 + o 16:edc3c9de504e@default(draft) a3 | ~ @@ -1392,20 +1386,20 @@ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ mkcommit unstableifparentisfolded created new head - $ glog -r "18::" - @ 30:68330ac625b8@default(draft) add unstableifparentisfolded + $ glog -r "edc3c9de504e::" + @ 27:68330ac625b8@default(draft) add unstableifparentisfolded | - | o 29:2251801b6c91@default(draft) add c5_ + | o 26:2251801b6c91@default(draft) add c5_ | | - +---o 20:e02107f98737@default(draft) add gh + +---o 18:e02107f98737@default(draft) add gh | | - | o 19:24e63b319adf@default(draft) add gg + | o 17:24e63b319adf@default(draft) add gg |/ - o 18:edc3c9de504e@default(draft) a3 + o 16:edc3c9de504e@default(draft) a3 | ~ - $ hg fold --exact "19::" + $ hg fold --exact "24e63b319adf::" 2 changesets folded Check that evolve shows error while handling split commits @@ -1416,14 +1410,14 @@ > evolution=all > EOF - $ glog -r "18::" - o 31:580886d07058@default(draft) add gg + $ glog -r "edc3c9de504e::" + o 28:580886d07058@default(draft) add gg | - | @ 30:68330ac625b8@default(draft) add unstableifparentisfolded + | @ 27:68330ac625b8@default(draft) add unstableifparentisfolded |/ - | o 20:e02107f98737@default(draft) add gh + | o 18:e02107f98737@default(draft) add gh |/ - o 18:edc3c9de504e@default(draft) a3 + o 16:edc3c9de504e@default(draft) a3 | ~ @@ -1444,28 +1438,28 @@ $ hg commit -m "_pp" $ hg prune --succ "desc(_oo) + desc(_pp)" -r "desc('oo+pp')" --split 1 changesets pruned - 1 new unstable changesets - $ glog -r "18::" - @ 35:7a555adf2b4a@default(draft) _pp + 1 new orphan changesets + $ glog -r "edc3c9de504e::" + @ 32:7a555adf2b4a@default(draft) _pp | - o 34:2be4d2d5bf34@default(draft) _oo + o 31:2be4d2d5bf34@default(draft) _oo | - | o 33:53f0c003e03e@default(draft) add uu + | o 30:53f0c003e03e@default(draft) add uu | | - | x 32:1bf2152f4f82@default(draft) oo+pp + | x 29:1bf2152f4f82@default(draft) oo+pp |/ - | o 31:580886d07058@default(draft) add gg + | o 28:580886d07058@default(draft) add gg | | - o | 30:68330ac625b8@default(draft) add unstableifparentisfolded + o | 27:68330ac625b8@default(draft) add unstableifparentisfolded |/ - | o 20:e02107f98737@default(draft) add gh + | o 18:e02107f98737@default(draft) add gh |/ - o 18:edc3c9de504e@default(draft) a3 + o 16:edc3c9de504e@default(draft) a3 | ~ - $ hg evolve --rev "18::" - move:[33] add uu - atop:[35] _pp + $ hg evolve --rev "edc3c9de504e::" + move:[30] add uu + atop:[32] _pp working directory is now at 43c3f5ef149f @@ -1475,7 +1469,7 @@ $ echo "will be amended" > newfile $ hg commit -m "will be amended" $ hg parents - 37 : will be amended - test + 34 : will be amended - test $ echo "will be evolved safely" >> a $ hg commit -m "will be evolved safely" @@ -1486,38 +1480,38 @@ $ hg commit -m "will cause conflict at evolve" $ glog -r "edc3c9de504e::" - @ 39:02e943732647@default(draft) will cause conflict at evolve + @ 36:02e943732647@default(draft) will cause conflict at evolve | - o 38:f8e30e9317aa@default(draft) will be evolved safely + o 35:f8e30e9317aa@default(draft) will be evolved safely | - o 37:36030b147271@default(draft) will be amended + o 34:36030b147271@default(draft) will be amended | - o 36:43c3f5ef149f@default(draft) add uu + o 33:43c3f5ef149f@default(draft) add uu | - o 35:7a555adf2b4a@default(draft) _pp + o 32:7a555adf2b4a@default(draft) _pp | - o 34:2be4d2d5bf34@default(draft) _oo + o 31:2be4d2d5bf34@default(draft) _oo | - | o 31:580886d07058@default(draft) add gg + | o 28:580886d07058@default(draft) add gg | | - o | 30:68330ac625b8@default(draft) add unstableifparentisfolded + o | 27:68330ac625b8@default(draft) add unstableifparentisfolded |/ - | o 20:e02107f98737@default(draft) add gh + | o 18:e02107f98737@default(draft) add gh |/ - o 18:edc3c9de504e@default(draft) a3 + o 16:edc3c9de504e@default(draft) a3 | ~ $ hg update -q 36030b147271 $ echo "amended" > newfile $ hg amend -m "amended" - 2 new unstable changesets + 2 new orphan changesets - $ hg evolve --rev "37::" - move:[38] will be evolved safely - atop:[41] amended - move:[39] will cause conflict at evolve - atop:[42] will be evolved safely + $ hg evolve --rev "36030b147271::" + move:[35] will be evolved safely + atop:[37] amended + move:[36] will cause conflict at evolve + atop:[38] will be evolved safely merging newfile warning: conflicts while merging newfile! (edit, then use 'hg resolve --mark') evolve failed! @@ -1525,20 +1519,18 @@ abort: unresolved merge conflicts (see hg help resolve) [255] - $ glog -r "36::" --hidden - @ 42:c904da5245b0@default(draft) will be evolved safely + $ glog -r "43c3f5ef149f::" --hidden + @ 38:c904da5245b0@default(draft) will be evolved safely | - o 41:34ae045ec400@default(draft) amended + o 37:34ae045ec400@default(draft) amended | - | x 40:e88bee38ffc2@default(draft) temporary amend commit for 36030b147271 + | o 36:02e943732647@default(draft) will cause conflict at evolve | | - | | o 39:02e943732647@default(draft) will cause conflict at evolve - | | | - | | x 38:f8e30e9317aa@default(draft) will be evolved safely - | |/ - | x 37:36030b147271@default(draft) will be amended + | x 35:f8e30e9317aa@default(draft) will be evolved safely + | | + | x 34:36030b147271@default(draft) will be amended |/ - o 36:43c3f5ef149f@default(draft) add uu + o 33:43c3f5ef149f@default(draft) add uu | ~ diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-exchange-obsmarkers-case-A3.t --- a/tests/test-exchange-obsmarkers-case-A3.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-exchange-obsmarkers-case-A3.t Tue Oct 10 22:40:41 2017 +0200 @@ -264,7 +264,7 @@ 1 new obsolescence markers obsoleted 1 changesets (run 'hg heads' to see heads, 'hg merge' to merge) - 1 new unstable changesets + 1 new orphan changesets ## post pull state # obstore: main 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-exchange-obsmarkers-case-C1.t --- a/tests/test-exchange-obsmarkers-case-C1.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-exchange-obsmarkers-case-C1.t Tue Oct 10 22:40:41 2017 +0200 @@ -58,7 +58,7 @@ $ mkcommit A $ mkcommit B $ hg prune -qd '0 0' '.~1' - 1 new unstable changesets + 1 new orphan changesets $ hg prune -qd '0 0' . $ hg log -G --hidden x f6fbb35d8ac9 (draft): B diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-inhibit.t --- a/tests/test-inhibit.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-inhibit.t Tue Oct 10 22:40:41 2017 +0200 @@ -100,7 +100,7 @@ $ echo babar > cJ $ hg commit --amend $ hg log -G - @ 9:55c73a90e4b4 add cJ + @ 8:55c73a90e4b4 add cJ | o 6:cf5c4f4554ce add cH | @@ -112,7 +112,7 @@ $ hg debugobsinhibit --hidden 18214586bf78 $ hg log -G - @ 9:55c73a90e4b4 add cJ + @ 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -128,7 +128,7 @@ and no divergence $ hg summary - parent: 9:55c73a90e4b4 tip + parent: 8:55c73a90e4b4 tip add cJ branch: default commit: (clean) @@ -146,7 +146,7 @@ $ wc -m .hg/store/obsinhibit | sed -e 's/^[ \t]*//' 20 .hg/store/obsinhibit $ hg log -G - @ 9:55c73a90e4b4 add cJ + @ 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -159,8 +159,8 @@ o 0:54ccbc537fc2 add cA $ hg phase --public 7 - 1 new bumped changesets - $ hg strip 9 + 1 new phase-divergent changesets + $ hg strip 8 0 files updated, 0 files merged, 1 files removed, 0 files unresolved working directory now at cf5c4f4554ce 1 changesets pruned @@ -179,7 +179,7 @@ $ wc -m .hg/store/obsinhibit | sed -e 's/^[ \t]*//' 20 .hg/store/obsinhibit $ hg log -G - o 9:55c73a90e4b4 add cJ + o 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -196,7 +196,7 @@ $ hg update 2 --hidden 2 files updated, 0 files merged, 3 files removed, 0 files unresolved $ hg log -G - o 9:55c73a90e4b4 add cJ + o 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -213,10 +213,10 @@ o 0:54ccbc537fc2 add cA - $ hg update 9 + $ hg update 8 4 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg log -G - @ 9:55c73a90e4b4 add cJ + @ 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -235,7 +235,7 @@ $ hg strip --hidden 1:: 3 changesets pruned $ hg log -G - @ 9:55c73a90e4b4 add cJ + @ 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -251,7 +251,7 @@ Bookmark should inhibit all related unstable commits $ hg bookmark -r 2 book1 --hidden $ hg log -G - @ 9:55c73a90e4b4 add cJ + @ 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -276,7 +276,7 @@ bookmark 'book1' deleted 1 changesets pruned $ hg log -G - @ 9:55c73a90e4b4 add cJ + @ 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -294,7 +294,7 @@ bookmark 'book2' deleted 1 changesets pruned $ hg log -G - @ 9:55c73a90e4b4 add cJ + @ 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -397,14 +397,14 @@ $ mkcommit cK created new head $ mkcommit cL - $ hg update -C 9 + $ hg update -C 8 4 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg log -G - o 11:53a94305e133 add cL + o 10:53a94305e133 add cL | - o 10:ad78ff7d621f add cK + o 9:ad78ff7d621f add cK | - | @ 9:55c73a90e4b4 add cJ + | @ 8:55c73a90e4b4 add cJ | | | | o 7:18214586bf78 add cJ | |/ @@ -416,10 +416,10 @@ |/ o 0:54ccbc537fc2 add cA - $ hg strip --hidden 10: + $ hg strip --hidden 9: 2 changesets pruned $ hg log -G - @ 9:55c73a90e4b4 add cJ + @ 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -431,21 +431,21 @@ | o 0:54ccbc537fc2 add cA - $ hg rebase -s 10 -d 3 - abort: hidden revision '3'! + $ hg rebase -s 9 -d 3 + abort: hidden revision '9'! (use --hidden to access hidden revisions; pruned) [255] $ hg rebase -r ad78ff7d621f -r 53a94305e133 -d 2db36d8066ff --config experimental.rebaseskipobsolete=0 + Warning: accessing hidden changesets ad78ff7d621f,53a94305e133 for write operation Warning: accessing hidden changesets 2db36d8066ff for write operation - Warning: accessing hidden changesets ad78ff7d621f,53a94305e133 for write operation - rebasing 10:ad78ff7d621f "add cK" - rebasing 11:53a94305e133 "add cL" + rebasing 9:ad78ff7d621f "add cK" + rebasing 10:53a94305e133 "add cL" (tip) $ hg log -G - o 13:2f7b7704d714 add cL + o 12:2f7b7704d714 add cL | - o 12:fe1634cbe235 add cK + o 11:fe1634cbe235 add cK | - | @ 9:55c73a90e4b4 add cJ + | @ 8:55c73a90e4b4 add cJ | | | | o 7:18214586bf78 add cJ | |/ @@ -476,7 +476,7 @@ $ hg strip --hidden 1:: 5 changesets pruned $ hg log -G - @ 9:55c73a90e4b4 add cJ + @ 8:55c73a90e4b4 add cJ | | o 7:18214586bf78 add cJ |/ @@ -494,13 +494,13 @@ $ mkcommit cM $ mkcommit cN $ hg log -G - @ 16:a438c045eb37 add cN + @ 15:a438c045eb37 add cN | - o 15:2d66e189f5b5 add cM + o 14:2d66e189f5b5 add cM | - o 14:d66ccb8c5871 add cL + o 13:d66ccb8c5871 add cL | - | o 9:55c73a90e4b4 add cJ + | o 8:55c73a90e4b4 add cJ | | o | 7:18214586bf78 add cJ |/ @@ -512,20 +512,20 @@ | o 0:54ccbc537fc2 add cA - $ hg up 15 + $ hg up 14 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo "mmm" >> cM $ hg amend $ hg log -G - @ 18:210589181b14 add cM + @ 16:210589181b14 add cM | - | o 16:a438c045eb37 add cN + | o 15:a438c045eb37 add cN | | - | o 15:2d66e189f5b5 add cM + | o 14:2d66e189f5b5 add cM |/ - o 14:d66ccb8c5871 add cL + o 13:d66ccb8c5871 add cL | - | o 9:55c73a90e4b4 add cJ + | o 8:55c73a90e4b4 add cJ | | o | 7:18214586bf78 add cJ |/ @@ -539,18 +539,18 @@ Check that rebasing a commit twice makes the commit visible again - $ hg rebase -d 18 -r 16 --keep - rebasing 16:a438c045eb37 "add cN" - $ hg log -r 14:: -G - o 19:104eed5354c7 add cN + $ hg rebase -d 16 -r 15 --keep + rebasing 15:a438c045eb37 "add cN" + $ hg log -r 13:: -G + o 17:104eed5354c7 add cN | - @ 18:210589181b14 add cM + @ 16:210589181b14 add cM | - | o 16:a438c045eb37 add cN + | o 15:a438c045eb37 add cN | | - | o 15:2d66e189f5b5 add cM + | o 14:2d66e189f5b5 add cM |/ - o 14:d66ccb8c5871 add cL + o 13:d66ccb8c5871 add cL | ~ $ hg strip -r 210589181b14 @@ -561,18 +561,18 @@ Using a hash prefix solely made of digits should work $ hg update 210589181 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg rebase -d 18 -r 16 --keep - rebasing 16:a438c045eb37 "add cN" - $ hg log -r 14:: -G - o 19:104eed5354c7 add cN + $ hg rebase -d 16 -r 15 --keep + rebasing 15:a438c045eb37 "add cN" + $ hg log -r 13:: -G + o 17:104eed5354c7 add cN | - @ 18:210589181b14 add cM + @ 16:210589181b14 add cM | - | o 16:a438c045eb37 add cN + | o 15:a438c045eb37 add cN | | - | o 15:2d66e189f5b5 add cM + | o 14:2d66e189f5b5 add cM |/ - o 14:d66ccb8c5871 add cL + o 13:d66ccb8c5871 add cL | ~ @@ -583,25 +583,25 @@ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved working directory now at d66ccb8c5871 2 changesets pruned - $ hg log -r 14:: -G -T '{rev}:{node|short} {desc|firstline} {bookmarks}\n' - o 16:a438c045eb37 add cN + $ hg log -r 13:: -G -T '{rev}:{node|short} {desc|firstline} {bookmarks}\n' + o 15:a438c045eb37 add cN | - o 15:2d66e189f5b5 add cM + o 14:2d66e189f5b5 add cM | - @ 14:d66ccb8c5871 add cL foo + @ 13:d66ccb8c5871 add cL foo | ~ Check that --hidden used with inhibit does not hide every obsolete commit We show the log before and after a log -G --hidden, they should be the same $ hg log -G - o 16:a438c045eb37 add cN + o 15:a438c045eb37 add cN | - o 15:2d66e189f5b5 add cM + o 14:2d66e189f5b5 add cM | - @ 14:d66ccb8c5871 add cL + @ 13:d66ccb8c5871 add cL | - | o 9:55c73a90e4b4 add cJ + | o 8:55c73a90e4b4 add cJ | | o | 7:18214586bf78 add cJ |/ @@ -614,29 +614,25 @@ o 0:54ccbc537fc2 add cA $ hg log -G --hidden - x 19:104eed5354c7 add cN + x 17:104eed5354c7 add cN | - x 18:210589181b14 add cM + x 16:210589181b14 add cM | - | x 17:b3c3274523f9 temporary amend commit for 2d66e189f5b5 + | o 15:a438c045eb37 add cN | | - | | o 16:a438c045eb37 add cN - | |/ - | o 15:2d66e189f5b5 add cM + | o 14:2d66e189f5b5 add cM |/ - @ 14:d66ccb8c5871 add cL + @ 13:d66ccb8c5871 add cL | - | x 13:2f7b7704d714 add cL + | x 12:2f7b7704d714 add cL | | - | x 12:fe1634cbe235 add cK + | x 11:fe1634cbe235 add cK | | - | | x 11:53a94305e133 add cL + | | x 10:53a94305e133 add cL | | | - | | x 10:ad78ff7d621f add cK + | | x 9:ad78ff7d621f add cK | | | - | | | o 9:55c73a90e4b4 add cJ - | | | | - +-------x 8:e84f73d9ad36 temporary amend commit for 18214586bf78 + | | | o 8:55c73a90e4b4 add cJ | | | | o-----+ 7:18214586bf78 add cJ / / / @@ -656,13 +652,13 @@ $ hg log -G - o 16:a438c045eb37 add cN + o 15:a438c045eb37 add cN | - o 15:2d66e189f5b5 add cM + o 14:2d66e189f5b5 add cM | - @ 14:d66ccb8c5871 add cL + @ 13:d66ccb8c5871 add cL | - | o 9:55c73a90e4b4 add cJ + | o 8:55c73a90e4b4 add cJ | | o | 7:18214586bf78 add cJ |/ @@ -700,7 +696,7 @@ > evolution=createmarkers > EOF - $ hg up 15 + $ hg up 14 1 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (2d66e189f5b5) $ cat >> $HGRCPATH < cM $ hg amend $ hg log -G - @ 21:721c3c279519 add cM + @ 18:721c3c279519 add cM | - | o 16:a438c045eb37 add cN + | o 15:a438c045eb37 add cN | | - | x 15:2d66e189f5b5 add cM + | x 14:2d66e189f5b5 add cM |/ - o 14:d66ccb8c5871 add cL + o 13:d66ccb8c5871 add cL | o 7:18214586bf78 add cJ | @@ -743,11 +739,11 @@ $ hg up a438c045eb37 2 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg rebase -r 15:: -d 21 --config experimental.rebaseskipobsolete=True - note: not rebasing 15:2d66e189f5b5 "add cM", already in destination as 21:721c3c279519 "add cM" - rebasing 16:a438c045eb37 "add cN" + $ hg rebase -r 14:: -d 18 --config experimental.rebaseskipobsolete=True + note: not rebasing 14:2d66e189f5b5 "add cM", already in destination as 18:721c3c279519 "add cM" (tip) + rebasing 15:a438c045eb37 "add cN" $ hg up -q 2d66e189f5b5 # To inhibit it as the rest of test depends on it - $ hg up -q 21 + $ hg up -q 18 Directaccess should load after some extensions precised in the conf With no extension specified: @@ -817,48 +813,73 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 2 new obsolescence markers + 1 new obsolescence markers Create a stack (obsolete with successor in dest) -> (not obsolete) and rebase it. We expect to not see the stack at the end of the rebase. - $ hg log -G -r "25::" - @ 25:71eb4f100663 add pk + $ hg log -G -r "003a4735afde::" + x 20:003a4735afde add pk | ~ - $ hg up -C 22 + $ hg log -G + @ 21:71eb4f100663 add pk + | + | o 19:46cb6daad392 add cN + |/ + o 18:721c3c279519 add cM + | + | o 16:210589181b14 add cM + |/ + | o 14:2d66e189f5b5 add cM + |/ + o 13:d66ccb8c5871 add cL + | + | o 8:55c73a90e4b4 add cJ + | | + o | 7:18214586bf78 add cJ + |/ + o 6:cf5c4f4554ce add cH + | + o 5:5419eb264a33 add cG + | + o 4:98065434e5c6 add cE + | + o 0:54ccbc537fc2 add cA + + $ hg up -C 46cb6daad392 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit Dk - $ hg prune 22 -s 25 + $ hg prune 46cb6daad392 -s 71eb4f100663 1 changesets pruned - $ hg rebase -s 22 -d 25 --config experimental.rebaseskipobsolete=True - note: not rebasing 22:46cb6daad392 "add cN", already in destination as 25:71eb4f100663 "add pk" - rebasing 26:7ad60e760c7b "add Dk" (tip) - $ hg log -G -r "25::" - @ 27:1192fa9fbc68 add Dk + $ hg rebase -s 46cb6daad392 -d 71eb4f100663 --config experimental.rebaseskipobsolete=True + note: not rebasing 19:46cb6daad392 "add cN", already in destination as 21:71eb4f100663 "add pk" + rebasing 22:7ad60e760c7b "add Dk" (tip) + $ hg log -G -r "71eb4f100663::" + @ 23:1192fa9fbc68 add Dk | - o 25:71eb4f100663 add pk + o 21:71eb4f100663 add pk | ~ Create a stack (obsolete with succ in dest) -> (not obsolete) -> (not obsolete). Rebase the first two revs of the stack onto dest, we expect to see one new revision on the destination and everything visible. - $ hg up 25 + $ hg up 71eb4f100663 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit Dl created new head $ mkcommit Dp $ mkcommit Do $ hg log -G -r "71eb4f100663::" - @ 30:b517facce1ef add Do + @ 26:b517facce1ef add Do | - o 29:c5a47ab27c2e add Dp + o 25:c5a47ab27c2e add Dp | - o 28:8c1c2edbaf1b add Dl + o 24:8c1c2edbaf1b add Dl | - | o 27:1192fa9fbc68 add Dk + | o 23:1192fa9fbc68 add Dk |/ - o 25:71eb4f100663 add pk + o 21:71eb4f100663 add pk | ~ $ hg prune 8c1c2edbaf1b -s 1192fa9fbc68 @@ -866,20 +887,20 @@ $ hg up 71eb4f100663 0 files updated, 0 files merged, 3 files removed, 0 files unresolved $ hg rebase -r "8c1c2edbaf1b + c5a47ab27c2e" --keep -d 1192fa9fbc68 --config experimental.rebaseskipobsolete=True - note: not rebasing 28:8c1c2edbaf1b "add Dl", already in destination as 27:1192fa9fbc68 "add Dk" - rebasing 29:c5a47ab27c2e "add Dp" + note: not rebasing 24:8c1c2edbaf1b "add Dl", already in destination as 23:1192fa9fbc68 "add Dk" + rebasing 25:c5a47ab27c2e "add Dp" $ hg log -G -r "71eb4f100663::" - o 31:7d8affb1f604 add Dp + o 27:7d8affb1f604 add Dp | - | o 30:b517facce1ef add Do + | o 26:b517facce1ef add Do | | - | o 29:c5a47ab27c2e add Dp + | o 25:c5a47ab27c2e add Dp | | - | o 28:8c1c2edbaf1b add Dl + | o 24:8c1c2edbaf1b add Dl | | - o | 27:1192fa9fbc68 add Dk + o | 23:1192fa9fbc68 add Dk |/ - @ 25:71eb4f100663 add pk + @ 21:71eb4f100663 add pk | ~ @@ -887,17 +908,17 @@ and only see the top revision added to destination. We don\'t expect 29 to be skipped as we used --keep before. $ hg rebase -s 8c1c2edbaf1b -d 1192fa9fbc68 --config experimental.rebaseskipobsolete=True - note: not rebasing 28:8c1c2edbaf1b "add Dl", already in destination as 27:1192fa9fbc68 "add Dk" - rebasing 29:c5a47ab27c2e "add Dp" - rebasing 30:b517facce1ef "add Do" + note: not rebasing 24:8c1c2edbaf1b "add Dl", already in destination as 23:1192fa9fbc68 "add Dk" + rebasing 25:c5a47ab27c2e "add Dp" + rebasing 26:b517facce1ef "add Do" $ hg log -G -r "71eb4f100663::" - o 32:1d43fff9e26f add Do + o 28:1d43fff9e26f add Do | - o 31:7d8affb1f604 add Dp + o 27:7d8affb1f604 add Dp | - o 27:1192fa9fbc68 add Dk + o 23:1192fa9fbc68 add Dk | - @ 25:71eb4f100663 add pk + @ 21:71eb4f100663 add pk | ~ diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-metaedit.t --- a/tests/test-metaedit.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-metaedit.t Tue Oct 10 22:40:41 2017 +0200 @@ -80,11 +80,11 @@ ---- $ hg log -G - @ 8 : F - test + @ 7 : F - test | - o 7 : E - test + o 6 : E - test | - | o 6 : D2 - test + | o 5 : D2 - test |/ o 3 : C - test | @@ -124,13 +124,10 @@ $ hg metaedit --user foobar 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log --template '{rev}: {author}\n' -r 'desc(F):' --hidden - 5: test - 6: test 7: test - 8: test - 9: foobar + 8: foobar $ hg log --template '{rev}: {author}\n' -r . - 9: foobar + 8: foobar TODO: support this $ hg metaedit '.^::.' @@ -139,11 +136,11 @@ $ HGEDITOR=cat hg metaedit '.^::.' --fold HG: This is a fold of 2 changesets. - HG: Commit message of changeset 7. + HG: Commit message of changeset 6. E - HG: Commit message of changeset 9. + HG: Commit message of changeset 8. F @@ -160,7 +157,7 @@ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ glog -r . - @ 10:a08d35fd7d9d@default(draft) E + @ 9:a08d35fd7d9d@default(draft) E | ~ @@ -182,7 +179,7 @@ nothing changed $ glog -r '.^::.' - @ 10:a08d35fd7d9d@default(draft) E + @ 9:a08d35fd7d9d@default(draft) E | o 3:3260958f1169@default(draft) C | @@ -196,20 +193,20 @@ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log -r '.^::.' --template '{rev}: {desc|firstline}\n' 3: C - 11: E + 10: E $ hg up .^ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg metaedit --user foobar2 tip $ hg log --template '{rev}: {author}\n' -r "user(foobar):" --hidden - 9: foobar + 8: foobar + 9: test 10: test - 11: test - 12: foobar2 + 11: foobar2 $ hg diff -r "10" -r "11" --hidden 'fold' one commit $ HGUSER=foobar3 hg metaedit "desc(D2)" --fold -U --config 1 changesets folded $ hg log -r "tip" --template '{rev}: {author}\n' - 13: foobar3 + 12: foobar3 diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-obsconvert.t --- a/tests/test-obsconvert.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-obsconvert.t Tue Oct 10 22:40:41 2017 +0200 @@ -16,49 +16,33 @@ Test conversion between obsolete marker formats $ hg debugobsolete e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'ef1': '*', 'user': 'test'} (glob) - a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'ef1': '*', 'user': 'test'} (glob) b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'ef1': '*', 'user': 'test'} (glob) 384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'ef1': '*', 'user': 'test'} (glob) 949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'ef1': '*', 'user': 'test'} (glob) $ hg debugobsconvert --new-format 0 Old store is version 1, will rewrite in version 0 Done! $ hg debugobsolete e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'ef1': '*', 'user': 'test'} (glob) - a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'ef1': '*', 'user': 'test'} (glob) b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'ef1': '*', 'user': 'test'} (glob) 384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'ef1': '*', 'user': 'test'} (glob) 949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'ef1': '*', 'user': 'test'} (glob) $ hg debugobsconvert --new-format 0 abort: New format is the same as the old format, not upgrading! [255] $ hg debugobsolete e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'ef1': '*', 'user': 'test'} (glob) - a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'ef1': '*', 'user': 'test'} (glob) b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'ef1': '*', 'user': 'test'} (glob) 384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'ef1': '*', 'user': 'test'} (glob) 949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'ef1': '*', 'user': 'test'} (glob) $ hg debugobsconvert --new-format 1 Old store is version 0, will rewrite in version 1 Done! $ hg debugobsolete e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'ef1': '*', 'user': 'test'} (glob) - a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'ef1': '*', 'user': 'test'} (glob) b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'ef1': '*', 'user': 'test'} (glob) 384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'ef1': '*', 'user': 'test'} (glob) 949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'ef1': '*', 'user': 'test'} (glob) Test that the default is some reasonably modern format (first downgrade) $ hg debugobsconvert --new-format 0 @@ -69,10 +53,6 @@ Done! $ hg debugobsolete e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'ef1': '*', 'user': 'test'} (glob) - a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'ef1': '*', 'user': 'test'} (glob) b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'ef1': '*', 'user': 'test'} (glob) 384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'ef1': '*', 'user': 'test'} (glob) 949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'ef1': '*', 'user': 'test'} (glob) diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-obsolete-push.t --- a/tests/test-obsolete-push.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-obsolete-push.t Tue Oct 10 22:40:41 2017 +0200 @@ -26,7 +26,7 @@ $ hg phase --secret --force . $ hg prune 0 1 2 changesets pruned - 1 new unstable changesets + 1 new orphan changesets $ glog --hidden @ 2:244232c2222a@default(secret) C | diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-obsolete.t --- a/tests/test-obsolete.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-obsolete.t Tue Oct 10 22:40:41 2017 +0200 @@ -134,7 +134,7 @@ working directory parent is obsolete! (0d3f46688ccc) (use 'hg evolve' to update to its successor: 725c380fe99b) $ mkcommit d # 5 (on 3) - 1 new unstable changesets + 1 new orphan changesets $ qlog -r 'obsolete()' 3 - 0d3f46688ccc @@ -145,7 +145,7 @@ $ qlog -r 'suspended()' 3 - 0d3f46688ccc - $ qlog -r 'unstable()' + $ qlog -r "orphan()" 5 - a7a6f2b5d8a5 @@ -175,7 +175,7 @@ $ hg push ../other-new pushing to ../other-new searching for changes - abort: push includes unstable changeset: a7a6f2b5d8a5! + abort: push includes orphan changeset: a7a6f2b5d8a5! (use 'hg evolve' to get a stable history or --force to ignore warnings) [255] $ hg push -f ../other-new @@ -210,7 +210,7 @@ working directory parent is obsolete! (0d3f46688ccc) $ mkcommit obsol_d # 6 created new head - 1 new unstable changesets + 1 new orphan changesets $ hg debugobsolete `getid 5` `getid 6` obsoleted 1 changesets $ qlog @@ -230,7 +230,7 @@ $ hg push ../other-new pushing to ../other-new searching for changes - abort: push includes unstable changeset: 95de7fc6918d! + abort: push includes orphan changeset: 95de7fc6918d! (use 'hg evolve' to get a stable history or --force to ignore warnings) [255] $ hg push ../other-new -f # use f because there is unstability @@ -269,7 +269,7 @@ working directory parent is obsolete! (0d3f46688ccc) $ mkcommit "obsol_d'" # 7 created new head - 1 new unstable changesets + 1 new orphan changesets $ hg debugobsolete `getid 6` `getid 7` obsoleted 1 changesets $ hg pull -R ../other-new . @@ -359,7 +359,7 @@ working directory parent is obsolete! (0d3f46688ccc) $ mkcommit "obsol_d''" created new head - 1 new unstable changesets + 1 new orphan changesets $ hg debugobsolete `getid 7` `getid 8` obsoleted 1 changesets $ cd ../other-new @@ -397,7 +397,7 @@ commit: 1 deleted, 2 unknown (clean) update: 2 new changesets, 2 branch heads (merge) phases: 4 draft - unstable: 1 changesets + orphan: 1 changesets $ qlog 6 - 909a0fb57e5d @@ -520,8 +520,8 @@ #excluded 'whole rebase set is extinct and ignored.' message not in core $ hg rebase -b '3' -d 4 --traceback --config experimental.rebaseskipobsolete=0 rebasing 3:0d3f46688ccc "add obsol_c" - rebasing 8:159dfc9fa5d3 "add obsol_d''" (tip) - 2 new divergent changesets + rebasing 8:159dfc9fa5d3 "add obsol_d''" + 2 new content-divergent changesets $ hg --hidden log -q -r 'successors(3)' 4:725c380fe99b 10:2033b4e49474 @@ -572,7 +572,7 @@ $ cd local $ hg phase --hidden --public 11 - 1 new bumped changesets + 1 new phase-divergent changesets $ hg log -G --template='{rev} - ({phase}) {node|short} {desc}\n' @ 12 - (draft) 6db5e282cb91 add obsol_d''' | @@ -586,19 +586,19 @@ | o 0 - (public) 1f0dee641bb7 add a - $ hg log -r 'bumped()' + $ hg log -r 'phasedivergent()' changeset: 12:6db5e282cb91 tag: tip parent: 10:2033b4e49474 user: test date: Thu Jan 01 00:00:00 1970 +0000 - trouble: bumped + instability: phase-divergent summary: add obsol_d''' $ hg push ../other-new/ pushing to ../other-new/ searching for changes - abort: push includes bumped changeset: 6db5e282cb91! + abort: push includes phase-divergent changeset: 6db5e282cb91! (use 'hg evolve' to get a stable history or --force to ignore warnings) [255] @@ -611,7 +611,7 @@ $ echo 42 >> f $ hg commit --amend --traceback --quiet $ hg log -G - @ changeset: 15:705ab2a6b72e + @ changeset: 14:705ab2a6b72e | tag: tip | parent: 10:2033b4e49474 | user: test @@ -622,7 +622,7 @@ |/ parent: 10:2033b4e49474 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: bumped + | instability: phase-divergent | summary: add obsol_d''' | | o changeset: 11:9468a5f5d8b2 @@ -673,28 +673,28 @@ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit "obsolet_conflicting_d" $ hg summary - parent: 1[46]:50f11e5e3a63 tip (re) + parent: 15:50f11e5e3a63 tip add obsolet_conflicting_d branch: default commit: (clean) update: (2|9|11) new changesets, (3|9|10) branch heads \(merge\) (re) phases: 3 draft - bumped: 1 changesets + phase-divergent: 1 changesets $ hg debugobsolete `getid a7a6f2b5d8a5` `getid 50f11e5e3a63` - $ hg log -r 'divergent()' + $ hg log -r 'contentdivergent()' changeset: 12:6db5e282cb91 parent: 10:2033b4e49474 user: test date: Thu Jan 01 00:00:00 1970 +0000 - trouble: bumped, divergent + instability: phase-divergent, content-divergent summary: add obsol_d''' - changeset: 16:50f11e5e3a63 + changeset: 15:50f11e5e3a63 tag: tip parent: 11:9468a5f5d8b2 user: test date: Thu Jan 01 00:00:00 1970 +0000 - trouble: divergent + instability: content-divergent summary: add obsolet_conflicting_d @@ -707,11 +707,11 @@ [2] $ hg olog @ 0d3f46688ccc (3) add obsol_c - | rewritten(parent) as 2033b4e49474 by test (Thu Jan 01 00:00:00 1970 +0000) - | rewritten as 725c380fe99b by test (Thu Jan 01 00:00:00 1970 +0000) + | rewritten(parent) as 2033b4e49474 by test (*) (glob) + | rewritten as 725c380fe99b by test (*) (glob) | x 4538525df7e2 (2) add c - rewritten as 0d3f46688ccc by test (Thu Jan 01 00:00:00 1970 +0000) + rewritten as 0d3f46688ccc by test (*) (glob) Check import reports new unstable changeset: @@ -722,40 +722,34 @@ (4538525df7e2 has diverged, use 'hg evolve --list --contentdivergent' to resolve the issue) $ hg export 9468a5f5d8b2 | hg import - applying patch from stdin - 1 new unstable changesets + 1 new orphan changesets Relevant marker computation ============================== $ hg log -G --hidden - @ changeset: 17:a5f7a21fe7bc + @ changeset: 16:a5f7a21fe7bc | tag: tip | parent: 2:4538525df7e2 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: add obsol_d'' | - | o changeset: 16:50f11e5e3a63 + | o changeset: 15:50f11e5e3a63 | | parent: 11:9468a5f5d8b2 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: divergent + | | instability: content-divergent | | summary: add obsolet_conflicting_d | | - | | o changeset: 15:705ab2a6b72e + | | o changeset: 14:705ab2a6b72e | | | parent: 10:2033b4e49474 | | | user: test | | | date: Thu Jan 01 00:00:00 1970 +0000 | | | summary: add f | | | - | | | x changeset: 14:33d458d86621 - | | | | user: test - | | | | date: Thu Jan 01 00:00:00 1970 +0000 - | | | | obsolete: pruned - | | | | summary: temporary amend commit for 0b1b6dd009c0 - | | | | | | | x changeset: 13:0b1b6dd009c0 | | |/ parent: 10:2033b4e49474 | | | user: test @@ -767,7 +761,7 @@ | | |/ parent: 10:2033b4e49474 | | | user: test | | | date: Thu Jan 01 00:00:00 1970 +0000 - | | | trouble: bumped, divergent + | | | instability: phase-divergent, content-divergent | | | summary: add obsol_d''' | | | | o | changeset: 11:9468a5f5d8b2 @@ -856,8 +850,7 @@ simple rewrite with a prune attached to it $ hg debugobsolete --rev 15 - 0b1b6dd009c037985363e2290a0b579819f659db 705ab2a6b72e2cd86edb799ebe15f2695f86143e 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 33d458d86621f3186c40bfccd77652f4a122743e 0 {0b1b6dd009c037985363e2290a0b579819f659db} (*) {'ef1': '*', 'user': 'test'} (glob) + a7a6f2b5d8a54b81bc7aa2fba2934ad6d700a79e 50f11e5e3a63806e678c734e525502f522d37e38 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} Transitive rewrite diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-prev-next.t --- a/tests/test-prev-next.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-prev-next.t Tue Oct 10 22:40:41 2017 +0200 @@ -169,7 +169,7 @@ some aspiring children $ hg amend -m 'added b (2)' - 1 new unstable changesets + 1 new orphan changesets $ hg next no children (1 unstable changesets to be evolved here, do you want --evolve?) @@ -209,7 +209,7 @@ next with ambiguity in aspiring children $ hg am -m 'added b (3)' - 2 new unstable changesets + 2 new orphan changesets $ hg next no children (2 unstable changesets to be evolved here, do you want --evolve?) @@ -251,7 +251,7 @@ $ sleep 1 $ hg next --evolve waiting for lock on working directory of $TESTTMP/repo held by process '*' on host '*' (glob) - 1 new unstable changesets + 1 new orphan changesets got lock after [4-6] seconds (re) move:[2] two atop:[3] one diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-prune.t --- a/tests/test-prune.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-prune.t Tue Oct 10 22:40:41 2017 +0200 @@ -63,7 +63,7 @@ $ hg prune 1 1 changesets pruned - 2 new unstable changesets + 2 new orphan changesets $ hg book -i BABAR $ hg debugobsolete 9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'ef1': '*', 'user': 'blah'} (glob) diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-sharing.t --- a/tests/test-sharing.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-sharing.t Tue Oct 10 22:40:41 2017 +0200 @@ -69,10 +69,8 @@ Figure SG02 $ hg shortlog --hidden -G - @ 3:60ffde5765c5 draft fix bug 37 + @ 2:60ffde5765c5 draft fix bug 37 | - | x 2:2a039763c0f4 draft temporary amend commit for f6490818a721 - | | | x 1:f6490818a721 draft prelim change |/ o 0:0dc9c9f6ab91 public create new project @@ -87,7 +85,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 2 new obsolescence markers + 1 new obsolescence markers obsoleted 1 changesets 1 files updated, 0 files merged, 0 files removed, 0 files unresolved updated to "60ffde5765c5: fix bug 37" @@ -108,10 +106,8 @@ Figure SG04 (dev-repo) $ hg shortlog --hidden -G - @ 4:de6151c48e1c draft fix bug 37 + @ 3:de6151c48e1c draft fix bug 37 | - | x 3:ad19d3570adb draft temporary amend commit for 60ffde5765c5 - | | | x 2:60ffde5765c5 draft fix bug 37 |/ | x 1:f6490818a721 draft prelim change @@ -125,12 +121,10 @@ updated to "de6151c48e1c: fix bug 37" 1 other heads for branch "default" $ hg shortlog --hidden -G - @ 4:de6151c48e1c draft fix bug 37 + @ 3:de6151c48e1c draft fix bug 37 | - | x 3:60ffde5765c5 draft fix bug 37 + | x 2:60ffde5765c5 draft fix bug 37 |/ - | x 2:2a039763c0f4 draft temporary amend commit for f6490818a721 - | | | x 1:f6490818a721 draft prelim change |/ o 0:0dc9c9f6ab91 public create new project @@ -143,7 +137,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - 4 new obsolescence markers + 2 new obsolescence markers Now that the fix is public, we cannot amend it any more. $ hg amend -m 'fix bug 37' @@ -159,7 +153,7 @@ Oops, still have draft changesets in dev-repo: push the phase change there. $ hg -R ../dev-repo shortlog -r 'draft()' - 4:de6151c48e1c draft fix bug 37 + 3:de6151c48e1c draft fix bug 37 $ hg push ../dev-repo pushing to ../dev-repo searching for changes @@ -212,7 +206,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 2 new obsolescence markers + 1 new obsolescence markers obsoleted 1 changesets updating bookmark bug15 $ hg -R ../review bookmarks @@ -257,7 +251,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 2 new obsolescence markers + 1 new obsolescence markers obsoleted 1 changesets updating bookmark featureX @@ -272,7 +266,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - 4 new obsolescence markers + 2 new obsolescence markers $ hg -R ../public bookmarks no bookmarks set $ hg push ../review @@ -283,7 +277,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 2 new obsolescence markers + 1 new obsolescence markers obsoleted 1 changesets updating bookmark featureX $ hg -R ../review bookmarks @@ -333,17 +327,15 @@ her change, so now she can publish it. $ cd ../alice $ hg --hidden shortlog -G -r 1:: - @ 4:cbdfbd5a5db2 draft fix bug 15 (v2) + @ 3:cbdfbd5a5db2 draft fix bug 15 (v2) | - | x 3:55dd95168a35 draft temporary amend commit for f91e97234c2b - | | | x 2:f91e97234c2b draft fix bug 15 (v1) |/ o 1:de6151c48e1c public fix bug 37 | ~ $ hg outgoing -q ../public - 4:cbdfbd5a5db2 + 3:cbdfbd5a5db2 $ hg push ../public pushing to ../public searching for changes @@ -358,22 +350,20 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 4 new obsolescence markers + 2 new obsolescence markers (run 'hg heads' to see heads, 'hg merge' to merge) $ hg log -G -q -r 'head()' - o 5:540ba8f317e6 + o 4:540ba8f317e6 | ~ - @ 4:cbdfbd5a5db2 + @ 3:cbdfbd5a5db2 | ~ $ hg --hidden shortlog -G -r 1:: - o 5:540ba8f317e6 public implement feature X (v3) + o 4:540ba8f317e6 public implement feature X (v3) | - | @ 4:cbdfbd5a5db2 draft fix bug 15 (v2) + | @ 3:cbdfbd5a5db2 draft fix bug 15 (v2) |/ - | x 3:55dd95168a35 draft temporary amend commit for f91e97234c2b - | | | x 2:f91e97234c2b draft fix bug 15 (v1) |/ o 1:de6151c48e1c public fix bug 37 @@ -383,7 +373,7 @@ Alice rebases her draft changeset on top of Bob's public changeset and publishes the result. $ hg rebase -d 5 - rebasing 4:cbdfbd5a5db2 "fix bug 15 (v2)" (bug15) + rebasing 3:cbdfbd5a5db2 "fix bug 15 (v2)" (bug15) $ hg push ../public pushing to ../public searching for changes @@ -391,7 +381,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - 3 new obsolescence markers + 2 new obsolescence markers $ hg push ../review pushing to ../review searching for changes @@ -474,10 +464,8 @@ $ echo 'better fix (bob)' >> file1 $ hg amend -u bob -m 'fix bug 24 (v2 by bob)' $ hg --hidden shortlog -G -r 3:: - @ 6:a360947f6faf draft fix bug 24 (v2 by bob) + @ 5:a360947f6faf draft fix bug 24 (v2 by bob) | - | x 5:3466c7f5a149 draft temporary amend commit for 2fe6c4bd32d0 - | | | x 4:2fe6c4bd32d0 draft fix bug 24 (v1) |/ o 3:a06ec1bf97bd public fix bug 15 (v2) @@ -492,56 +480,50 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 2 new obsolescence markers + 1 new obsolescence markers (run 'hg heads' to see heads, 'hg merge' to merge) - 2 new divergent changesets + 2 new content-divergent changesets Figure SG09: multiple heads! divergence! oh my! $ hg --hidden shortlog -G -r 3:: - o 7:e3f99ce9d9cd draft fix bug 24 (v2 by alice) + o 6:e3f99ce9d9cd draft fix bug 24 (v2 by alice) | - | @ 6:a360947f6faf draft fix bug 24 (v2 by bob) + | @ 5:a360947f6faf draft fix bug 24 (v2 by bob) |/ - | x 5:3466c7f5a149 draft temporary amend commit for 2fe6c4bd32d0 - | | | x 4:2fe6c4bd32d0 draft fix bug 24 (v1) |/ o 3:a06ec1bf97bd public fix bug 15 (v2) | ~ $ hg --hidden shortlog -r 'successors(2fe6)' - 6:a360947f6faf draft fix bug 24 (v2 by bob) - 7:e3f99ce9d9cd draft fix bug 24 (v2 by alice) + 5:a360947f6faf draft fix bug 24 (v2 by bob) + 6:e3f99ce9d9cd draft fix bug 24 (v2 by alice) Use evolve to fix the divergence. $ HGMERGE=internal:other hg evolve --contentdivergent - merge:[6] fix bug 24 (v2 by bob) - with: [7] fix bug 24 (v2 by alice) + merge:[5] fix bug 24 (v2 by bob) + with: [6] fix bug 24 (v2 by alice) base: [4] fix bug 24 (v1) 0 files updated, 1 files merged, 0 files removed, 0 files unresolved working directory is now at 5ad6037c046c - $ hg log -q -r 'divergent()' + $ hg log -q -r 'contentdivergent()' Figure SG10: Bob's repository after fixing divergence. $ hg --hidden shortlog -G -r 3:: - @ 9:5ad6037c046c draft fix bug 24 (v2 by bob) + @ 7:5ad6037c046c draft fix bug 24 (v2 by bob) | - | x 8:bcfc9a755ac3 draft temporary amend commit for a360947f6faf - | | - +---x 7:e3f99ce9d9cd draft fix bug 24 (v2 by alice) - | | - | x 6:a360947f6faf draft fix bug 24 (v2 by bob) + | x 6:e3f99ce9d9cd draft fix bug 24 (v2 by alice) |/ - | x 5:3466c7f5a149 draft temporary amend commit for 2fe6c4bd32d0 - | | + | x 5:a360947f6faf draft fix bug 24 (v2 by bob) + |/ | x 4:2fe6c4bd32d0 draft fix bug 24 (v1) |/ o 3:a06ec1bf97bd public fix bug 15 (v2) | ~ - $ hg --hidden shortlog -r 'precursors(9)' - 6:a360947f6faf draft fix bug 24 (v2 by bob) - 7:e3f99ce9d9cd draft fix bug 24 (v2 by alice) + $ hg --hidden shortlog -r 'precursors(5ad6037c046c)' + 5:a360947f6faf draft fix bug 24 (v2 by bob) + 6:e3f99ce9d9cd draft fix bug 24 (v2 by alice) $ cat file1 Do stuff. pretty good fix diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-split.t --- a/tests/test-split.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-split.t Tue Oct 10 22:40:41 2017 +0200 @@ -39,8 +39,7 @@ $ echo "change to a" >> _a $ hg amend $ hg debugobsolete - 1334a80b33c3f9873edab728fbbcf500eab61d2e d2fe56e71366c2c5376c89960c281395062c0619 0 (*) {'ef1': '8', 'user': 'test'} (glob) - 06be89dfe2ae447383f30a2984933352757b6fb4 0 {1334a80b33c3f9873edab728fbbcf500eab61d2e} (*) {'ef1': '0', 'user': 'test'} (glob) + 1334a80b33c3f9873edab728fbbcf500eab61d2e d2fe56e71366c2c5376c89960c281395062c0619 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} To create commits with the number of split $ echo 0 > num @@ -92,17 +91,16 @@ no more change to split $ hg debugobsolete - 1334a80b33c3f9873edab728fbbcf500eab61d2e d2fe56e71366c2c5376c89960c281395062c0619 0 (*) {'ef1': '8', 'user': 'test'} (glob) - 06be89dfe2ae447383f30a2984933352757b6fb4 0 {1334a80b33c3f9873edab728fbbcf500eab61d2e} (*) {'ef1': '0', 'user': 'test'} (glob) + 1334a80b33c3f9873edab728fbbcf500eab61d2e d2fe56e71366c2c5376c89960c281395062c0619 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} d2fe56e71366c2c5376c89960c281395062c0619 2d8abdb827cdf71ca477ef6985d7ceb257c53c1b 033b3f5ae73db67c10de938fb6f26b949aaef172 0 (*) {'ef1': '13', 'user': 'test'} (glob) $ hg log -G - @ changeset: 7:033b3f5ae73d + @ changeset: 6:033b3f5ae73d | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: split2 | - o changeset: 6:2d8abdb827cd + o changeset: 5:2d8abdb827cd | parent: 2:52149352b372 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 @@ -148,15 +146,15 @@ Split a revision specified with -r $ echo "change to b" >> _b $ hg amend -m "_cprim" - 2 new unstable changesets + 2 new orphan changesets $ hg evolve --all - move:[6] split1 - atop:[9] _cprim - move:[7] split2 - atop:[10] split1 + move:[5] split1 + atop:[7] _cprim + move:[6] split2 + atop:[8] split1 working directory is now at * (glob) $ hg log -r "desc(_cprim)" -v -p - changeset: 9:b434287e665c + changeset: 7:b434287e665c parent: 1:37445b16603b user: other-test-user date: Thu Jan 01 00:00:00 1970 +0000 @@ -210,38 +208,36 @@ remaining changes $ hg debugobsolete - 1334a80b33c3f9873edab728fbbcf500eab61d2e d2fe56e71366c2c5376c89960c281395062c0619 0 (*) {'ef1': '8', 'user': 'test'} (glob) - 06be89dfe2ae447383f30a2984933352757b6fb4 0 {1334a80b33c3f9873edab728fbbcf500eab61d2e} (*) {'ef1': '0', 'user': 'test'} (glob) + 1334a80b33c3f9873edab728fbbcf500eab61d2e d2fe56e71366c2c5376c89960c281395062c0619 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} d2fe56e71366c2c5376c89960c281395062c0619 2d8abdb827cdf71ca477ef6985d7ceb257c53c1b 033b3f5ae73db67c10de938fb6f26b949aaef172 0 (*) {'ef1': '13', 'user': 'test'} (glob) - 52149352b372d39b19127d5bd2d488b1b63f9f85 b434287e665ce757ee5463a965cb3d119ca9e893 0 (*) {'ef1': '9', 'user': 'test'} (glob) - 7a4fc25a48a5797bb069563854455aecf738d8f2 0 {52149352b372d39b19127d5bd2d488b1b63f9f85} (*) {'ef1': '0', 'user': 'test'} (glob) + 52149352b372d39b19127d5bd2d488b1b63f9f85 b434287e665ce757ee5463a965cb3d119ca9e893 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'amend', 'user': 'test'} 2d8abdb827cdf71ca477ef6985d7ceb257c53c1b e2b4afde39803bd42bb1374b230fca1b1e8cc868 0 (*) {'ef1': '4', 'user': 'test'} (glob) 033b3f5ae73db67c10de938fb6f26b949aaef172 bb5e4f6020c74e7961a51fda635ea9df9b04dda8 0 (*) {'ef1': '4', 'user': 'test'} (glob) b434287e665ce757ee5463a965cb3d119ca9e893 ead2066d1dbf14833fe1069df1b735e4e9468c40 1188c4216eba37f18a1de6558564601d00ff2143 0 (*) {'ef1': '13', 'user': 'test'} (glob) $ hg evolve --all - move:[10] split1 - atop:[13] split4 - move:[11] split2 - atop:[14] split1 + move:[8] split1 + atop:[11] split4 + move:[9] split2 + atop:[12] split1 working directory is now at d74c6715e706 $ hg log -G - @ changeset: 15:d74c6715e706 + @ changeset: 13:d74c6715e706 | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: split2 | - o changeset: 14:3f134f739075 + o changeset: 12:3f134f739075 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: split1 | - o changeset: 13:1188c4216eba + o changeset: 11:1188c4216eba | user: other-test-user | date: Thu Jan 01 00:00:00 1970 +0000 | summary: split4 | - o changeset: 12:ead2066d1dbf + o changeset: 10:ead2066d1dbf | parent: 1:37445b16603b | user: other-test-user | date: Thu Jan 01 00:00:00 1970 +0000 @@ -265,19 +261,19 @@ $ echo "changetofilea" > _a $ hg amend $ hg book - bookA 17:7a6b35779b85 - * bookB 17:7a6b35779b85 - $ hg log -G -r "14::" - @ changeset: 17:7a6b35779b85 + bookA 14:7a6b35779b85 + * bookB 14:7a6b35779b85 + $ hg log -G -r "3f134f739075::" + @ changeset: 14:7a6b35779b85 | bookmark: bookA | bookmark: bookB | tag: tip - | parent: 14:3f134f739075 + | parent: 12:3f134f739075 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: split2 | - o changeset: 14:3f134f739075 + o changeset: 12:3f134f739075 | user: test ~ date: Thu Jan 01 00:00:00 1970 +0000 summary: split1 @@ -308,8 +304,8 @@ created new head Done splitting? [yN] y - $ hg log -G -r "14::" - @ changeset: 19:452a26648478 + $ hg log -G -r "3f134f739075::" + @ changeset: 16:452a26648478 | bookmark: bookA | bookmark: bookB | tag: tip @@ -317,20 +313,20 @@ | date: Thu Jan 01 00:00:00 1970 +0000 | summary: split6 | - o changeset: 18:1315679b77dc - | parent: 14:3f134f739075 + o changeset: 15:1315679b77dc + | parent: 12:3f134f739075 | user: victor | date: Thu Jan 01 00:00:00 1970 +0000 | summary: split5 | - o changeset: 14:3f134f739075 + o changeset: 12:3f134f739075 | user: test ~ date: Thu Jan 01 00:00:00 1970 +0000 summary: split1 $ hg book - bookA 19:452a26648478 - * bookB 19:452a26648478 + bookA 16:452a26648478 + * bookB 16:452a26648478 Lastest revision is selected if multiple are given to -r $ hg split -r "desc(_a)::" @@ -416,7 +412,7 @@ $ hg commit -m "Works on mytopic" babar celeste --user victor active topic 'mytopic' grew its first changeset $ hg log -r . - changeset: 21:26f72cfaf036 + changeset: 18:26f72cfaf036 branch: new-branch tag: tip topic: mytopic @@ -425,7 +421,7 @@ summary: Works on mytopic $ hg summary - parent: 21:26f72cfaf036 tip + parent: 18:26f72cfaf036 tip Works on mytopic branch: new-branch commit: 2 unknown (clean) @@ -472,15 +468,15 @@ Check that the topic is still here $ hg log -r "tip~1::" - changeset: 22:addcf498f19e + changeset: 19:addcf498f19e branch: new-branch topic: mytopic - parent: 20:fdb403258632 + parent: 17:fdb403258632 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: split7 - changeset: 23:2532b288af61 + changeset: 20:2532b288af61 branch: new-branch tag: tip topic: mytopic diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-stabilize-conflict.t --- a/tests/test-stabilize-conflict.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-stabilize-conflict.t Tue Oct 10 22:40:41 2017 +0200 @@ -65,7 +65,7 @@ $ safesed 's/huit/eight/' babar $ hg diff diff -r 9d5daf8bd956 babar - --- a/babar Thu Jan 01 00:00:00 1970 +0000 + --- a/babar * (glob) +++ b/babar * (glob) @@ -5,6 +5,6 @@ cinq @@ -76,21 +76,21 @@ neuf dix $ hg amend - 1 new unstable changesets + 1 new orphan changesets $ hg evolve move:[2] babar count up to fifteen - atop:[4] babar count up to ten + atop:[3] babar count up to ten merging babar working directory is now at 71c18f70c34f $ hg resolve -l $ hg log -G - @ changeset: 5:71c18f70c34f + @ changeset: 4:71c18f70c34f | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: babar count up to fifteen | - o changeset: 4:5977072d13c5 + o changeset: 3:5977072d13c5 | parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 @@ -109,12 +109,12 @@ $ hg gdown gdown have been deprecated in favor of previous 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - [4] babar count up to ten + [3] babar count up to ten $ safesed 's/dix/ten/' babar $ hg diff diff -r 5977072d13c5 babar --- a/babar Thu Jan 01 00:00:00 1970 +0000 - +++ b/babar * (glob) + +++ b/babar Thu Jan 01 00:00:00 1970 +0000 @@ -7,4 +7,4 @@ sept eight @@ -122,10 +122,10 @@ -dix +ten $ hg amend - 1 new unstable changesets + 1 new orphan changesets $ hg evolve - move:[5] babar count up to fifteen - atop:[7] babar count up to ten + move:[4] babar count up to fifteen + atop:[5] babar count up to ten merging babar warning: conflicts while merging babar! (edit, then use 'hg resolve --mark') evolve failed! @@ -135,20 +135,20 @@ $ hg resolve -l U babar $ hg log -G - @ changeset: 7:e04690b09bc6 + @ changeset: 5:e04690b09bc6 | tag: tip | parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: babar count up to ten | - | o changeset: 5:71c18f70c34f + | o changeset: 4:71c18f70c34f | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: babar count up to fifteen | | - | x changeset: 4:5977072d13c5 + | x changeset: 3:5977072d13c5 |/ parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 @@ -168,16 +168,16 @@ $ hg resolve --all -m (no more unresolved files) $ hg evolve --continue - grafting 5:71c18f70c34f "babar count up to fifteen" + grafting 4:71c18f70c34f "babar count up to fifteen" $ hg resolve -l $ hg log -G - @ changeset: 8:1836b91c6c1d + @ changeset: 6:1836b91c6c1d | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: babar count up to fifteen | - o changeset: 7:e04690b09bc6 + o changeset: 5:e04690b09bc6 | parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 @@ -196,12 +196,12 @@ $ hg gdown gdown have been deprecated in favor of previous 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - [7] babar count up to ten + [5] babar count up to ten $ safesed 's/ten/zehn/' babar $ hg diff diff -r e04690b09bc6 babar --- a/babar Thu Jan 01 00:00:00 1970 +0000 - +++ b/babar * (glob) + +++ b/babar Thu Jan 01 00:00:00 1970 +0000 @@ -7,4 +7,4 @@ sept eight @@ -209,13 +209,13 @@ -ten +zehn $ hg amend - 1 new unstable changesets + 1 new orphan changesets $ safesed 's/interactive=.*/interactive=true/' $HGRCPATH $ hg evolve --tool touch < n > EOF - move:[8] babar count up to fifteen - atop:[10] babar count up to ten + move:[6] babar count up to fifteen + atop:[7] babar count up to ten merging babar output file babar appears unchanged was merge successful (yn)? n @@ -227,20 +227,20 @@ $ hg resolve -l U babar $ hg log -G - @ changeset: 10:b20d08eea373 + @ changeset: 7:b20d08eea373 | tag: tip | parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: babar count up to ten | - | o changeset: 8:1836b91c6c1d + | o changeset: 6:1836b91c6c1d | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: babar count up to fifteen | | - | x changeset: 7:e04690b09bc6 + | x changeset: 5:e04690b09bc6 |/ parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-stabilize-order.t --- a/tests/test-stabilize-order.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-stabilize-order.t Tue Oct 10 22:40:41 2017 +0200 @@ -38,18 +38,18 @@ [2] addb $ echo b >> b $ hg amend - 1 new unstable changesets + 1 new orphan changesets $ hg gdown gdown have been deprecated in favor of previous 0 files updated, 0 files merged, 1 files removed, 0 files unresolved [1] adda $ echo a >> a $ hg amend - 1 new unstable changesets + 1 new orphan changesets $ glog - @ 7:005fe5914f78@default(draft) adda + @ 5:005fe5914f78@default(draft) adda | - | o 5:22619daeed78@default(draft) addb + | o 4:22619daeed78@default(draft) addb | | | | o 3:7a7552255fb5@default(draft) addc | | | @@ -63,8 +63,8 @@ Test stabilizing a predecessor child $ hg evolve -v - move:[5] addb - atop:[7] adda + move:[4] addb + atop:[5] adda hg rebase -r 22619daeed78 -d 005fe5914f78 resolving manifests getting b @@ -74,9 +74,9 @@ committing changelog working directory is now at 81b8bbcd5892 $ glog - @ 8:81b8bbcd5892@default(draft) addb + @ 6:81b8bbcd5892@default(draft) addb | - o 7:005fe5914f78@default(draft) adda + o 5:005fe5914f78@default(draft) adda | | o 3:7a7552255fb5@default(draft) addc | | @@ -94,7 +94,7 @@ $ hg debugobsolete > successors.old $ hg evolve -v move:[3] addc - atop:[8] addb + atop:[6] addb hg rebase -r 7a7552255fb5 -d 81b8bbcd5892 resolving manifests getting b @@ -109,21 +109,21 @@ $ diff -u successors.old successors.new --- successors.old* (glob) +++ successors.new* (glob) - @@ -3,3 +3,4 @@ - 93418d2c0979643ad446f621195e78720edb05b4 005fe5914f78e8bc64c7eba28117b0b1fa210d0d 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 7a7d76dc97c57751de9e80f61ed2a639bd03cd24 0 {93418d2c0979643ad446f621195e78720edb05b4} (*) {'ef1': '*', 'user': 'test'} (glob) - 22619daeed78036f80fbd326b6852519c4f0c25e 81b8bbcd5892841efed41433d7a5e9df922396cb 0 (*) {'ef1': '*', 'user': 'test'} (glob) - +7a7552255fb5f8bd745e46fba6f0ca633a4dd716 0f691739f91762462bf8ba21f35fdf71fe64310e 0 (*) {'ef1': '*', 'user': 'test'} (glob) + @@ -1,3 +1,4 @@ + ef23d6ef94d68dea65d20587dfecc8b33d165617 22619daeed78036f80fbd326b6852519c4f0c25e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} + 93418d2c0979643ad446f621195e78720edb05b4 005fe5914f78e8bc64c7eba28117b0b1fa210d0d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} + 22619daeed78036f80fbd326b6852519c4f0c25e 81b8bbcd5892841efed41433d7a5e9df922396cb 0 (*) {'ef1': '4', 'user': 'test'} (glob) + +7a7552255fb5f8bd745e46fba6f0ca633a4dd716 0f691739f91762462bf8ba21f35fdf71fe64310e 0 (*) {'ef1': '4', 'user': 'test'} (glob) [1] $ glog - @ 9:0f691739f917@default(draft) addc + @ 7:0f691739f917@default(draft) addc | - o 8:81b8bbcd5892@default(draft) addb + o 6:81b8bbcd5892@default(draft) addb | - o 7:005fe5914f78@default(draft) adda + o 5:005fe5914f78@default(draft) adda | o 0:c471ef929e6a@default(draft) addroot @@ -137,15 +137,15 @@ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo b >> b $ hg amend - 1 new unstable changesets + 1 new orphan changesets $ glog - @ 11:7a68bc4596ea@default(draft) addb + @ 8:7a68bc4596ea@default(draft) addb | - | o 9:0f691739f917@default(draft) addc + | o 7:0f691739f917@default(draft) addc | | - | x 8:81b8bbcd5892@default(draft) addb + | x 6:81b8bbcd5892@default(draft) addb |/ - o 7:005fe5914f78@default(draft) adda + o 5:005fe5914f78@default(draft) adda | o 0:c471ef929e6a@default(draft) addroot @@ -156,8 +156,8 @@ (1 other orphan in the repository, do you want --any or --rev) [2] $ hg evolve --any -v - move:[9] addc - atop:[11] addb + move:[7] addc + atop:[8] addb hg rebase -r 0f691739f917 -d 7a68bc4596ea resolving manifests removing c @@ -170,11 +170,11 @@ committing changelog working directory is now at 2256dae6521f $ glog - @ 12:2256dae6521f@default(draft) addc + @ 9:2256dae6521f@default(draft) addc | - o 11:7a68bc4596ea@default(draft) addb + o 8:7a68bc4596ea@default(draft) addb | - o 7:005fe5914f78@default(draft) adda + o 5:005fe5914f78@default(draft) adda | o 0:c471ef929e6a@default(draft) addroot @@ -195,41 +195,41 @@ $ hg up .^ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg commit --amend -m "newmessage" - 2 new unstable changesets + 2 new orphan changesets $ hg log -G - @ changeset: 15:f83a0bce03e4 + @ changeset: 12:f83a0bce03e4 | tag: tip - | parent: 11:7a68bc4596ea + | parent: 8:7a68bc4596ea | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: newmessage | - | o changeset: 14:fa68011f392e - | | parent: 12:2256dae6521f + | o changeset: 11:fa68011f392e + | | parent: 9:2256dae6521f | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: secondambiguous | | - | | o changeset: 13:bdc003b6eec2 + | | o changeset: 10:bdc003b6eec2 | |/ user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: firstambiguous | | - | x changeset: 12:2256dae6521f + | x changeset: 9:2256dae6521f |/ user: test | date: Thu Jan 01 00:00:00 1970 +0000 | obsolete: reworded as f83a0bce03e4 | summary: addc | - o changeset: 11:7a68bc4596ea - | parent: 7:005fe5914f78 + o changeset: 8:7a68bc4596ea + | parent: 5:005fe5914f78 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: addb | - o changeset: 7:005fe5914f78 + o changeset: 5:005fe5914f78 | parent: 0:c471ef929e6a | user: test | date: Thu Jan 01 00:00:00 1970 +0000 diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-stabilize-result.t --- a/tests/test-stabilize-result.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-stabilize-result.t Tue Oct 10 22:40:41 2017 +0200 @@ -27,33 +27,30 @@ (leaving bookmark changea) $ echo a >> a $ hg amend -m changea - 1 new unstable changesets + 1 new orphan changesets $ hg evolve -v --confirm move:[2] changea - atop:[4] changea + atop:[3] changea perform evolve? [Ny] n abort: evolve aborted by user [255] $ echo y | hg evolve -v --confirm --config ui.interactive=True move:[2] changea - atop:[4] changea + atop:[3] changea perform evolve? [Ny] y hg rebase -r cce2c55b8965 -d fb9d051ec0a4 resolving manifests $ glog --hidden - @ 4:fb9d051ec0a4@default(draft) bk:[changea] changea + @ 3:fb9d051ec0a4@default(draft) bk:[changea] changea | - | x 3:c5727dbded3c@default(draft) bk:[] temporary amend commit for 102a90ea7b4a + | x 2:cce2c55b8965@default(draft) bk:[] changea | | - | | x 2:cce2c55b8965@default(draft) bk:[] changea - | |/ | x 1:102a90ea7b4a@default(draft) bk:[] addb |/ o 0:07f494440405@default(draft) bk:[] adda $ hg debugobsolete 102a90ea7b4a3361e4082ed620918c261189a36a fb9d051ec0a450a4aa2ffc8c324979832ef88065 0 (*) {'ef1': '*', 'user': 'test'} (glob) - c5727dbded3c3a6877cf60d6bb552a76812cb844 0 {102a90ea7b4a3361e4082ed620918c261189a36a} (*) {'ef1': '*', 'user': 'test'} (glob) cce2c55b896511e0b6e04173c9450ba822ebc740 0 {102a90ea7b4a3361e4082ed620918c261189a36a} (*) {'ef1': '*', 'user': 'test'} (glob) Test evolve with conflict @@ -73,20 +70,20 @@ $ hg gdown gdown have been deprecated in favor of previous 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - [4] changea + [3] changea $ echo 'a' > a $ hg amend - 1 new unstable changesets + 1 new orphan changesets $ hg evolve - move:[5] newer a - atop:[7] changea + move:[4] newer a + atop:[5] changea merging a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') evolve failed! fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort abort: unresolved merge conflicts (see hg help resolve) [255] - $ hg revert -r 'unstable()' a + $ hg revert -r "orphan()" a $ hg diff diff -r 66719795a494 a --- a/a * (glob) @@ -96,13 +93,13 @@ +a +newer a $ hg evolve --continue - grafting 5:3655f0f50885 "newer a" + grafting 4:3655f0f50885 "newer a" abort: unresolved merge conflicts (see 'hg help resolve') [255] $ hg resolve -m a (no more unresolved files) $ hg evolve --continue - grafting 5:3655f0f50885 "newer a" + grafting 4:3655f0f50885 "newer a" Stabilize latecomer with different parent ========================================= @@ -110,9 +107,9 @@ (the same-parent case is handled in test-evolve.t) $ glog - @ 8:1cf0aacfd363@default(draft) bk:[] newer a + @ 6:1cf0aacfd363@default(draft) bk:[] newer a | - o 7:66719795a494@default(draft) bk:[changea] changea + o 5:66719795a494@default(draft) bk:[changea] changea | o 0:07f494440405@default(draft) bk:[] adda @@ -121,7 +118,7 @@ $ hg gdown gdown have been deprecated in favor of previous 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - [7] changea + [5] changea $ echo 'c' > c $ hg add c $ hg commit -m 'add c' @@ -130,7 +127,7 @@ Get a successors of 8 on it $ hg grab 1cf0aacfd363 - rebasing 8:1cf0aacfd363 "newer a" + rebasing 6:1cf0aacfd363 "newer a" ? files updated, 0 files merged, 0 files removed, 0 files unresolved (glob) Add real change to the successors @@ -141,15 +138,15 @@ Make precursors public $ hg phase --hidden --public 1cf0aacfd363 - 1 new bumped changesets + 1 new phase-divergent changesets $ glog - @ 12:(73b15c7566e9|d5c7ef82d003)@default\(draft\) bk:\[\] newer a (re) + @ 9:(73b15c7566e9|d5c7ef82d003)@default\(draft\) bk:\[\] newer a (re) | - o 9:7bc2f5967f5e@default(draft) bk:[] add c + o 7:7bc2f5967f5e@default(draft) bk:[] add c | - | o 8:1cf0aacfd363@default(public) bk:[] newer a + | o 6:1cf0aacfd363@default(public) bk:[] newer a |/ - o 7:66719795a494@default(public) bk:[changea] changea + o 5:66719795a494@default(public) bk:[changea] changea | o 0:07f494440405@default(public) bk:[] adda @@ -157,34 +154,34 @@ Stabilize! $ hg evolve --any --dry-run --phasedivergent - recreate:[12] newer a - atop:[8] newer a - hg rebase --rev (73b15c7566e9|d5c7ef82d003) --dest 66719795a494; (re) + recreate:[9] newer a + atop:[6] newer a + hg rebase --rev d5c7ef82d003 --dest 66719795a494; hg update 1cf0aacfd363; - hg revert --all --rev (73b15c7566e9|d5c7ef82d003); (re) + hg revert --all --rev d5c7ef82d003; hg commit --msg "bumped update to %s" (no-eol) $ hg evolve --any --confirm --phasedivergent - recreate:[12] newer a - atop:[8] newer a + recreate:[9] newer a + atop:[6] newer a perform evolve? [Ny] n abort: evolve aborted by user [255] $ echo y | hg evolve --any --confirm --config ui.interactive=True --phasedivergent - recreate:[12] newer a - atop:[8] newer a + recreate:[9] newer a + atop:[6] newer a perform evolve? [Ny] y rebasing to destination parent: 66719795a494 computing new diff committed as c2c1151aa854 working directory is now at c2c1151aa854 $ glog - @ 14:c2c1151aa854@default(draft) bk:[] bumped update to 1cf0aacfd363: + @ 11:c2c1151aa854@default(draft) bk:[] bumped update to 1cf0aacfd363: | - | o 9:7bc2f5967f5e@default(draft) bk:[] add c + | o 7:7bc2f5967f5e@default(draft) bk:[] add c | | - o | 8:1cf0aacfd363@default(public) bk:[] newer a + o | 6:1cf0aacfd363@default(public) bk:[] newer a |/ - o 7:66719795a494@default(public) bk:[changea] changea + o 5:66719795a494@default(public) bk:[changea] changea | o 0:07f494440405@default(public) bk:[] adda @@ -205,15 +202,15 @@ > EOF $ hg ci -m 'More addition' $ glog - @ 15:3932c176bbaa@default(draft) bk:[] More addition + @ 12:3932c176bbaa@default(draft) bk:[] More addition | - | o 14:(a7cabd7bd9c2|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re) + | o 11:c2c1151aa854@default(draft) bk:[] bumped update to 1cf0aacfd363: | | - o | 9:7bc2f5967f5e@default(draft) bk:[] add c + o | 7:7bc2f5967f5e@default(draft) bk:[] add c | | - | o 8:1cf0aacfd363@default(public) bk:[] newer a + | o 6:1cf0aacfd363@default(public) bk:[] newer a |/ - o 7:66719795a494@default(public) bk:[changea] changea + o 5:66719795a494@default(public) bk:[changea] changea | o 0:07f494440405@default(public) bk:[] adda @@ -228,19 +225,19 @@ $ cat a.old >> a $ rm a.old $ hg amend - 2 new divergent changesets + 2 new content-divergent changesets $ glog - @ 19:eacc9c8240fe@default(draft) bk:[] More addition + @ 14:eacc9c8240fe@default(draft) bk:[] More addition | - | o 17:d2f173e25686@default(draft) bk:[] More addition + | o 13:d2f173e25686@default(draft) bk:[] More addition |/ - | o 14:(a7cabd7bd9c2|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re) + | o 11:c2c1151aa854@default(draft) bk:[] bumped update to 1cf0aacfd363: | | - o | 9:7bc2f5967f5e@default(draft) bk:[] add c + o | 7:7bc2f5967f5e@default(draft) bk:[] add c | | - | o 8:1cf0aacfd363@default(public) bk:[] newer a + | o 6:1cf0aacfd363@default(public) bk:[] newer a |/ - o 7:66719795a494@default(public) bk:[changea] changea + o 5:66719795a494@default(public) bk:[changea] changea | o 0:07f494440405@default(public) bk:[] adda @@ -248,16 +245,16 @@ Stabilize it $ hg evolve -qn --confirm --contentdivergent - merge:[19] More addition - with: [17] More addition - base: [15] More addition + merge:[14] More addition + with: [13] More addition + base: [12] More addition perform evolve? [Ny] n abort: evolve aborted by user [255] $ echo y | hg evolve -qn --confirm --config ui.interactive=True --contentdivergent - merge:[19] More addition - with: [17] More addition - base: [15] More addition + merge:[14] More addition + with: [13] More addition + base: [12] More addition perform evolve? [Ny] y hg update -c eacc9c8240fe && hg merge d2f173e25686 && @@ -266,9 +263,9 @@ hg revert --all --rev tip && hg commit -m "`hg log -r eacc9c8240fe --template={desc}`"; $ hg evolve -v --contentdivergent - merge:[19] More addition - with: [17] More addition - base: [15] More addition + merge:[14] More addition + with: [13] More addition + base: [12] More addition merging divergent changeset resolving manifests merging a @@ -278,29 +275,24 @@ a committing manifest committing changelog - copying changeset 283ccd10e2b8 to 7bc2f5967f5e - committing files: - a - committing manifest - committing changelog - committed changeset 21:f344982e63c4 + committed changeset 15:f344982e63c4 working directory is now at f344982e63c4 $ hg st $ glog - @ 21:f344982e63c4@default(draft) bk:[] More addition + @ 15:f344982e63c4@default(draft) bk:[] More addition | - | o 14:(a7cabd7bd9c2|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re) + | o 11:c2c1151aa854@default(draft) bk:[] bumped update to 1cf0aacfd363: | | - o | 9:7bc2f5967f5e@default(draft) bk:[] add c + o | 7:7bc2f5967f5e@default(draft) bk:[] add c | | - | o 8:1cf0aacfd363@default(public) bk:[] newer a + | o 6:1cf0aacfd363@default(public) bk:[] newer a |/ - o 7:66719795a494@default(public) bk:[changea] changea + o 5:66719795a494@default(public) bk:[changea] changea | o 0:07f494440405@default(public) bk:[] adda $ hg summary - parent: 21:f344982e63c4 tip + parent: 15:f344982e63c4 tip More addition branch: default commit: (clean) @@ -338,12 +330,12 @@ (use 'hg evolve' to update to its successor: f344982e63c4) $ echo 'gotta break' >> a $ hg amend - 2 new divergent changesets + 2 new content-divergent changesets # reamend so that the case is not the first precursor. $ hg amend -m "More addition (2)" - $ hg phase 'divergent()' - 21: draft - 24: draft + $ hg phase 'contentdivergent()' + 15: draft + 17: draft $ hg evolve -qn --contentdivergent hg update -c 0b336205a5d0 && hg merge f344982e63c4 && @@ -352,9 +344,9 @@ hg revert --all --rev tip && hg commit -m "`hg log -r 0b336205a5d0 --template={desc}`"; $ hg evolve --contentdivergent - merge:[24] More addition (2) - with: [21] More addition - base: [15] More addition + merge:[17] More addition (2) + with: [15] More addition + base: [12] More addition merging a warning: conflicts while merging a! (edit, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-stack-branch.t --- a/tests/test-stack-branch.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-stack-branch.t Tue Oct 10 22:40:41 2017 +0200 @@ -110,7 +110,7 @@ $ echo bbb > ddd $ hg commit --amend $ hg log -G - @ 7 foo {} draft c_d + @ 6 foo {} draft c_d | | o 5 foo {} draft c_f | | @@ -147,7 +147,7 @@ $ hg log -r 'stack()' 2 foo {} draft c_c - 7 foo {} draft c_d + 6 foo {} draft c_d 4 foo {} draft c_e 5 foo {} draft c_f @@ -160,11 +160,11 @@ rebasing 4:4f2a69f6d380 "c_e" rebasing 5:913c298d8b0a "c_f" $ hg log -G - o 9 foo {} draft c_f + o 8 foo {} draft c_f | - o 8 foo {} draft c_e + o 7 foo {} draft c_e | - @ 7 foo {} draft c_d + @ 6 foo {} draft c_d | o 2 foo {} draft c_c | @@ -185,15 +185,15 @@ $ hg add hhh $ hg commit -m c_h $ hg log -G - @ 11 foo {} draft c_h + @ 10 foo {} draft c_h | - o 10 foo {} draft c_g + o 9 foo {} draft c_g | - | o 9 foo {} draft c_f + | o 8 foo {} draft c_f | | - | o 8 foo {} draft c_e + | o 7 foo {} draft c_e |/ - o 7 foo {} draft c_d + o 6 foo {} draft c_d | o 2 foo {} draft c_c | @@ -206,11 +206,11 @@ $ hg stack ### target: foo (branch) (2 heads) - b6: c_f - b5: c_e + b6@ c_h (current) + b5: c_g b2^ c_d (base) - b4@ c_h (current) - b3: c_g + b4: c_f + b3: c_e b2: c_d b1: c_c b0^ c_b (base) @@ -225,20 +225,20 @@ $ echo ccc > ddd $ hg commit --amend -m 'c_D' $ hg rebase -d . -s 'desc(c_g)' - rebasing 10:2ebb6e48ab8a "c_g" - rebasing 11:634f38e27a1d "c_h" + rebasing 9:2ebb6e48ab8a "c_g" + rebasing 10:634f38e27a1d "c_h" $ hg log -G - o 15 foo {} draft c_h + o 13 foo {} draft c_h | - o 14 foo {} draft c_g + o 12 foo {} draft c_g | - @ 13 foo {} draft c_D + @ 11 foo {} draft c_D | - | o 9 foo {} draft c_f + | o 8 foo {} draft c_f | | - | o 8 foo {} draft c_e + | o 7 foo {} draft c_e | | - | x 7 foo {} draft c_d + | x 6 foo {} draft c_d |/ o 2 foo {} draft c_c | @@ -249,11 +249,11 @@ $ hg stack ### target: foo (branch) (2 heads) - b6$ c_f (unstable) - b5$ c_e (unstable) + b6: c_h + b5: c_g b2^ c_D (base) - b4: c_h - b3: c_g + b4$ c_f (unstable) + b3$ c_e (unstable) b2@ c_D (current) b1: c_c b0^ c_b (base) @@ -262,17 +262,17 @@ ---------------------------------------------------------- $ hg log --graph - o 15 foo {} draft c_h + o 13 foo {} draft c_h | - o 14 foo {} draft c_g + o 12 foo {} draft c_g | - @ 13 foo {} draft c_D + @ 11 foo {} draft c_D | - | o 9 foo {} draft c_f + | o 8 foo {} draft c_f | | - | o 8 foo {} draft c_e + | o 7 foo {} draft c_e | | - | x 7 foo {} draft c_d + | x 6 foo {} draft c_d |/ o 2 foo {} draft c_c | @@ -283,22 +283,22 @@ $ hg stack ### target: foo (branch) (2 heads) - b6$ c_f (unstable) - b5$ c_e (unstable) + b6: c_h + b5: c_g b2^ c_D (base) - b4: c_h - b3: c_g + b4$ c_f (unstable) + b3$ c_e (unstable) b2@ c_D (current) b1: c_c b0^ c_b (base) $ hg phase --public b1 $ hg stack ### target: foo (branch) (2 heads) - b5$ c_f (unstable) - b4$ c_e (unstable) + b5: c_h + b4: c_g b1^ c_D (base) - b3: c_h - b2: c_g + b3$ c_f (unstable) + b2$ c_e (unstable) b1@ c_D (current) b0^ c_c (base) @@ -309,7 +309,7 @@ changed topic on 2 changes $ hg stack ### target: foo (branch) - b3: c_h - b2: c_g + b3$ c_f (unstable) + b2$ c_e (unstable) b1@ c_D (current) b0^ c_c (base) diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-topic-change.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-topic-change.t Tue Oct 10 22:40:41 2017 +0200 @@ -0,0 +1,405 @@ +Tests for changing and clearing topics +====================================== + + $ . "$TESTDIR/testlib/topic_setup.sh" + $ cat <> $HGRCPATH + > [experimental] + > # disable the new graph style until we drop 3.7 support + > graphstyle.missing = | + > evolution=createmarkers, allowunstable + > [phases] + > publish=false + > [alias] + > glog = log -G -T "{rev}:{node|short} \{{topics}}\n{desc} ({bookmarks})\n\n" + > EOF + +About the glog output: {} contains the topic name and () will contain the bookmark + +Setting up a repo +---------------- + + $ hg init topics + $ cd topics + $ for ch in a b c d e f g h; do touch $ch; echo "foo" >> $ch; hg ci -Aqm "Added "$ch; done + + $ hg glog + @ 7:ec2426147f0e {} + | Added h () + | + o 6:87d6d6676308 {} + | Added g () + | + o 5:825660c69f0c {} + | Added f () + | + o 4:aa98ab95a928 {} + | Added e () + | + o 3:62615734edd5 {} + | Added d () + | + o 2:28ad74487de9 {} + | Added c () + | + o 1:29becc82797a {} + | Added b () + | + o 0:18d04c59bb5d {} + Added a () + + +Clearing topic from revision without topic + + $ hg topic -r . --clear + changed topic on 0 changes + +Clearing current topic when no active topic is not error + + $ hg topic + $ hg topic --clear + +Setting topics to all the revisions + + $ hg topic -r 0:: foo + switching to topic foo + changed topic on 8 changes + $ hg glog + @ 15:05095f607171 {foo} + | Added h () + | + o 14:97505b53ab0d {foo} + | Added g () + | + o 13:75a8360fe626 {foo} + | Added f () + | + o 12:abcedffeae90 {foo} + | Added e () + | + o 11:1315a3808ed0 {foo} + | Added d () + | + o 10:1fa891977a22 {foo} + | Added c () + | + o 9:a53ba98dd6b8 {foo} + | Added b () + | + o 8:86a186070af2 {foo} + Added a () + + +Clearing the active topic using --clear + + $ hg topic + * foo + $ hg topic --clear + $ hg topic + foo +Changing topics on some revisions (also testing issue 5441) + + $ hg topic -r 12:: bar + switching to topic bar + changed topic on 4 changes + $ hg glog + @ 19:d7d36e193ea7 {bar} + | Added h () + | + o 18:e7b418d79a05 {bar} + | Added g () + | + o 17:82e0b14f4d9e {bar} + | Added f () + | + o 16:edc4a6b9ea60 {bar} + | Added e () + | + o 11:1315a3808ed0 {foo} + | Added d () + | + o 10:1fa891977a22 {foo} + | Added c () + | + o 9:a53ba98dd6b8 {foo} + | Added b () + | + o 8:86a186070af2 {foo} + Added a () + + +Changing topics without passing topic name and clear + + $ hg topic -r . + abort: changing topic requires a topic name or --clear + [255] + +Changing topic using --current flag + + $ hg topic foobar + $ hg topic -r . --current + active topic 'foobar' grew its first changeset + changed topic on 1 changes + $ hg glog -r . + @ 20:c2d6b7df5dcf {foobar} + | Added h () + | + +Changing topic in between the stack + + $ hg topic -r 9::10 --current + changed topic on 2 changes + $ hg glog + o 22:1b88140feefe {foobar} + | Added c () + | + o 21:c39cabfcbbf7 {foobar} + | Added b () + | + | @ 20:c2d6b7df5dcf {foobar} + | | Added h () + | | + | o 18:e7b418d79a05 {bar} + | | Added g () + | | + | o 17:82e0b14f4d9e {bar} + | | Added f () + | | + | o 16:edc4a6b9ea60 {bar} + | | Added e () + | | + | o 11:1315a3808ed0 {foo} + | | Added d () + | | + | x 10:1fa891977a22 {foo} + | | Added c () + | | + | x 9:a53ba98dd6b8 {foo} + |/ Added b () + | + o 8:86a186070af2 {foo} + Added a () + + $ hg rebase -s 11 -d 22 + rebasing 11:1315a3808ed0 "Added d" (foo) + switching to topic foo + rebasing 16:edc4a6b9ea60 "Added e" (bar) + switching to topic bar + rebasing 17:82e0b14f4d9e "Added f" (bar) + rebasing 18:e7b418d79a05 "Added g" (bar) + rebasing 20:c2d6b7df5dcf "Added h" (foobar) + switching to topic foobar + + $ hg glog + @ 27:a1a9465da59b {foobar} + | Added h () + | + o 26:7c76c271395f {bar} + | Added g () + | + o 25:7f26084dfaf1 {bar} + | Added f () + | + o 24:b1f05e9ba0b5 {bar} + | Added e () + | + o 23:f9869da2286e {foo} + | Added d () + | + o 22:1b88140feefe {foobar} + | Added c () + | + o 21:c39cabfcbbf7 {foobar} + | Added b () + | + o 8:86a186070af2 {foo} + Added a () + +Amending a topic +---------------- + +When the changeset has a topic and we have different active topic + + $ hg topic wat + $ hg ci --amend + active topic 'wat' grew its first changeset + $ hg glog -r . + @ 28:61470c956807 {wat} + | Added h () + | + +Clear the current topic and amending + + $ hg topic --clear + $ hg ci --amend + $ hg glog -r . + @ 29:b584fa49f42e {} + | Added h () + | + +When the changeset does not has a topic but we have an active topic + + $ hg topic watwat + marked working directory as topic: watwat + $ hg ci --amend + active topic 'watwat' grew its first changeset + $ hg glog -r . + @ 30:a24c31c35013 {watwat} + | Added h () + | + +Testing changing topics on public changeset +------------------------------------------- + + $ hg phase -r 8 -p + +Clearing the topic + + $ hg topic -r 8 --clear + abort: can't change topic of a public change + [255] + +Changing the topic + + $ hg topic -r 8 foobarboo + abort: can't change topic of a public change + [255] + +Testing the bookmark movement +----------------------------- + + $ hg bookmark book + $ hg glog + @ 30:a24c31c35013 {watwat} + | Added h (book) + | + o 26:7c76c271395f {bar} + | Added g () + | + o 25:7f26084dfaf1 {bar} + | Added f () + | + o 24:b1f05e9ba0b5 {bar} + | Added e () + | + o 23:f9869da2286e {foo} + | Added d () + | + o 22:1b88140feefe {foobar} + | Added c () + | + o 21:c39cabfcbbf7 {foobar} + | Added b () + | + o 8:86a186070af2 {} + Added a () + +On clearing the topic + + $ hg topic -r . --clear + clearing empty topic "watwat" + active topic 'watwat' is now empty + changed topic on 1 changes + + $ hg glog + @ 31:c48d6d71b2d9 {} + | Added h (book) + | + o 26:7c76c271395f {bar} + | Added g () + | + o 25:7f26084dfaf1 {bar} + | Added f () + | + o 24:b1f05e9ba0b5 {bar} + | Added e () + | + o 23:f9869da2286e {foo} + | Added d () + | + o 22:1b88140feefe {foobar} + | Added c () + | + o 21:c39cabfcbbf7 {foobar} + | Added b () + | + o 8:86a186070af2 {} + Added a () + + +On changing the topic + + $ hg bookmark bookboo + $ hg topic -r . movebook + switching to topic movebook + changed topic on 1 changes + $ hg glog + @ 32:1b83d11095b9 {movebook} + | Added h (book bookboo) + | + o 26:7c76c271395f {bar} + | Added g () + | + o 25:7f26084dfaf1 {bar} + | Added f () + | + o 24:b1f05e9ba0b5 {bar} + | Added e () + | + o 23:f9869da2286e {foo} + | Added d () + | + o 22:1b88140feefe {foobar} + | Added c () + | + o 21:c39cabfcbbf7 {foobar} + | Added b () + | + o 8:86a186070af2 {} + Added a () + +Changing topic on secret changesets +----------------------------------- + + $ hg up 26 + switching to topic bar + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + (leaving bookmark bookboo) + + $ hg phase -r . -s -f + $ hg phase -r . + 26: secret + + $ hg topic -r . watwat + switching to topic watwat + changed topic on 1 changes + + $ hg glog + @ 33:894983f69e69 {watwat} + | Added g () + | + | o 32:1b83d11095b9 {movebook} + | | Added h (book bookboo) + | | + | x 26:7c76c271395f {bar} + |/ Added g () + | + o 25:7f26084dfaf1 {bar} + | Added f () + | + o 24:b1f05e9ba0b5 {bar} + | Added e () + | + o 23:f9869da2286e {foo} + | Added d () + | + o 22:1b88140feefe {foobar} + | Added c () + | + o 21:c39cabfcbbf7 {foobar} + | Added b () + | + o 8:86a186070af2 {} + Added a () + + $ hg phase -r . + 33: secret diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-topic-dest.t --- a/tests/test-topic-dest.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-topic-dest.t Tue Oct 10 22:40:41 2017 +0200 @@ -109,7 +109,7 @@ switching to topic elephant 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg rebase - rebasing 4:cb7ae72f4a80 "babar" + rebasing 4:cb7ae72f4a80 "babar" (elephant) switching to topic elephant $ hg log -G @ 7 (elephant) babar @@ -130,7 +130,7 @@ switching to topic monkey 1 files updated, 0 files merged, 3 files removed, 0 files unresolved $ hg rebase - rebasing 5:d832ddc604ec "zephir" + rebasing 5:d832ddc604ec "zephir" (monkey) switching to topic monkey $ hg log -G @ 8 (monkey) zephir @@ -173,7 +173,7 @@ o 0 () c_alpha $ hg rebase - rebasing 9:d79a104e2902 "Huc" (tip) + rebasing 9:d79a104e2902 "Huc" (tip monkey) $ hg log -G @ 10 (monkey) Huc | @@ -225,7 +225,7 @@ switching to topic elephant 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg rebase -d 'desc(c_zeta)' # make sure tip is elsewhere - rebasing 7:8d0b77140b05 "babar" + rebasing 7:8d0b77140b05 "babar" (elephant) switching to topic elephant $ hg up monkey switching to topic monkey diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-topic-mode.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-topic-mode.t Tue Oct 10 22:40:41 2017 +0200 @@ -0,0 +1,313 @@ + $ . "$TESTDIR/testlib/topic_setup.sh" + +Testing the config knob to forbid untopiced commit +====================================================== + + $ hg init $TESTTMP/untopic-commit + $ cd $TESTTMP/untopic-commit + $ cat <> .hg/hgrc + > [phases] + > publish=false + > EOF + $ cat <> $HGRCPATH + > [experimental] + > topic-mode = enforce + > EOF + $ touch a b c d + $ hg add a + $ hg ci -m "Added a" + abort: no active topic + (see 'hg help -e topic.topic-mode' for details) + [255] + +(same test, checking we abort before the editor) + + $ EDITOR=cat hg ci -m "Added a" --edit + abort: no active topic + (see 'hg help -e topic.topic-mode' for details) + [255] + $ hg ci -m "added a" --config experimental.topic-mode=ignore + $ hg log + changeset: 0:a154386e50d1 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: added a + + +Testing the config knob to warn about untopiced commit +========================================================== + + $ hg init $TESTTMP/untopic-warn-commit + $ cd $TESTTMP/untopic-warn-commit + $ cat <> .hg/hgrc + > [phases] + > publish=false + > EOF + $ cat <> $HGRCPATH + > [experimental] + > topic-mode = warning + > EOF + $ touch a b c d + $ hg add a + $ hg ci -m "Added a" + warning: new draft commit without topic + (see 'hg help -e topic.topic-mode' for details) (no-eol) + +(same test, checking we abort before the editor) + + $ EDITOR=cat hg ci --amend -m "Added a" --edit + warning: new draft commit without topic + (see 'hg help -e topic.topic-mode' for details) (no-eol) + $ hg ci --amend -m "added a'" --config experimental.topic-mode=ignore + $ hg log + changeset: 2:2e862d8b5eff + tag: tip + parent: -1:000000000000 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: added a' + + +Testing the config knob to warn about untopiced merge commit +================================================================ + + $ hg init $TESTTMP/test-untopic-merge-commit + $ cd $TESTTMP/test-untopic-merge-commit + $ cat <> .hg/hgrc + > [phases] + > publish=false + > EOF + $ cat <> $HGRCPATH + > [experimental] + > topic-mode = enforce + > EOF + $ touch ROOT + $ hg commit -A -m "ROOT" --config experimental.topic-mode=ignore + adding ROOT + $ touch a + $ hg add a + $ hg topic mytopic + marked working directory as topic: mytopic + $ hg ci -m "Added a" + active topic 'mytopic' grew its first changeset + + $ hg up -r "desc('ROOT')" + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ touch default + $ hg add default + $ hg commit -m "default" --config experimental.topic-mode=ignore + + $ hg merge mytopic + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg commit -m "merge mytopic" + warning: new draft commit without topic + (see 'hg help -e topic.topic-mode' for details) (no-eol) + + $ hg log -G + @ changeset: 3:676a445d1c09 + |\ tag: tip + | | parent: 2:a4da109ee59f + | | parent: 1:e5b6c632bd8e + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: merge mytopic + | | + | o changeset: 2:a4da109ee59f + | | parent: 0:ec1d2790416d + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: default + | | + o | changeset: 1:e5b6c632bd8e + |/ topic: mytopic + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Added a + | + o changeset: 0:ec1d2790416d + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: ROOT + + +Testing the config knob to about on untopiced merge commit +================================================================ + + $ hg init $TESTTMP/test-untopic-merge-commit-abort + $ cd $TESTTMP/test-untopic-merge-commit-abort + $ cat <> .hg/hgrc + > [phases] + > publish=false + > EOF + $ cat <> $HGRCPATH + > [experimental] + > topic-mode = enforce-all + > EOF + $ touch ROOT + $ hg commit -A -m "ROOT" --config experimental.topic-mode=ignore + adding ROOT + $ touch a + $ hg add a + $ hg topic mytopic + marked working directory as topic: mytopic + $ hg ci -m "Added a" + active topic 'mytopic' grew its first changeset + + $ hg up -r "desc('ROOT')" + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ touch default + $ hg add default + $ hg commit -m "default" --config experimental.topic-mode=ignore + + $ hg merge mytopic + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg commit -m "merge mytopic" + abort: no active topic + (see 'hg help -e topic.topic-mode' for details) + [255] + + $ hg log -G + @ changeset: 2:a4da109ee59f + | tag: tip + | parent: 0:ec1d2790416d + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: default + | + | @ changeset: 1:e5b6c632bd8e + |/ topic: mytopic + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Added a + | + o changeset: 0:ec1d2790416d + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: ROOT + +Testing the config knob to use a random topic for untopic commit +==================================================================== + + $ hg init $TESTTMP/test-untopic-random + $ cd $TESTTMP/test-untopic-random + $ cat <> .hg/hgrc + > [phases] + > publish=false + > EOF + $ cat <> $HGRCPATH + > [experimental] + > topic-mode = random + > EOF + + $ touch ROOT + $ hg commit -A -m "ROOT" --config experimental.topic-mode=ignore + adding ROOT + + $ touch A + $ hg add A + $ hg commit -m "Add A" --config devel.randomseed=42 + active topic 'panoramic-antelope' grew its first changeset + + $ hg up -r "desc(ROOT)" + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + + $ touch B + $ hg add B + $ hg commit -m "Add B" --config devel.randomseed=128 + active topic 'various-dove' grew its first changeset + +Test a merge too + + $ hg phase --public -r . + active topic 'various-dove' is now empty + $ hg up default + clearing empty topic "various-dove" + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg log -G + @ changeset: 2:2d2acb6efad5 + | tag: tip + | parent: 0:ec1d2790416d + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Add B + | + | o changeset: 1:d4b548f35972 + |/ topic: panoramic-antelope + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Add A + | + o changeset: 0:ec1d2790416d + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: ROOT + + $ hg merge panoramic-antelope + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg ci -m 'merge' +Testing the config knob to use a random topic for untopic commit (even for merge) +================================================================================= + + $ hg init $TESTTMP/test-untopic-random-all + $ cd $TESTTMP/test-untopic-random-all + $ cat <> .hg/hgrc + > [phases] + > publish=false + > EOF + $ cat <> $HGRCPATH + > [experimental] + > topic-mode = random-all + > EOF + + $ touch ROOT + $ hg commit -A -m "ROOT" --config experimental.topic-mode=ignore + adding ROOT + + $ touch A + $ hg add A + $ hg commit -m "Add A" --config devel.randomseed=42 + active topic 'panoramic-antelope' grew its first changeset + + $ hg up -r "desc(ROOT)" + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + + $ touch B + $ hg add B + $ hg commit -m "Add B" --config devel.randomseed=128 + active topic 'various-dove' grew its first changeset + +Test a merge too + + $ hg phase --public -r . + active topic 'various-dove' is now empty + $ hg up default + clearing empty topic "various-dove" + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg log -G + @ changeset: 2:2d2acb6efad5 + | tag: tip + | parent: 0:ec1d2790416d + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Add B + | + | o changeset: 1:d4b548f35972 + |/ topic: panoramic-antelope + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Add A + | + o changeset: 0:ec1d2790416d + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: ROOT + + $ hg merge panoramic-antelope + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg ci -m 'merge' --config devel.randomseed=1337 + active topic 'omniscient-locust' grew its first changeset diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-topic-push-concurrent-on.t --- a/tests/test-topic-push-concurrent-on.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-topic-push-concurrent-on.t Tue Oct 10 22:40:41 2017 +0200 @@ -93,7 +93,7 @@ $ hg outgoing -G comparing with $TESTTMP/main (glob) searching for changes - @ 4 mountain draft CC + @ 3 mountain draft CC $ hg push pushing to $TESTTMP/main (glob) @@ -108,7 +108,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 2 new obsolescence markers + 1 new obsolescence markers Including on non-publishing @@ -119,7 +119,7 @@ adding manifests adding file changes added 3 changesets with 3 changes to 3 files (+1 heads) - 2 new obsolescence markers + 1 new obsolescence markers Testing topic behavior ====================== @@ -136,9 +136,9 @@ $ hg commit -m 'CD' active topic 'babar' grew its first changeset $ hg log -G # keep track of phase because I saw some strange bug during developement - @ 5 default babar draft CD + @ 4 default babar draft CD | - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -155,9 +155,9 @@ adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) $ hg log -G - @ 5 default babar draft CD + @ 4 default babar draft CD | - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -173,9 +173,9 @@ (merge or see 'hg help push' for details about pushing new heads) [255] $ hg log -G - @ 5 default babar draft CD + @ 4 default babar draft CD | - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -194,11 +194,11 @@ $ hg commit -m 'CE' active topic 'celeste' grew its first changeset $ hg log -G # keep track of phase because I saw some strange bug during developement - @ 6 default celeste draft CE + @ 5 default celeste draft CE | - | o 5 default babar draft CD + | o 4 default babar draft CD |/ - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -218,11 +218,11 @@ (merge or see 'hg help push' for details about pushing new heads) [255] $ hg log -G - @ 6 default celeste draft CE + @ 5 default celeste draft CE | - | o 5 default babar draft CD + | o 4 default babar draft CD |/ - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -241,11 +241,11 @@ remote: adding file changes remote: added 1 changesets with 1 changes to 1 files (+1 heads) $ hg log -G - @ 6 default celeste draft CE + @ 5 default celeste draft CE | - | o 5 default babar draft CD + | o 4 default babar draft CD |/ - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -261,11 +261,11 @@ (merge or see 'hg help push' for details about pushing new heads) [255] $ hg log -G - @ 6 default celeste draft CE + @ 5 default celeste draft CE | - | o 5 default babar draft CD + | o 4 default babar draft CD |/ - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -283,13 +283,13 @@ $ hg add fff $ hg commit -m 'CF' $ hg log -G - @ 7 default babar draft CF + @ 6 default babar draft CF | - | o 6 default celeste draft CE + | o 5 default celeste draft CE | | - | | o 5 default babar draft CD + | | o 4 default babar draft CD | |/ - | | o 4 mountain public CC + | | o 3 mountain public CC | |/ o | 1 default public CB |/ @@ -321,17 +321,17 @@ (branch merge, don't forget to commit) $ hg commit -m 'CM' $ hg log -G - @ 9 default babar draft CM + @ 8 default babar draft CM |\ - | o 8 default draft CG + | o 7 default draft CG | | - o | 7 default babar draft CF + o | 6 default babar draft CF | | - | | o 6 default celeste draft CE + | | o 5 default celeste draft CE | |/ - | | o 5 default babar draft CD + | | o 4 default babar draft CD | |/ - | | o 4 mountain public CC + | | o 3 mountain public CC | |/ o | 1 default public CB |/ diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-topic-push.t --- a/tests/test-topic-push.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-topic-push.t Tue Oct 10 22:40:41 2017 +0200 @@ -89,7 +89,7 @@ $ hg outgoing -G comparing with $TESTTMP/main (glob) searching for changes - @ 4 mountain draft CC + @ 3 mountain draft CC $ hg push pushing to $TESTTMP/main (glob) @@ -104,7 +104,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 2 new obsolescence markers + 1 new obsolescence markers Including on non-publishing @@ -115,7 +115,7 @@ adding manifests adding file changes added 3 changesets with 3 changes to 3 files (+1 heads) - 2 new obsolescence markers + 1 new obsolescence markers Testing topic behavior ====================== @@ -132,9 +132,9 @@ $ hg commit -m 'CD' active topic 'babar' grew its first changeset $ hg log -G # keep track of phase because I saw some strange bug during developement - @ 5 default babar draft CD + @ 4 default babar draft CD | - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -151,9 +151,9 @@ adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) $ hg log -G - @ 5 default babar draft CD + @ 4 default babar draft CD | - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -178,13 +178,13 @@ $ echo bbb >> bbb $ hg commit -m "C'B" $ hg log -G - @ 7 default draft C'B + @ 6 default draft C'B | - | o 6 default babar draft C'A + | o 5 default babar draft C'A | | - | o 5 default babar draft CD + | o 4 default babar draft CD | | - | | o 4 mountain public CC + | | o 3 mountain public CC | |/ o | 1 default public CB |/ @@ -193,7 +193,7 @@ $ hg outgoing draft --topic babar comparing with $TESTTMP/draft searching for changes - 6 default babar draft C'A + 5 default babar draft C'A $ hg push draft --topic babar pushing to $TESTTMP/draft searching for changes @@ -212,8 +212,8 @@ |/ o 0 default public CA - $ hg strip --hidden --config extensions.strip= --no-backup -r 6: --quiet - $ hg strip --hidden --config extensions.strip= -R $TESTTMP/draft --no-backup -r 4: --quiet + $ hg strip --config extensions.strip= --no-backup -r 5: --quiet + $ hg strip --config extensions.strip= -R $TESTTMP/draft --no-backup -r 4: --quiet Pushing a new topic to a publishing server should be seen as a new head @@ -224,9 +224,9 @@ (merge or see 'hg help push' for details about pushing new heads) [255] $ hg log -G - @ 5 default babar draft CD + @ 4 default babar draft CD | - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -245,11 +245,11 @@ $ hg commit -m 'CE' active topic 'celeste' grew its first changeset $ hg log -G # keep track of phase because I saw some strange bug during developement - @ 6 default celeste draft CE + @ 5 default celeste draft CE | - | o 5 default babar draft CD + | o 4 default babar draft CD |/ - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -269,11 +269,11 @@ (merge or see 'hg help push' for details about pushing new heads) [255] $ hg log -G - @ 6 default celeste draft CE + @ 5 default celeste draft CE | - | o 5 default babar draft CD + | o 4 default babar draft CD |/ - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -292,11 +292,11 @@ remote: adding file changes remote: added 1 changesets with 1 changes to 1 files (+1 heads) $ hg log -G - @ 6 default celeste draft CE + @ 5 default celeste draft CE | - | o 5 default babar draft CD + | o 4 default babar draft CD |/ - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -312,11 +312,11 @@ (merge or see 'hg help push' for details about pushing new heads) [255] $ hg log -G - @ 6 default celeste draft CE + @ 5 default celeste draft CE | - | o 5 default babar draft CD + | o 4 default babar draft CD |/ - | o 4 mountain public CC + | o 3 mountain public CC |/ | o 1 default public CB |/ @@ -334,13 +334,13 @@ $ hg add fff $ hg commit -m 'CF' $ hg log -G - @ 7 default babar draft CF + @ 6 default babar draft CF | - | o 6 default celeste draft CE + | o 5 default celeste draft CE | | - | | o 5 default babar draft CD + | | o 4 default babar draft CD | |/ - | | o 4 mountain public CC + | | o 3 mountain public CC | |/ o | 1 default public CB |/ @@ -372,17 +372,17 @@ (branch merge, don't forget to commit) $ hg commit -m 'CM' $ hg log -G - @ 9 default babar draft CM + @ 8 default babar draft CM |\ - | o 8 default draft CG + | o 7 default draft CG | | - o | 7 default babar draft CF + o | 6 default babar draft CF | | - | | o 6 default celeste draft CE + | | o 5 default celeste draft CE | |/ - | | o 5 default babar draft CD + | | o 4 default babar draft CD | |/ - | | o 4 mountain public CC + | | o 3 mountain public CC | |/ o | 1 default public CB |/ diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-topic-rebase.t --- a/tests/test-topic-rebase.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-topic-rebase.t Tue Oct 10 22:40:41 2017 +0200 @@ -71,7 +71,7 @@ switching to topic myfeature 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg rebase - rebasing 1:39e7a938055e "add feature1" + rebasing 1:39e7a938055e "add feature1" (myfeature) switching to topic myfeature $ hg stack ### topic: myfeature @@ -120,7 +120,7 @@ switching to topic myotherfeature 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg rebase - rebasing 5:81f854012ec5 "myotherfeature1" + rebasing 5:81f854012ec5 "myotherfeature1" (myotherfeature) merging file warning: conflicts while merging file! (edit, then use 'hg resolve --mark') switching to topic myotherfeature @@ -134,7 +134,7 @@ (no more unresolved files) continue: hg rebase --continue $ hg rebase --continue - rebasing 5:81f854012ec5 "myotherfeature1" + rebasing 5:81f854012ec5 "myotherfeature1" (myotherfeature) Check the the commit has the right topic diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-topic-stack-data.t --- a/tests/test-topic-stack-data.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-topic-stack-data.t Tue Oct 10 22:40:41 2017 +0200 @@ -111,7 +111,7 @@ commit: (clean) update: 2 new changesets (update) phases: 22 draft - unstable: 3 changesets + orphan: 3 changesets topic: foo $ hg log --graph -T '{desc} ({branch}) [{topic}]' @ add foo_b (lake) [] diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-topic-stack.t --- a/tests/test-topic-stack.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-topic-stack.t Tue Oct 10 22:40:41 2017 +0200 @@ -263,7 +263,7 @@ $ echo bbb > ddd $ hg commit --amend $ hg log -G - @ 7 default {foo} draft c_d + @ 6 default {foo} draft c_d | | o 5 default {foo} draft c_f | | @@ -310,7 +310,7 @@ $ hg log -r 'stack()' 2 default {foo} draft c_c - 7 default {foo} draft c_d + 6 default {foo} draft c_d 4 default {foo} draft c_e 5 default {foo} draft c_f @@ -328,14 +328,14 @@ Make things linear again $ hg rebase -s 'desc(c_e)' -d 'desc(c_d) - obsolete()' - rebasing 4:0f9ac936c87d "c_e" - rebasing 5:6559e6d93aea "c_f" + rebasing 4:0f9ac936c87d "c_e" (foo) + rebasing 5:6559e6d93aea "c_f" (foo) $ hg log -G - o 9 default {foo} draft c_f + o 8 default {foo} draft c_f | - o 8 default {foo} draft c_e + o 7 default {foo} draft c_e | - @ 7 default {foo} draft c_d + @ 6 default {foo} draft c_d | o 2 default {foo} draft c_c | @@ -356,15 +356,15 @@ $ hg add hhh $ hg commit -m c_h $ hg log -G - @ 11 default {foo} draft c_h + @ 10 default {foo} draft c_h | - o 10 default {foo} draft c_g + o 9 default {foo} draft c_g | - | o 9 default {foo} draft c_f + | o 8 default {foo} draft c_f | | - | o 8 default {foo} draft c_e + | o 7 default {foo} draft c_e |/ - o 7 default {foo} draft c_d + o 6 default {foo} draft c_d | o 2 default {foo} draft c_c | @@ -378,11 +378,11 @@ $ hg top -l ### topic: foo (2 heads) ### target: default (branch) - t6: c_f - t5: c_e + t6@ c_h (current) + t5: c_g t2^ c_d (base) - t4@ c_h (current) - t3: c_g + t4: c_f + t3: c_e t2: c_d t1: c_c t0^ c_b (base) @@ -397,20 +397,20 @@ $ echo ccc > ddd $ hg commit --amend -m 'c_D' $ hg rebase -d . -s 'desc(c_g)' - rebasing 10:81264ae8a36a "c_g" - rebasing 11:fde5f5941642 "c_h" + rebasing 9:81264ae8a36a "c_g" (foo) + rebasing 10:fde5f5941642 "c_h" (foo) $ hg log -G - o 15 default {foo} draft c_h + o 13 default {foo} draft c_h | - o 14 default {foo} draft c_g + o 12 default {foo} draft c_g | - @ 13 default {foo} draft c_D + @ 11 default {foo} draft c_D | - | o 9 default {foo} draft c_f + | o 8 default {foo} draft c_f | | - | o 8 default {foo} draft c_e + | o 7 default {foo} draft c_e | | - | x 7 default {foo} draft c_d + | x 6 default {foo} draft c_d |/ o 2 default {foo} draft c_c | @@ -422,11 +422,11 @@ $ hg topic --list ### topic: foo (2 heads) ### target: default (branch) - t6$ c_f (unstable) - t5$ c_e (unstable) + t6: c_h + t5: c_g t2^ c_D (base) - t4: c_h - t3: c_g + t4$ c_f (unstable) + t3$ c_e (unstable) t2@ c_D (current) t1: c_c t0^ c_b (base) @@ -443,17 +443,17 @@ ============================================================================== $ hg log --graph - o 15 default {foo} draft c_h + o 13 default {foo} draft c_h | - o 14 default {foo} draft c_g + o 12 default {foo} draft c_g | - @ 13 default {foo} draft c_D + @ 11 default {foo} draft c_D | - | o 9 default {foo} draft c_f + | o 8 default {foo} draft c_f | | - | o 8 default {foo} draft c_e + | o 7 default {foo} draft c_e | | - | x 7 default {foo} draft c_d + | x 6 default {foo} draft c_d |/ o 2 default {foo} draft c_c | @@ -463,19 +463,19 @@ Converting into a linear chain $ hg rebase -s 'desc("c_e") - obsolete()' -d 'desc("c_h") - obsolete()' - rebasing 8:215bc359096a "c_e" - rebasing 9:ec9267b3f33f "c_f" + rebasing 7:215bc359096a "c_e" (foo) + rebasing 8:ec9267b3f33f "c_f" (foo) $ hg log -G - o 17 default {foo} draft c_f + o 15 default {foo} draft c_f | - o 16 default {foo} draft c_e + o 14 default {foo} draft c_e | - o 15 default {foo} draft c_h + o 13 default {foo} draft c_h | - o 14 default {foo} draft c_g + o 12 default {foo} draft c_g | - @ 13 default {foo} draft c_D + @ 11 default {foo} draft c_D | o 2 default {foo} draft c_c | @@ -488,19 +488,19 @@ switching to topic foobar changed topic on 2 changes $ hg log -G - @ 19 default {foobar} draft c_D + @ 17 default {foobar} draft c_D | - | o 18 default {foobar} draft c_e + | o 16 default {foobar} draft c_e | | - | | o 17 default {foo} draft c_f + | | o 15 default {foo} draft c_f | | | - | | x 16 default {foo} draft c_e + | | x 14 default {foo} draft c_e | |/ - | o 15 default {foo} draft c_h + | o 13 default {foo} draft c_h | | - | o 14 default {foo} draft c_g + | o 12 default {foo} draft c_g | | - | x 13 default {foo} draft c_D + | x 11 default {foo} draft c_D |/ o 2 default {foo} draft c_c | @@ -509,30 +509,30 @@ o 0 default {} public c_a $ hg rebase -s 'desc("c_f") - obsolete()' -d 'desc("c_e") - obsolete()' - rebasing 17:77082e55de88 "c_f" + rebasing 15:77082e55de88 "c_f" (foo) switching to topic foo switching to topic foobar $ hg rebase -s 'desc("c_g") - obsolete()' -d 'desc("c_D") - obsolete()' - rebasing 14:0c3e8aed985d "c_g" + rebasing 12:0c3e8aed985d "c_g" (foo) switching to topic foo - rebasing 15:b9e4f3709bc5 "c_h" - rebasing 18:4bc813530301 "c_e" + rebasing 13:b9e4f3709bc5 "c_h" (foo) + rebasing 16:4bc813530301 "c_e" (foobar) switching to topic foobar - rebasing 20:4406ea4be852 "c_f" (tip) + rebasing 18:4406ea4be852 "c_f" (tip foo) switching to topic foo switching to topic foobar $ hg up 3 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log --graph - o 24 default {foo} draft c_f + o 22 default {foo} draft c_f | - @ 23 default {foobar} draft c_e + @ 21 default {foobar} draft c_e | - o 22 default {foo} draft c_h + o 20 default {foo} draft c_h | - o 21 default {foo} draft c_g + o 19 default {foo} draft c_g | - o 19 default {foobar} draft c_D + o 17 default {foobar} draft c_D | o 2 default {foo} draft c_c | @@ -798,12 +798,12 @@ get things linear again $ hg rebase -r t1 -d default - rebasing 16:1d84ec948370 "c_D" (tip) + rebasing 16:1d84ec948370 "c_D" (tip blue) switching to topic blue $ hg rebase -r t2 -d t1 - rebasing 13:3ab2eedae500 "c_G" + rebasing 13:3ab2eedae500 "c_G" (blue) $ hg rebase -r t3 -d t2 - rebasing 8:3bfe800e0486 "c_I" + rebasing 8:3bfe800e0486 "c_I" (blue) $ hg stack ### topic: blue ### target: default (branch) @@ -856,11 +856,11 @@ Done splitting? [yN] y $ hg --config extensions.evolve= obslog --all - o dde94df880e9 (22) c_G + o dde94df880e9 (21) c_G | - | @ e7ea874afbd5 (23) c_G + | @ e7ea874afbd5 (22) c_G |/ - x b24bab30ac12 (21) c_G + x b24bab30ac12 (20) c_G | rewritten(parent, content) as dde94df880e9, e7ea874afbd5 by test (Thu Jan 01 00:00:00 1970 +0000) | x 907f7d3c2333 (18) c_G diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-topic-tutorial.t --- a/tests/test-topic-tutorial.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-topic-tutorial.t Tue Oct 10 22:40:41 2017 +0200 @@ -483,10 +483,10 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg rebase - rebasing 1:13900241408b "adding condiments" + rebasing 1:13900241408b "adding condiments" (food) merging shopping switching to topic food - rebasing 2:287de11b401f "adding fruits" + rebasing 2:287de11b401f "adding fruits" (food) merging shopping $ hg log --graph @@ -703,7 +703,7 @@ $ cat << EOF >> .hg/hgrc > [experimental] - > enforce-topic = yes + > topic-mode = enforce > EOF You can also use `hg config --edit` to update your mercurial configuration. @@ -714,7 +714,7 @@ $ echo sickle >> shopping $ hg commit -m 'Adding sickle' abort: no active topic - (set a current topic or use '--config experimental.enforce-topic=no' to commit without a topic) + (see 'hg help -e topic.topic-mode' for details) [255] Ok, let's clean this up and delve into multiple topics. @@ -1034,12 +1034,12 @@ #endif $ hg rebase - rebasing 6:183984ef46d1 "Adding hammer" + rebasing 6:183984ef46d1 "Adding hammer" (tools) merging shopping switching to topic tools - rebasing 7:cffff85af537 "Adding saw" + rebasing 7:cffff85af537 "Adding saw" (tools) merging shopping - rebasing 8:34255b455dac "Adding drill" + rebasing 8:34255b455dac "Adding drill" (tools) merging shopping But what about the other topic? You can use 'hg topics --verbose' to see @@ -1066,10 +1066,10 @@ multiple *public* heads it would create on that branch: $ hg rebase -b drinks - rebasing 9:8dfa45bd5e0c "Adding apple juice" + rebasing 9:8dfa45bd5e0c "Adding apple juice" (drinks) merging shopping switching to topic drinks - rebasing 10:70dfa201ed73 "Adding orange juice" + rebasing 10:70dfa201ed73 "Adding orange juice" (drinks) merging shopping switching to topic tools @@ -1182,7 +1182,7 @@ t0^ add a pair of shoes (base) $ hg amend -m "Adding hammer to the shopping list" - 2 new unstable changesets + 2 new orphan changesets Understanding the current situation with hg log is not so easy, because it shows too many things: @@ -1211,14 +1211,14 @@ | | topic: tools | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: Adding drill | | | o changeset: 14:d4f97f32f8a1 | | topic: tools | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: Adding saw | | | x changeset: 13:a8ab3599d53d @@ -1754,9 +1754,9 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg rebase - rebasing 19:d5c51ee5762a "Adding saw" + rebasing 19:d5c51ee5762a "Adding saw" (tools) merging shopping - rebasing 20:bae3758e46bf "Adding drill" + rebasing 20:bae3758e46bf "Adding drill" (tools) merging shopping $ hg stack diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-topic.t --- a/tests/test-topic.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-topic.t Tue Oct 10 22:40:41 2017 +0200 @@ -1,6 +1,6 @@ $ . "$TESTDIR/testlib/topic_setup.sh" - $ hg init pinky --traceback + $ hg init pinky $ cd pinky $ cat <> .hg/hgrc > [phases] @@ -502,10 +502,6 @@ $ hg topics fran ---clear when we don't have an active topic isn't an error: - - $ hg topics --clear - Topic revset $ hg log -r 'topic()' -G o changeset: 9:0469d521db49 @@ -628,284 +624,36 @@ | date: Thu Jan 01 00:00:00 1970 +0000 | summary: start on fran | + $ hg topics fran -Changing topic fails if we don't give a topic - $ hg topic --rev 9 - abort: changing topic requires a topic name or --clear - [255] - -Can't change topic of a public change - $ hg topic --rev 1:: --clear - abort: can't change topic of a public change - [255] - -Can clear topics - $ hg topic --rev 9 --clear - changed topic on 1 changes - $ hg log -Gr 'draft() and not obsolete()' - o changeset: 11:0beca5ab56c3 - | tag: tip - | parent: 3:a53952faf762 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: start on fran - | - | @ changeset: 10:4073470c35e1 - | | user: test - | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable - | | summary: fran? - | | - -Normally you'd do this with evolve, but we'll use rebase to avoid -bonus deps in the testsuite. - - $ hg rebase -d tip -s . - rebasing 10:4073470c35e1 "fran?" - -Can add a topic to an existing change - $ hg topic - $ hg sum - parent: 12:18b70b8de1f0 tip - fran? - branch: default - commit: (clean) - update: 5 new changesets, 2 branch heads (merge) - phases: 2 draft - $ hg topic --rev 11 wat - changed topic on 1 changes - $ hg log -r . - changeset: 12:18b70b8de1f0 - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - trouble: unstable - summary: fran? - - $ hg sum - parent: 12:18b70b8de1f0 (unstable) - fran? - branch: default - commit: (clean) - update: 5 new changesets, 2 branch heads (merge) - phases: 3 draft - unstable: 1 changesets - $ hg topic - wat - $ hg log -Gr 'draft() and not obsolete()' - o changeset: 13:686a642006db - | tag: tip - | topic: wat - | parent: 3:a53952faf762 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: start on fran - | - | @ changeset: 12:18b70b8de1f0 - | | user: test - | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable - | | summary: fran? - | | - -Normally you'd do this with evolve, but we'll use rebase to avoid -bonus deps in the testsuite. - - $ hg topic - wat - $ hg rebase -d tip -s . - rebasing 12:18b70b8de1f0 "fran?" - switching to topic wat - $ hg topic - wat - - $ hg log -Gr 'draft()' - @ changeset: 14:45358f7a5892 - | tag: tip - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: fran? - | - o changeset: 13:686a642006db - | topic: wat - | parent: 3:a53952faf762 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: start on fran - | - -Amend a topic - - $ hg topic watwat - marked working directory as topic: watwat - $ hg ci --amend - active topic 'watwat' grew its first changeset - $ hg log -Gr 'draft()' - @ changeset: 16:6c40a4c21bbe - | tag: tip - | topic: watwat - | parent: 13:686a642006db - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: fran? - | - o changeset: 13:686a642006db - | topic: wat - | parent: 3:a53952faf762 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: start on fran - | - -Clear and amend: - - $ hg topic --clear - $ hg ci --amend - $ hg log -r . - changeset: 18:0f9cd5070654 - tag: tip - parent: 13:686a642006db - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - summary: fran? - -Reading the same topic with topic --rev should work: - $ hg topic --rev . watwat - switching to topic watwat - changed topic on 1 changes - -Testing issue5441 - $ hg co 19 - 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg log -Gr 'draft()' - @ changeset: 19:980a0f608481 - | tag: tip - | topic: watwat - | parent: 13:686a642006db - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: fran? - | - o changeset: 13:686a642006db - | topic: wat - | parent: 3:a53952faf762 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: start on fran - | - -Using the current flag - - $ hg topic changewat - $ hg topics --rev '13::19' --current - active topic 'changewat' grew its 2 first changesets - changed topic on 2 changes - - $ hg log -Gr 'draft()' - @ changeset: 21:56c83be6105f - | tag: tip - | topic: changewat - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: fran? - | - o changeset: 20:ceba5be9d56f - | topic: changewat - | parent: 3:a53952faf762 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: start on fran - | - -Case with branching: - - $ hg up changewat - 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg up t1 - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ echo gamma >> gamma - $ hg ci -m gamma - - $ hg log -Gr 'draft()' - @ changeset: 22:0d3d805542b4 - | tag: tip - | topic: changewat - | parent: 20:ceba5be9d56f - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: gamma - | - | o changeset: 21:56c83be6105f - |/ topic: changewat - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: fran? - | - o changeset: 20:ceba5be9d56f - | topic: changewat - | parent: 3:a53952faf762 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: start on fran - | - - $ hg topics --rev 't1::' changewut - switching to topic changewut - active topic 'changewat' is now empty - changed topic on 3 changes - - $ hg log -Gr 'draft()' - @ changeset: 25:729ed5717393 - | tag: tip - | topic: changewut - | parent: 23:62e49f09f883 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: gamma - | - | o changeset: 24:369c6e2e5474 - |/ topic: changewut - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: fran? - | - o changeset: 23:62e49f09f883 - | topic: changewut - | parent: 3:a53952faf762 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: start on fran - | Testing for updating to t0 ========================== + $ hg up fran + switching to topic fran + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg stack - ### topic: changewut (2 heads) - ### target: default (branch), 5 behind - t3: fran? - t1^ start on fran (base) - t2@ gamma (current) - t1: start on fran + ### topic: fran + ### target: default (branch), ambigious rebase destination - branch 'default' has 2 heads + t1@ start on fran (current) t0^ Add file delta (base) $ hg up t0 - preserving the current topic 'changewut' - 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + preserving the current topic 'fran' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg topic - * changewut + * fran $ hg stack - ### topic: changewut (2 heads) - ### target: default (branch), 5 behind - t3: fran? - t1^ start on fran (base) - t2: gamma + ### topic: fran + ### target: default (branch), ambigious rebase destination - branch 'default' has 2 heads t1: start on fran t0^ Add file delta (base) $ hg topics --age - * changewut (1970-01-01 by test) + * fran (1970-01-01 by test) $ cd .. @@ -920,22 +668,22 @@ > EOF $ cat <> $HGRCPATH > [experimental] - > enforce-topic = yes + > topic-mode = enforce > EOF $ touch a b c d $ hg add a $ hg ci -m "Added a" abort: no active topic - (set a current topic or use '--config experimental.enforce-topic=no' to commit without a topic) + (see 'hg help -e topic.topic-mode' for details) [255] (same test, checking we abort before the editor) $ EDITOR=cat hg ci -m "Added a" --edit abort: no active topic - (set a current topic or use '--config experimental.enforce-topic=no' to commit without a topic) + (see 'hg help -e topic.topic-mode' for details) [255] - $ hg ci -m "added a" --config experimental.enforce-topic=no + $ hg ci -m "added a" --config experimental.topic-mode=off $ hg log changeset: 0:a154386e50d1 tag: tip @@ -943,6 +691,7 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: added a + Testing the --age flag for `hg topics` ====================================== diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-touch.t --- a/tests/test-touch.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-touch.t Tue Oct 10 22:40:41 2017 +0200 @@ -36,7 +36,7 @@ working directory parent is obsolete! (*) (glob) (use 'hg evolve' to update to its successor: *) (glob) $ hg log -G - o 3:[0-9a-f]{12} ab (re) + o 2:[0-9a-f]{12} ab (re) @ 1:[0-9a-f]{12} a (re) @@ -44,13 +44,13 @@ [1] a reviving this changeset will create divergence unless you make a duplicate. (a)llow divergence or (d)uplicate the changeset? a - 2 new divergent changesets + 2 new content-divergent changesets $ hg log -G - @ 4:[0-9a-f]{12} a (re) + @ 3:[0-9a-f]{12} a (re) - o 3:[0-9a-f]{12} ab (re) + o 2:[0-9a-f]{12} ab (re) - $ hg prune 4 + $ hg prune 3 0 files updated, 0 files merged, 1 files removed, 0 files unresolved working directory now at 000000000000 1 changesets pruned @@ -59,9 +59,9 @@ $ hg touch --duplicate . $ hg log -G - @ 5:[0-9a-f]{12} (re) + @ 4:[0-9a-f]{12} (re) - o 3:[0-9a-f]{12} ab (re) + o 2:[0-9a-f]{12} ab (re) Multiple touch @@ -73,23 +73,23 @@ $ hg add d $ hg commit -m d $ hg log -G - @ 7:[0-9a-f]{12} d (re) + @ 6:[0-9a-f]{12} d (re) | - o 6:[0-9a-f]{12} c (re) + o 5:[0-9a-f]{12} c (re) | - o 5:[0-9a-f]{12} (re) + o 4:[0-9a-f]{12} (re) - o 3:[0-9a-f]{12} ab (re) + o 2:[0-9a-f]{12} ab (re) $ hg touch .^:. $ hg log -G - @ 9:[0-9a-f]{12} d (re) + @ 8:[0-9a-f]{12} d (re) | - o 8:[0-9a-f]{12} c (re) + o 7:[0-9a-f]{12} c (re) | - o 5:[0-9a-f]{12} (re) + o 4:[0-9a-f]{12} (re) - o 3:[0-9a-f]{12} ab (re) + o 2:[0-9a-f]{12} ab (re) check move data kept after rebase on touch: @@ -107,38 +107,36 @@ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg touch - 1 new unstable changesets + 1 new orphan changesets $ hg log -G --hidden - | o 10:[0-9a-f]{12} move (re) + @ 11:[0-9a-f]{12} gna1 (re) | - | x 9:[0-9a-f]{12} gna1 (re) + | o 10:[0-9a-f]{12} move (re) | | - | x 6:[0-9a-f]{12} d (re) + | x 9:[0-9a-f]{12} gna1 (re) |/ - | x 5:[0-9a-f]{12} c (re) + o 8:[0-9a-f]{12} d (re) | - o 8:[0-9a-f]{12} c (re) + o 7:[0-9a-f]{12} c (re) | - | x 7:[0-9a-f]{12} d (re) + | x 6:[0-9a-f]{12} d (re) | | - | x 6:[0-9a-f]{12} c (re) + | x 5:[0-9a-f]{12} c (re) |/ - o 5:[0-9a-f]{12} (re) + o 4:[0-9a-f]{12} (re) - x 4:[0-9a-f]{12} a (re) + x 3:[0-9a-f]{12} a (re) - o 3:[0-9a-f]{12} ab (re) + o 2:[0-9a-f]{12} ab (re) - x 2:[0-9a-f]{12} temporary amend commit for [0-9a-f]{12} (re) - | x 1:[0-9a-f]{12} a (re) x 0:[0-9a-f]{12} a (re) - $ hg rebase -s 11 -d 12 - rebasing 11:[0-9a-f]{12} "move" (re) + $ hg rebase -s 10 -d 11 + rebasing 10:[0-9a-f]{12} "move" (re) $ hg st -C --change=tip A gna2 gna1 @@ -146,12 +144,12 @@ check that the --duplicate option does not create divergence - $ hg touch --duplicate 11 --hidden - 1 new unstable changesets + $ hg touch --duplicate 10 --hidden + 1 new orphan changesets check that reviving a changeset with no successor does not show the prompt - $ hg prune 14 + $ hg prune 13 1 changesets pruned - $ hg touch 14 --hidden - 1 new unstable changesets + $ hg touch 13 --hidden + 1 new orphan changesets diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-tutorial.t --- a/tests/test-tutorial.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-tutorial.t Tue Oct 10 22:40:41 2017 +0200 @@ -311,17 +311,17 @@ width=0.5]; 0 -> 1 [arrowhead=none, penwidth=2.0]; - 4 [fillcolor="#9999FF", + 3 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=4, + label=3, pin=true, - pos="1,4!", + pos="1,3!", shape=pentagon, style=filled, width=0.5]; - 1 -> 4 [arrowhead=none, + 1 -> 3 [arrowhead=none, penwidth=2.0]; } #endif @@ -411,18 +411,6 @@ width=0.5]; 0 -> 1 [arrowhead=none, penwidth=2.0]; - 5 [fillcolor="#9999FF", - fixedsize=true, - group=default, - height=0.5, - label=5, - pin=true, - pos="1,5!", - shape=circle, - style=filled, - width=0.5]; - 0 -> 5 [arrowhead=none, - penwidth=2.0]; 4 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -430,10 +418,22 @@ label=4, pin=true, pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; + 3 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=3, + pin=true, + pos="1,3!", shape=pentagon, style=filled, width=0.5]; - 1 -> 4 [arrowhead=none, + 1 -> 3 [arrowhead=none, penwidth=2.0]; } #endif @@ -444,7 +444,7 @@ $ hg rebase --dest 9ca060c80d74 --source 4d5dc8187023 rebasing 1:4d5dc8187023 "adding condiment" merging shopping - rebasing 4:9d0363b81950 "adding fruit" + rebasing 3:9d0363b81950 "adding fruit" merging shopping @@ -478,6 +478,18 @@ shape=circle, style=filled, width=0.5]; + 4 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=4, + pin=true, + pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; 5 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -485,10 +497,10 @@ label=5, pin=true, pos="1,5!", - shape=circle, + shape=pentagon, style=filled, width=0.5]; - 0 -> 5 [arrowhead=none, + 4 -> 5 [arrowhead=none, penwidth=2.0]; 6 [fillcolor="#9999FF", fixedsize=true, @@ -502,18 +514,6 @@ width=0.5]; 5 -> 6 [arrowhead=none, penwidth=2.0]; - 7 [fillcolor="#9999FF", - fixedsize=true, - group=default, - height=0.5, - label=7, - pin=true, - pos="1,7!", - shape=pentagon, - style=filled, - width=0.5]; - 6 -> 7 [arrowhead=none, - penwidth=2.0]; } #endif @@ -580,6 +580,18 @@ shape=circle, style=filled, width=0.5]; + 4 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=4, + pin=true, + pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; 5 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -587,10 +599,10 @@ label=5, pin=true, pos="1,5!", - shape=circle, + shape=pentagon, style=filled, width=0.5]; - 0 -> 5 [arrowhead=none, + 4 -> 5 [arrowhead=none, penwidth=2.0]; 6 [fillcolor="#9999FF", fixedsize=true, @@ -604,18 +616,6 @@ width=0.5]; 5 -> 6 [arrowhead=none, penwidth=2.0]; - 7 [fillcolor="#9999FF", - fixedsize=true, - group=default, - height=0.5, - label=7, - pin=true, - pos="1,7!", - shape=pentagon, - style=filled, - width=0.5]; - 6 -> 7 [arrowhead=none, - penwidth=2.0]; } #endif @@ -664,7 +664,7 @@ $ hg up 'p1(10b8aeaa8cc8)' # going on "bathroom stuff" parent 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg grab fac207dec9f5 # moving "SPAM SPAM" to the working directory parent - rebasing 10:fac207dec9f5 "SPAM SPAM" (tip) + rebasing 9:fac207dec9f5 "SPAM SPAM" (tip) merging shopping ? files updated, 0 files merged, 0 files removed, 0 files unresolved (glob) $ hg log -G @@ -700,6 +700,18 @@ shape=circle, style=filled, width=0.5]; + 4 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=4, + pin=true, + pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; 5 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -707,10 +719,10 @@ label=5, pin=true, pos="1,5!", - shape=circle, + shape=pentagon, style=filled, width=0.5]; - 0 -> 5 [arrowhead=none, + 4 -> 5 [arrowhead=none, penwidth=2.0]; 6 [fillcolor="#9999FF", fixedsize=true, @@ -724,41 +736,29 @@ width=0.5]; 5 -> 6 [arrowhead=none, penwidth=2.0]; - 7 [fillcolor="#9999FF", - fixedsize=true, - group=default, - height=0.5, - label=7, - pin=true, - pos="1,7!", - shape=pentagon, - style=filled, - width=0.5]; - 6 -> 7 [arrowhead=none, - penwidth=2.0]; - 9 [fillcolor="#9999FF", + 8 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=9, + label=8, pin=true, - pos="1,9!", + pos="1,8!", shape=pentagon, style=filled, width=0.5]; - 7 -> 9 [arrowhead=none, + 6 -> 8 [arrowhead=none, penwidth=2.0]; - 11 [fillcolor="#9999FF", + 10 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=11, + label=10, pin=true, - pos="1,11!", + pos="1,10!", shape=pentagon, style=filled, width=0.5]; - 7 -> 11 [arrowhead=none, + 6 -> 10 [arrowhead=none, penwidth=2.0]; } #endif @@ -802,12 +802,12 @@ adding manifests adding file changes added 3 changesets with 3 changes to 1 files - 6 new obsolescence markers + 5 new obsolescence markers for simplicity sake we get the bathroom change in line again $ hg grab 10b8aeaa8cc8 - rebasing 9:10b8aeaa8cc8 "bathroom stuff" + rebasing 8:10b8aeaa8cc8 "bathroom stuff" merging shopping ? files updated, 0 files merged, 0 files removed, 0 files unresolved (glob) $ hg phase --draft . @@ -844,6 +844,18 @@ shape=circle, style=filled, width=0.5]; + 4 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=4, + pin=true, + pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; 5 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -854,7 +866,7 @@ shape=circle, style=filled, width=0.5]; - 0 -> 5 [arrowhead=none, + 4 -> 5 [arrowhead=none, penwidth=2.0]; 6 [fillcolor="#9999FF", fixedsize=true, @@ -868,17 +880,17 @@ width=0.5]; 5 -> 6 [arrowhead=none, penwidth=2.0]; - 7 [fillcolor="#9999FF", + 10 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=7, + label=10, pin=true, - pos="1,7!", + pos="1,10!", shape=circle, style=filled, width=0.5]; - 6 -> 7 [arrowhead=none, + 6 -> 10 [arrowhead=none, penwidth=2.0]; 11 [fillcolor="#9999FF", fixedsize=true, @@ -887,22 +899,10 @@ label=11, pin=true, pos="1,11!", - shape=circle, - style=filled, - width=0.5]; - 7 -> 11 [arrowhead=none, - penwidth=2.0]; - 12 [fillcolor="#9999FF", - fixedsize=true, - group=default, - height=0.5, - label=12, - pin=true, - pos="1,12!", shape=pentagon, style=filled, width=0.5]; - 11 -> 12 [arrowhead=none, + 10 -> 11 [arrowhead=none, penwidth=2.0]; } #endif @@ -1135,6 +1135,18 @@ shape=circle, style=filled, width=0.5]; + 4 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=4, + pin=true, + pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; 5 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -1145,7 +1157,7 @@ shape=circle, style=filled, width=0.5]; - 0 -> 5 [arrowhead=none, + 4 -> 5 [arrowhead=none, penwidth=2.0]; 6 [fillcolor="#9999FF", fixedsize=true, @@ -1159,41 +1171,29 @@ width=0.5]; 5 -> 6 [arrowhead=none, penwidth=2.0]; - 7 [fillcolor="#9999FF", - fixedsize=true, - group=default, - height=0.5, - label=7, - pin=true, - pos="1,7!", - shape=circle, - style=filled, - width=0.5]; - 6 -> 7 [arrowhead=none, - penwidth=2.0]; - 11 [fillcolor="#9999FF", + 10 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=11, + label=10, pin=true, - pos="1,11!", + pos="1,10!", shape=circle, style=filled, width=0.5]; - 7 -> 11 [arrowhead=none, + 6 -> 10 [arrowhead=none, penwidth=2.0]; - 14 [fillcolor="#9999FF", + 12 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=14, + label=12, pin=true, - pos="1,14!", + pos="1,12!", shape=pentagon, style=filled, width=0.5]; - 11 -> 14 [arrowhead=none, + 10 -> 12 [arrowhead=none, penwidth=2.0]; } #endif @@ -1206,9 +1206,9 @@ adding changesets adding manifests adding file changes - added 1 changesets with 1 changes to 1 files (+1 heads) - (run 'hg heads' to see heads, 'hg merge' to merge) - 1 new unstable changesets + added 1 changesets with 1 changes to 1 files + (run 'hg update' to get a working copy) + 1 new orphan changesets The new changeset "animal" is based on an old changeset of "bathroom". You can @@ -1251,6 +1251,18 @@ shape=circle, style=filled, width=0.5]; + 4 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=4, + pin=true, + pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; 5 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -1261,7 +1273,7 @@ shape=circle, style=filled, width=0.5]; - 0 -> 5 [arrowhead=none, + 4 -> 5 [arrowhead=none, penwidth=2.0]; 6 [fillcolor="#9999FF", fixedsize=true, @@ -1275,69 +1287,57 @@ width=0.5]; 5 -> 6 [arrowhead=none, penwidth=2.0]; - 7 [fillcolor="#9999FF", + 10 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=7, + label=10, pin=true, - pos="1,7!", + pos="1,10!", shape=circle, style=filled, width=0.5]; - 6 -> 7 [arrowhead=none, + 6 -> 10 [arrowhead=none, penwidth=2.0]; - 11 [fillcolor="#9999FF", + 11 [fillcolor="#DFDFFF", fixedsize=true, - group=default, + group=default_alt, height=0.5, label=11, pin=true, - pos="1,11!", - shape=circle, - style=filled, + pos="2,11!", + shape=pentagon, + style="dotted, filled", width=0.5]; - 7 -> 11 [arrowhead=none, + 10 -> 11 [arrowhead=none, penwidth=2.0]; - 12 [fillcolor="#DFDFFF", + 12 [fillcolor="#9999FF", fixedsize=true, - group=default_alt, + group=default, height=0.5, label=12, pin=true, - pos="2,12!", - shape=pentagon, - style="dotted, filled", - width=0.5]; - 11 -> 12 [arrowhead=none, - penwidth=2.0]; - 14 [fillcolor="#9999FF", - fixedsize=true, - group=default, - height=0.5, - label=14, - pin=true, - pos="1,14!", + pos="1,12!", shape=pentagon, style=filled, width=0.5]; - 11 -> 14 [arrowhead=none, + 10 -> 12 [arrowhead=none, penwidth=2.0]; - 12 -> 14 [arrowhead=none, + 11 -> 12 [arrowhead=none, minlen=0, penwidth=2.0, style=dashed]; - 15 [fillcolor="#FF4F4F", + 13 [fillcolor="#FF4F4F", fixedsize=true, group=default_alt, height=0.5, - label=15, + label=13, pin=true, - pos="2,15!", + pos="2,13!", shape=pentagon, style=filled, width=0.5]; - 12 -> 15 [arrowhead=none, + 11 -> 13 [arrowhead=none, penwidth=2.0]; } #endif @@ -1353,7 +1353,7 @@ $ hg push other pushing to $TESTTMP/other (glob) searching for changes - abort: push includes unstable changeset: bf1b0d202029! + abort: push includes orphan changeset: bf1b0d202029! (use 'hg evolve' to get a stable history or --force to ignore warnings) [255] @@ -1364,15 +1364,15 @@ It has a --dry-run option to only suggest the next move. $ hg evolve --dry-run - move:[15] animals - atop:[14] bathroom stuff + move:[13] animals + atop:[12] bathroom stuff hg rebase -r bf1b0d202029 -d a44c85f957d3 Let's do it $ hg evolve - move:[15] animals - atop:[14] bathroom stuff + move:[13] animals + atop:[12] bathroom stuff merging shopping working directory is now at ee942144f952 @@ -1413,6 +1413,18 @@ shape=circle, style=filled, width=0.5]; + 4 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=4, + pin=true, + pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; 5 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -1423,7 +1435,7 @@ shape=circle, style=filled, width=0.5]; - 0 -> 5 [arrowhead=none, + 4 -> 5 [arrowhead=none, penwidth=2.0]; 6 [fillcolor="#9999FF", fixedsize=true, @@ -1437,29 +1449,29 @@ width=0.5]; 5 -> 6 [arrowhead=none, penwidth=2.0]; - 7 [fillcolor="#9999FF", + 10 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=7, + label=10, pin=true, - pos="1,7!", + pos="1,10!", shape=circle, style=filled, width=0.5]; - 6 -> 7 [arrowhead=none, + 6 -> 10 [arrowhead=none, penwidth=2.0]; - 11 [fillcolor="#9999FF", + 12 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=11, + label=12, pin=true, - pos="1,11!", - shape=circle, + pos="1,12!", + shape=pentagon, style=filled, width=0.5]; - 7 -> 11 [arrowhead=none, + 10 -> 12 [arrowhead=none, penwidth=2.0]; 14 [fillcolor="#9999FF", fixedsize=true, @@ -1471,19 +1483,7 @@ shape=pentagon, style=filled, width=0.5]; - 11 -> 14 [arrowhead=none, - penwidth=2.0]; - 16 [fillcolor="#9999FF", - fixedsize=true, - group=default, - height=0.5, - label=16, - pin=true, - pos="1,16!", - shape=pentagon, - style=filled, - width=0.5]; - 14 -> 16 [arrowhead=none, + 12 -> 14 [arrowhead=none, penwidth=2.0]; } #endif @@ -1497,7 +1497,7 @@ adding manifests adding file changes added 2 changesets with 2 changes to 1 files (+1 heads) - 3 new obsolescence markers + 2 new obsolescence markers obsoleted 2 changesets Remote get a warning that current working directory is based on an obsolete @@ -1578,6 +1578,18 @@ shape=circle, style=filled, width=0.5]; + 4 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=4, + pin=true, + pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; 5 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -1588,7 +1600,7 @@ shape=circle, style=filled, width=0.5]; - 0 -> 5 [arrowhead=none, + 4 -> 5 [arrowhead=none, penwidth=2.0]; 6 [fillcolor="#9999FF", fixedsize=true, @@ -1602,29 +1614,29 @@ width=0.5]; 5 -> 6 [arrowhead=none, penwidth=2.0]; - 7 [fillcolor="#9999FF", + 10 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=7, + label=10, pin=true, - pos="1,7!", + pos="1,10!", shape=circle, style=filled, width=0.5]; - 6 -> 7 [arrowhead=none, + 6 -> 10 [arrowhead=none, penwidth=2.0]; - 11 [fillcolor="#9999FF", + 12 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=11, + label=12, pin=true, - pos="1,11!", - shape=circle, + pos="1,12!", + shape=pentagon, style=filled, width=0.5]; - 7 -> 11 [arrowhead=none, + 10 -> 12 [arrowhead=none, penwidth=2.0]; 14 [fillcolor="#9999FF", fixedsize=true, @@ -1636,31 +1648,19 @@ shape=pentagon, style=filled, width=0.5]; - 11 -> 14 [arrowhead=none, + 12 -> 14 [arrowhead=none, penwidth=2.0]; - 16 [fillcolor="#9999FF", + 15 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=16, + label=15, pin=true, - pos="1,16!", + pos="1,15!", shape=pentagon, style=filled, width=0.5]; - 14 -> 16 [arrowhead=none, - penwidth=2.0]; - 17 [fillcolor="#9999FF", - fixedsize=true, - group=default, - height=0.5, - label=17, - pin=true, - pos="1,17!", - shape=pentagon, - style=filled, - width=0.5]; - 16 -> 17 [arrowhead=none, + 14 -> 15 [arrowhead=none, penwidth=2.0]; } #endif @@ -1671,7 +1671,7 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory now at a44c85f957d3 1 changesets pruned - 1 new unstable changesets + 1 new orphan changesets The animals changeset is still displayed because the "SPAM SPAM SPAM" changeset @@ -1714,6 +1714,18 @@ shape=circle, style=filled, width=0.5]; + 4 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=4, + pin=true, + pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; 5 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -1724,7 +1736,7 @@ shape=circle, style=filled, width=0.5]; - 0 -> 5 [arrowhead=none, + 4 -> 5 [arrowhead=none, penwidth=2.0]; 6 [fillcolor="#9999FF", fixedsize=true, @@ -1738,74 +1750,62 @@ width=0.5]; 5 -> 6 [arrowhead=none, penwidth=2.0]; - 7 [fillcolor="#9999FF", + 10 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=7, + label=10, pin=true, - pos="1,7!", + pos="1,10!", shape=circle, style=filled, width=0.5]; - 6 -> 7 [arrowhead=none, + 6 -> 10 [arrowhead=none, penwidth=2.0]; - 11 [fillcolor="#9999FF", + 12 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=11, + label=12, pin=true, - pos="1,11!", - shape=circle, + pos="1,12!", + shape=pentagon, style=filled, width=0.5]; - 7 -> 11 [arrowhead=none, + 10 -> 12 [arrowhead=none, penwidth=2.0]; - 14 [fillcolor="#9999FF", + 14 [fillcolor="#DFDFFF", fixedsize=true, - group=default, + group=default_alt, height=0.5, label=14, pin=true, - pos="1,14!", + pos="2,14!", shape=pentagon, - style=filled, + style="dotted, filled", width=0.5]; - 11 -> 14 [arrowhead=none, + 12 -> 14 [arrowhead=none, penwidth=2.0]; - 16 [fillcolor="#DFDFFF", + 15 [fillcolor="#FF4F4F", fixedsize=true, group=default_alt, height=0.5, - label=16, + label=15, pin=true, - pos="2,16!", - shape=pentagon, - style="dotted, filled", - width=0.5]; - 14 -> 16 [arrowhead=none, - penwidth=2.0]; - 17 [fillcolor="#FF4F4F", - fixedsize=true, - group=default_alt, - height=0.5, - label=17, - pin=true, - pos="2,17!", + pos="2,15!", shape=pentagon, style=filled, width=0.5]; - 16 -> 17 [arrowhead=none, + 14 -> 15 [arrowhead=none, penwidth=2.0]; } #endif - $ hg log -r "unstable()" + $ hg log -r "orphan()" 99f039c5ec9e (draft): SPAM SPAM SPAM #if docgraph-ext - $ hg docgraph -r "unstable()" --sphinx-directive --rankdir LR #rest-ignore + $ hg docgraph -r "orphan()" --sphinx-directive --rankdir LR #rest-ignore .. graphviz:: strict digraph { @@ -1813,13 +1813,13 @@ splines=polyline ]; node [label="\N"]; - 17 [fillcolor="#FF4F4F", + 15 [fillcolor="#FF4F4F", fixedsize=true, group=default_alt, height=0.5, - label=17, + label=15, pin=true, - pos="1,17!", + pos="1,15!", shape=pentagon, style=filled, width=0.5]; @@ -1827,8 +1827,8 @@ #endif $ hg evolve - move:[17] SPAM SPAM SPAM - atop:[14] bathroom stuff + move:[15] SPAM SPAM SPAM + atop:[12] bathroom stuff merging shopping working directory is now at 40aa40daeefb @@ -1867,6 +1867,18 @@ shape=circle, style=filled, width=0.5]; + 4 [fillcolor="#9999FF", + fixedsize=true, + group=default, + height=0.5, + label=4, + pin=true, + pos="1,4!", + shape=circle, + style=filled, + width=0.5]; + 0 -> 4 [arrowhead=none, + penwidth=2.0]; 5 [fillcolor="#9999FF", fixedsize=true, group=default, @@ -1877,7 +1889,7 @@ shape=circle, style=filled, width=0.5]; - 0 -> 5 [arrowhead=none, + 4 -> 5 [arrowhead=none, penwidth=2.0]; 6 [fillcolor="#9999FF", fixedsize=true, @@ -1891,53 +1903,41 @@ width=0.5]; 5 -> 6 [arrowhead=none, penwidth=2.0]; - 7 [fillcolor="#9999FF", + 10 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=7, + label=10, pin=true, - pos="1,7!", - shape=circle, - style=filled, - width=0.5]; - 6 -> 7 [arrowhead=none, - penwidth=2.0]; - 11 [fillcolor="#9999FF", - fixedsize=true, - group=default, - height=0.5, - label=11, - pin=true, - pos="1,11!", + pos="1,10!", shape=circle, style=filled, width=0.5]; - 7 -> 11 [arrowhead=none, + 6 -> 10 [arrowhead=none, penwidth=2.0]; - 14 [fillcolor="#9999FF", + 12 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=14, + label=12, pin=true, - pos="1,14!", + pos="1,12!", shape=pentagon, style=filled, width=0.5]; - 11 -> 14 [arrowhead=none, + 10 -> 12 [arrowhead=none, penwidth=2.0]; - 18 [fillcolor="#9999FF", + 16 [fillcolor="#9999FF", fixedsize=true, group=default, height=0.5, - label=18, + label=16, pin=true, - pos="1,18!", + pos="1,16!", shape=pentagon, style=filled, width=0.5]; - 14 -> 18 [arrowhead=none, + 12 -> 16 [arrowhead=none, penwidth=2.0]; } #endif diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-uncommit-interactive.t --- a/tests/test-uncommit-interactive.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-uncommit-interactive.t Tue Oct 10 22:40:41 2017 +0200 @@ -302,7 +302,7 @@ $ hg amend $ glog - @ 7:905eb2a23ea2@default(draft) another one + @ 6:905eb2a23ea2@default(draft) another one | o 0:7733902a8d94@default(draft) The base commit @@ -445,9 +445,9 @@ undeleting a $ glog - @ 12:42cc15efbec2@default(draft) Added foo + @ 10:42cc15efbec2@default(draft) Added foo | - o 7:905eb2a23ea2@default(draft) another one + o 6:905eb2a23ea2@default(draft) another one | o 0:7733902a8d94@default(draft) The base commit @@ -517,15 +517,15 @@ ===================================================== $ glog - @ 18:25a080d13cb2@default(draft) Added x + @ 16:25a080d13cb2@default(draft) Added x | - o 12:42cc15efbec2@default(draft) Added foo + o 10:42cc15efbec2@default(draft) Added foo | - o 7:905eb2a23ea2@default(draft) another one + o 6:905eb2a23ea2@default(draft) another one | o 0:7733902a8d94@default(draft) The base commit - $ hg up 7 + $ hg up 6 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ touch bar @@ -597,7 +597,7 @@ patching file a Hunk #1 succeeded at 1 with fuzz 1 (offset -1 lines). - 2 new unstable changesets + 2 new orphan changesets $ hg diff diff -r 676366511f95 a diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-uncommit.t --- a/tests/test-uncommit.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-uncommit.t Tue Oct 10 22:40:41 2017 +0200 @@ -244,7 +244,7 @@ (use 'hg evolve' to update to its successor: e8db4aa611f6) $ hg --config extensions.purge= purge $ hg uncommit -I 'set:added() and e' - 2 new divergent changesets + 2 new content-divergent changesets $ hg st --copies A e $ hg st --copies --change . @@ -290,7 +290,7 @@ (5eb72dbe0cb4 has diverged, use 'hg evolve --list --contentdivergent' to resolve the issue) $ hg --config extensions.purge= purge $ hg uncommit --all -X e - 1 new divergent changesets + 1 new content-divergent changesets $ hg st --copies M b M d @@ -337,7 +337,7 @@ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved [8] touncommit $ hg uncommit aa - 1 new unstable changesets + 1 new orphan changesets Test uncommiting agains a different base diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-unstable.t --- a/tests/test-unstable.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-unstable.t Tue Oct 10 22:40:41 2017 +0200 @@ -42,7 +42,7 @@ $ hg up "desc(_b)" 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg amend -m "bprime" - 1 new unstable changesets + 1 new orphan changesets $ hg log -G @ 3:36050226a9b9@default(draft) bprime | @@ -86,7 +86,7 @@ $ hg up "desc(_a)" 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg amend -m "aprime" - 1 new unstable changesets + 1 new orphan changesets $ hg log -G @ 4:47127ea62e5f@default(draft) aprime | @@ -134,7 +134,7 @@ $ hg up "desc(_a)" 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg amend -m "aprime" - 1 new unstable changesets + 1 new orphan changesets $ hg up "desc(_c)" 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg amend -m "cprime" @@ -185,7 +185,7 @@ created new head $ hg prune "desc(_b)" -s "desc(bprimesplit1) + desc(bprimesplit2)" --split 1 changesets pruned - 1 new unstable changesets + 1 new orphan changesets $ hg log -G @ 4:2a4ccc0bb20c@default(draft) add bprimesplit2 | @@ -230,14 +230,14 @@ created new head $ hg prune "desc(_b)" -s "desc(bprimesplit1) + desc(bprimesplit2)" --split 1 changesets pruned - 1 new unstable changesets + 1 new orphan changesets $ hg up "desc(_a)" 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ mkcommits bsecondsplit1 bsecondsplit2 created new head $ hg prune "desc(bprimesplit1)" -s "desc(bsecondsplit2)" 1 changesets pruned - 1 new unstable changesets + 1 new orphan changesets $ hg prune "desc(bprimesplit2)" -s "desc(bsecondsplit1)" 1 changesets pruned $ hg log -G @@ -288,7 +288,7 @@ created new head $ hg prune "desc(_b)" -s "desc(bprimesplit1) + desc(bprimesplit2)" --split 1 changesets pruned - 1 new unstable changesets + 1 new orphan changesets $ hg log -G @ 4:3c69ea6aa93e@default(draft) add bprimesplit2 | diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-userguide.t --- a/tests/test-userguide.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-userguide.t Tue Oct 10 22:40:41 2017 +0200 @@ -42,10 +42,8 @@ (use --hidden to access hidden revisions; successor: 934359450037) [255] $ hg --hidden shortlog -G - @ 3:934359450037 draft implement feature Y + @ 2:934359450037 draft implement feature Y | - | x 2:6c5f78d5d467 draft temporary amend commit for fe0ecd3bd2a4 - | | | x 1:fe0ecd3bd2a4 draft implement feature Y |/ o 0:08c4b6f4efc8 draft init @@ -54,10 +52,8 @@ $ hg rollback -q $ hg amend -u alice -d '2 0' -m 'implement feature Y' $ hg --hidden shortlog -G - @ 3:934359450037 draft implement feature Y + @ 2:934359450037 draft implement feature Y | - | x 2:6c5f78d5d467 draft temporary amend commit for fe0ecd3bd2a4 - | | | x 1:fe0ecd3bd2a4 draft implement feature Y |/ o 0:08c4b6f4efc8 draft init @@ -70,11 +66,11 @@ working directory now at 934359450037 1 changesets pruned $ hg parents --template '{rev}:{node|short} {desc|firstline}\n' - 3:934359450037 implement feature Y - $ hg --hidden shortlog -G -r 3: - x 4:a3e0ef24aaf0 draft debug hack + 2:934359450037 implement feature Y + $ hg --hidden shortlog -G -r 934359450037: + x 3:a3e0ef24aaf0 draft debug hack | - @ 3:934359450037 draft implement feature Y + @ 2:934359450037 draft implement feature Y | ~ @@ -85,16 +81,16 @@ $ hg uncommit file2.c $ hg status M file2.c - $ hg --hidden shortlog -G -r 'descendants(3) - 4' - @ 6:c8defeecf7a4 draft fix bug 234 + $ hg --hidden shortlog -G -r 'descendants(934359450037) - a3e0ef24aaf0' + @ 5:c8defeecf7a4 draft fix bug 234 | - | x 5:da4331967f5f draft fix bug 234 + | x 4:da4331967f5f draft fix bug 234 |/ - o 3:934359450037 draft implement feature Y + o 2:934359450037 draft implement feature Y | ~ $ hg parents --template '{rev}:{node|short} {desc|firstline}\n{files}\n' - 6:c8defeecf7a4 fix bug 234 + 5:c8defeecf7a4 fix bug 234 file1.c $ hg revert --no-backup file2.c @@ -105,32 +101,32 @@ $ hg commit -m 'step 2' $ echo step3 >> file2.c $ hg commit -m 'step 3' - $ hg log --template '{rev}:{node|short} {desc|firstline}\n' -r 7:: - 7:05e61aab8294 step 1 - 8:be6d5bc8e4cc step 2 - 9:35f432d9f7c1 step 3 - $ hg fold -d '0 0' -m 'fix bug 64' --from -r 7:: + $ hg log --template '{rev}:{node|short} {desc|firstline}\n' -r 05e61aab8294:: + 6:05e61aab8294 step 1 + 7:be6d5bc8e4cc step 2 + 8:35f432d9f7c1 step 3 + $ hg fold -d '0 0' -m 'fix bug 64' --from -r 05e61aab8294:: 3 changesets folded 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg --hidden shortlog -G -r 6:: - @ 10:171c6a79a27b draft fix bug 64 + $ hg --hidden shortlog -G -r c8defeecf7a4:: + @ 9:171c6a79a27b draft fix bug 64 | - | x 9:35f432d9f7c1 draft step 3 + | x 8:35f432d9f7c1 draft step 3 | | - | x 8:be6d5bc8e4cc draft step 2 + | x 7:be6d5bc8e4cc draft step 2 | | - | x 7:05e61aab8294 draft step 1 + | x 6:05e61aab8294 draft step 1 |/ - o 6:c8defeecf7a4 draft fix bug 234 + o 5:c8defeecf7a4 draft fix bug 234 | ~ - $ hg --hidden log -q -r 'successors(7) | successors(8) | successors(9)' - 10:171c6a79a27b - $ hg --hidden log -q -r 'precursors(10)' - 7:05e61aab8294 - 8:be6d5bc8e4cc - 9:35f432d9f7c1 - $ hg diff -c 10 -U 0 + $ hg --hidden log -q -r 'successors(05e61aab8294) | successors(be6d5bc8e4cc) | successors(35f432d9f7c1)' + 9:171c6a79a27b + $ hg --hidden log -q -r 'precursors(171c6a79a27b)' + 6:05e61aab8294 + 7:be6d5bc8e4cc + 8:35f432d9f7c1 + $ hg diff -c 171c6a79a27b -U 0 diff -r c8defeecf7a4 -r 171c6a79a27b file1.c --- a/file1.c Thu Jan 01 00:00:10 1970 +0000 +++ b/file1.c Thu Jan 01 00:00:00 1970 +0000 @@ -150,50 +146,48 @@ $ hg commit -u bob -d '4 0' -m 'cleanup' $ echo 'new feature' >> file1.c $ hg commit -u bob -d '5 0' -m 'feature 23' - $ hg --hidden shortlog -G -r 10:: - @ 13:dadcbba2d606 draft feature 23 + $ hg --hidden shortlog -G -r 171c6a79a27b:: + @ 12:dadcbba2d606 draft feature 23 | - o 12:debd46bb29dc draft cleanup + o 11:debd46bb29dc draft cleanup | - o 11:3e1cb8f70c02 draft fix bug 17 + o 10:3e1cb8f70c02 draft fix bug 17 | - o 10:171c6a79a27b draft fix bug 64 + o 9:171c6a79a27b draft fix bug 64 | ~ example 7: amend an older changeset (figures 6, 7) - $ hg update -q 11 + $ hg update -q -r 3e1cb8f70c02 $ echo 'fix fix fix fix' > file2.c $ hg amend -u bob -d '6 0' - 2 new unstable changesets + 2 new orphan changesets $ hg shortlog -r 'obsolete()' - 11:3e1cb8f70c02 draft fix bug 17 - $ hg shortlog -r 'unstable()' - 12:debd46bb29dc draft cleanup - 13:dadcbba2d606 draft feature 23 - $ hg --hidden shortlog -G -r 10:: - @ 15:395cbeda3a06 draft fix bug 17 + 10:3e1cb8f70c02 draft fix bug 17 + $ hg shortlog -r "orphan()" + 11:debd46bb29dc draft cleanup + 12:dadcbba2d606 draft feature 23 + $ hg --hidden shortlog -G -r 171c6a79a27b:: + @ 13:395cbeda3a06 draft fix bug 17 | - | x 14:f7fab707e247 draft temporary amend commit for 3e1cb8f70c02 + | o 12:dadcbba2d606 draft feature 23 + | | + | o 11:debd46bb29dc draft cleanup | | - | | o 13:dadcbba2d606 draft feature 23 - | | | - | | o 12:debd46bb29dc draft cleanup - | |/ - | x 11:3e1cb8f70c02 draft fix bug 17 + | x 10:3e1cb8f70c02 draft fix bug 17 |/ - o 10:171c6a79a27b draft fix bug 64 + o 9:171c6a79a27b draft fix bug 64 | ~ $ hg evolve -q --all - $ hg shortlog -G -r 10:: - @ 17:91b4b0f8b5c5 draft feature 23 + $ hg shortlog -G -r 171c6a79a27b:: + @ 15:91b4b0f8b5c5 draft feature 23 | - o 16:fe8858bd9bc2 draft cleanup + o 14:fe8858bd9bc2 draft cleanup | - o 15:395cbeda3a06 draft fix bug 17 + o 13:395cbeda3a06 draft fix bug 17 | - o 10:171c6a79a27b draft fix bug 64 + o 9:171c6a79a27b draft fix bug 64 | ~ @@ -204,38 +198,36 @@ $ hg commit -u carl -d '8 0' -m 'debug hack' $ echo 'more useful' >> file1.c $ hg commit -u carl -d '9 0' -m 'more work' - $ hg shortlog -G -r 17:: - @ 20:ea8fafca914b draft more work + $ hg shortlog -G -r 91b4b0f8b5c5:: + @ 18:ea8fafca914b draft more work | - o 19:b23d06b457a8 draft debug hack + o 17:b23d06b457a8 draft debug hack | - o 18:1f33e68b18b9 draft useful work + o 16:1f33e68b18b9 draft useful work | - o 17:91b4b0f8b5c5 draft feature 23 + o 15:91b4b0f8b5c5 draft feature 23 | ~ example 8: prune an older changeset (figures 8, 9) - $ hg prune 19 + $ hg prune b23d06b457a8 1 changesets pruned - 1 new unstable changesets - $ hg --hidden shortlog -G -r 18:: - @ 20:ea8fafca914b draft more work + 1 new orphan changesets + $ hg --hidden shortlog -G -r b23d06b457a8:: + @ 18:ea8fafca914b draft more work | - x 19:b23d06b457a8 draft debug hack - | - o 18:1f33e68b18b9 draft useful work + x 17:b23d06b457a8 draft debug hack | ~ $ hg evolve -q --all --any - $ hg --hidden shortlog -G -r 18:: - @ 21:4393e5877437 draft more work + $ hg --hidden shortlog -G -r 1f33e68b18b9:: + @ 19:4393e5877437 draft more work | - | x 20:ea8fafca914b draft more work + | x 18:ea8fafca914b draft more work | | - | x 19:b23d06b457a8 draft debug hack + | x 17:b23d06b457a8 draft debug hack |/ - o 18:1f33e68b18b9 draft useful work + o 16:1f33e68b18b9 draft useful work | ~ @@ -246,35 +238,35 @@ $ hg commit -u dan -d '11 0' -m 'fix bug 53' $ echo 'and this handles bug 67' >> file1.c $ hg commit -u dan -d '12 0' -m 'fix bug 67' - $ hg update 22 + $ hg update -r f84357446753 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg shortlog -G -r 21:: - o 23:4db2428c8ae3 draft fix bug 67 + $ hg shortlog -G -r 4393e5877437:: + o 21:4db2428c8ae3 draft fix bug 67 | - @ 22:f84357446753 draft fix bug 53 + @ 20:f84357446753 draft fix bug 53 | - o 21:4393e5877437 draft more work + o 19:4393e5877437 draft more work | ~ $ hg uncommit file2.c - 1 new unstable changesets + 1 new orphan changesets $ hg status M file2.c $ hg revert file2.c $ hg evolve --all --any - move:[23] fix bug 67 - atop:[24] fix bug 53 + move:[21] fix bug 67 + atop:[22] fix bug 53 working directory is now at 0d972d6888e6 - $ hg --hidden shortlog -G -r 21:: - @ 25:0d972d6888e6 draft fix bug 67 + $ hg --hidden shortlog -G -r 4393e5877437:: + @ 23:0d972d6888e6 draft fix bug 67 | - o 24:71bb83d674c5 draft fix bug 53 + o 22:71bb83d674c5 draft fix bug 53 | - | x 23:4db2428c8ae3 draft fix bug 67 + | x 21:4db2428c8ae3 draft fix bug 67 | | - | x 22:f84357446753 draft fix bug 53 + | x 20:f84357446753 draft fix bug 53 |/ - o 21:4393e5877437 draft more work + o 19:4393e5877437 draft more work | ~ $ rm file2.c.orig @@ -286,48 +278,48 @@ $ hg commit -u dan -d '11 0' -m 'fix a bug' $ echo 'new feature' >> file1.c $ hg commit -u dan -d '12 0' -m 'new feature' - $ hg update 26 + $ hg update 5b31a1239ab9 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg --hidden shortlog -G -r 25:: - o 27:fbb3c6d50427 draft new feature + $ hg --hidden shortlog -G -r 0d972d6888e6:: + o 25:fbb3c6d50427 draft new feature | - @ 26:5b31a1239ab9 draft fix a bug + @ 24:5b31a1239ab9 draft fix a bug | - o 25:0d972d6888e6 draft fix bug 67 + o 23:0d972d6888e6 draft fix bug 67 | ~ $ hg uncommit file2.c - 1 new unstable changesets + 1 new orphan changesets $ hg status M file2.c $ hg commit -m 'useful tweak' $ hg --hidden shortlog -G -r 0d972d6888e6:: - @ 29:51e0d8c0a922 draft useful tweak + @ 27:51e0d8c0a922 draft useful tweak | - o 28:2594e98553a9 draft fix a bug + o 26:2594e98553a9 draft fix a bug | - | o 27:fbb3c6d50427 draft new feature + | o 25:fbb3c6d50427 draft new feature | | - | x 26:5b31a1239ab9 draft fix a bug + | x 24:5b31a1239ab9 draft fix a bug |/ - o 25:0d972d6888e6 draft fix bug 67 + o 23:0d972d6888e6 draft fix bug 67 | ~ $ hg evolve --all --any - move:[27] new feature - atop:[28] fix a bug + move:[25] new feature + atop:[26] fix a bug working directory is now at 166c1c368ab6 $ hg --hidden shortlog -G -r 0d972d6888e6:: - @ 30:166c1c368ab6 draft new feature + @ 28:166c1c368ab6 draft new feature | - | o 29:51e0d8c0a922 draft useful tweak + | o 27:51e0d8c0a922 draft useful tweak |/ - o 28:2594e98553a9 draft fix a bug + o 26:2594e98553a9 draft fix a bug | - | x 27:fbb3c6d50427 draft new feature + | x 25:fbb3c6d50427 draft new feature | | - | x 26:5b31a1239ab9 draft fix a bug + | x 24:5b31a1239ab9 draft fix a bug |/ - o 25:0d972d6888e6 draft fix bug 67 + o 23:0d972d6888e6 draft fix bug 67 | ~ diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-wireproto-bundle1.t --- a/tests/test-wireproto-bundle1.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-wireproto-bundle1.t Tue Oct 10 22:40:41 2017 +0200 @@ -69,7 +69,7 @@ remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files (+1 heads) - remote: 2 new obsolescence markers + remote: 1 new obsolescence markers remote: obsoleted 1 changesets $ hg push pushing to ssh://user@dummy/server @@ -87,7 +87,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re) - 2 new obsolescence markers + 1 new obsolescence markers obsoleted 1 changesets (run 'hg heads' to see heads) $ hg -R ../other pull diff -r 9360d7ad7270 -r cb8ae3cb0bbc tests/test-wireproto.t --- a/tests/test-wireproto.t Tue Oct 10 21:12:14 2017 +0200 +++ b/tests/test-wireproto.t Tue Oct 10 22:40:41 2017 +0200 @@ -72,8 +72,8 @@ remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files (+1 heads) - remote: obsmarker-exchange: 151 bytes received - remote: 2 new obsolescence markers + remote: obsmarker-exchange: 92 bytes received + remote: 1 new obsolescence markers remote: obsoleted 1 changesets $ hg push pushing to ssh://user@dummy/server @@ -91,8 +91,8 @@ adding manifests adding file changes added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re) - obsmarker-exchange: 151 bytes received - 2 new obsolescence markers + obsmarker-exchange: 92 bytes received + 1 new obsolescence markers obsoleted 1 changesets (run 'hg heads' to see heads) $ hg -R ../other pull @@ -115,8 +115,8 @@ remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files - remote: obsmarker-exchange: 151 bytes received - remote: 2 new obsolescence markers + remote: obsmarker-exchange: 92 bytes received + remote: 1 new obsolescence markers $ hg -R ../other pull pulling from ssh://user@dummy/server searching for changes @@ -124,8 +124,8 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - obsmarker-exchange: 151 bytes received - 2 new obsolescence markers + obsmarker-exchange: 92 bytes received + 1 new obsolescence markers (run 'hg update' to get a working copy) some common hidden @@ -138,7 +138,7 @@ remote: adding manifests remote: adding file changes remote: added 1 changesets with 0 changes to 1 files (+1 heads) - remote: obsmarker-exchange: 226 bytes received + remote: obsmarker-exchange: 167 bytes received remote: 1 new obsolescence markers remote: obsoleted 1 changesets $ hg -R ../other pull @@ -148,7 +148,7 @@ adding manifests adding file changes added 1 changesets with 0 changes to 1 files (+1 heads) - obsmarker-exchange: 226 bytes received + obsmarker-exchange: 167 bytes received 1 new obsolescence markers obsoleted 1 changesets (run 'hg heads' to see heads) @@ -173,7 +173,7 @@ (skipping discovery of obsolescence markers, will exchange everything) (controled by 'experimental.evolution.obsdiscovery' configuration) no changes found - remote: obsmarker-exchange: 376 bytes received + remote: obsmarker-exchange: 258 bytes received [1] $ hg -R ../other pull --config experimental.evolution.obsdiscovery=no pulling from ssh://user@dummy/server @@ -181,6 +181,6 @@ no changes found (skipping discovery of obsolescence markers, will exchange everything) (controled by 'experimental.evolution.obsdiscovery' configuration) - obsmarker-exchange: 376 bytes received + obsmarker-exchange: 258 bytes received $ cd ..