diff --git a/eden/mononoke/tests/integration/library.sh b/eden/mononoke/tests/integration/library.sh index 4958fc7d21..77f441d99a 100644 --- a/eden/mononoke/tests/integration/library.sh +++ b/eden/mononoke/tests/integration/library.sh @@ -526,6 +526,8 @@ function setup_common_hg_configs { cat >> "$HGRCPATH" < EOF $ hg rebase -s $A -d with_merge_master -q - $ hg log -G -T '{node|short}' + $ hg log -r 'sort(all(),topo)' -G -T '{node|short}' o 62dba675d1b3 ├─╮ │ o be5140c7bfcc │ │ - o │ 23aa3f5a6de2 - │ │ │ o 7a7632995e68 + │ │ + o │ 23aa3f5a6de2 ├─╯ o 68360e2c98f0 │ diff --git a/eden/mononoke/tests/integration/test-server-sqlblob.t b/eden/mononoke/tests/integration/test-server-sqlblob.t index e410a7ec67..e71e4dc332 100644 --- a/eden/mononoke/tests/integration/test-server-sqlblob.t +++ b/eden/mononoke/tests/integration/test-server-sqlblob.t @@ -50,6 +50,7 @@ Init treemanifest and remotefilelog date: Thu Jan 01 00:00:00 1970 +0000 summary: a (re) + $ hg bookmark -r . master_bookmark $ cd $TESTTMP setup repo2 @@ -116,7 +117,7 @@ setup repo2 setup master bookmarks - $ hg bookmark master_bookmark -r e635b24c95f7 + $ hg bookmark master_bookmark -fr e635b24c95f7 $ hg bookmark master_bookmark2 -r 9f8e7242d9fa blobimport diff --git a/eden/mononoke/tests/integration/test-streaming-clone-tag.t b/eden/mononoke/tests/integration/test-streaming-clone-tag.t index 79a41b3d3d..0cd311b783 100644 --- a/eden/mononoke/tests/integration/test-streaming-clone-tag.t +++ b/eden/mononoke/tests/integration/test-streaming-clone-tag.t @@ -6,6 +6,7 @@ #require slow $ . "${TEST_FIXTURES}/library.sh" + $ setconfig format.use-segmented-changelog=false setup configuration $ default_setup_blobimport "blob_files" diff --git a/eden/mononoke/tests/integration/test-streaming-clone.t b/eden/mononoke/tests/integration/test-streaming-clone.t index 0d00b0a08e..3943440ad5 100644 --- a/eden/mononoke/tests/integration/test-streaming-clone.t +++ b/eden/mononoke/tests/integration/test-streaming-clone.t @@ -6,6 +6,7 @@ #require slow $ . "${TEST_FIXTURES}/library.sh" + $ setconfig format.use-segmented-changelog=false setup configuration $ default_setup_blobimport "blob_files" diff --git a/eden/scm/edenscm/changelog2.py b/eden/scm/edenscm/changelog2.py index 3ff5402306..ba1d9cf8a7 100644 --- a/eden/scm/edenscm/changelog2.py +++ b/eden/scm/edenscm/changelog2.py @@ -28,7 +28,7 @@ from . import ( ) from .changelog import changelogrevision, gitcommittext, hgcommittext, readfiles from .i18n import _ -from .node import hex, nullid, nullrev, wdirid, wdirrev +from .node import bin, hex, nullid, nullrev, wdirid, wdirrev SEGMENTS_DIR = "segments/v1" @@ -419,6 +419,8 @@ class changelog(object): parents = [p for p in (p1, p2) if p != nullid] basetext = textmap.get(deltabase) or self.revision(deltabase) rawtext = bytes(mdiff.patch(basetext, delta)) + if b"stepparents:" in rawtext: + parents += parse_stepparents(changelogrevision(rawtext).extra) textmap[node] = rawtext commits.append((node, parents, rawtext)) # Attempt to make memory usage bound for large pulls. @@ -692,6 +694,32 @@ class nodemap(object): pass +# Old storage (revlog) and protocols (bundle2 - aka. addgroup()) use +# "stepparents" extras to store >2 parents. This needs to be converted +# back to real parents for newer backends. +# +# "stepparents" contains hex nodes joined by ",". +# +# | >2 parents | >2 parents via | +# | via parents | commit extra | +# -------------------------------------------------- +# storage: dag | yes | no | +# storage: revlog | no [1] | yes | +# protocol: bundle2 | no | yes | +# protocol: edenapi | yes | ignore | +# +# [1]: support >2 parents in memory, but discard on flush +# +# See also D30686450. +def parse_stepparents(extras): + """parse extra parent nodes from commit extras -> [node]""" + if extras: + stepparents = extras.get("stepparents") + if stepparents: + return [bin(h) for h in stepparents.split(",")] + return [] + + def migrateto(repo, name): """Migrate from the current format to the destination format `name`.""" if backendname(repo) == name: diff --git a/eden/scm/edenscm/configitems.py b/eden/scm/edenscm/configitems.py index 197565bef5..b7ee15624f 100644 --- a/eden/scm/edenscm/configitems.py +++ b/eden/scm/edenscm/configitems.py @@ -325,7 +325,8 @@ coreconfigitem("format", "dirstate", default=2) coreconfigitem("format", "manifestcachesize", default=None) coreconfigitem("format", "maxchainlen", default=None) coreconfigitem("format", "obsstore-version", default=None) -coreconfigitem("format", "use-segmented-changelog", default=False) +coreconfigitem("format", "usegeneraldelta", default=True) +coreconfigitem("format", "use-segmented-changelog", default=util.istest()) coreconfigitem("fsmonitor", "warn_when_unused", default=True) coreconfigitem("fsmonitor", "warn_update_file_count", default=50000) coreconfigitem("git", "submodules", default=True) diff --git a/eden/scm/edenscm/ext/extlib/watchmanclient/__init__.py b/eden/scm/edenscm/ext/extlib/watchmanclient/__init__.py index 6345099400..46e99529bc 100644 --- a/eden/scm/edenscm/ext/extlib/watchmanclient/__init__.py +++ b/eden/scm/edenscm/ext/extlib/watchmanclient/__init__.py @@ -333,9 +333,16 @@ class client(object): # Estimate the distance between two nodes def calcdistance(repo, oldnode, newnode): - anc = repo.changelog.ancestor(oldnode, newnode) - ancrev = repo[anc].rev() - distance = abs(repo[oldnode].rev() - ancrev) + abs(repo[newnode].rev() - ancrev) + cl = repo.changelog + if cl.algorithmbackend == "segments": + only = cl.dag.only + distance1 = len(only([oldnode], [newnode])) + distance2 = len(only([newnode], [oldnode])) + distance = distance1 + distance2 + else: + anc = repo.changelog.ancestor(oldnode, newnode) + ancrev = repo[anc].rev() + distance = abs(repo[oldnode].rev() - ancrev) + abs(repo[newnode].rev() - ancrev) return distance diff --git a/eden/scm/lib/repo/src/init.rs b/eden/scm/lib/repo/src/init.rs index c60d1826e4..849bc96deb 100644 --- a/eden/scm/lib/repo/src/init.rs +++ b/eden/scm/lib/repo/src/init.rs @@ -140,7 +140,7 @@ fn write_store_requirements(path: &Path, config: &ConfigSet) -> Result<(), InitE create_dir(store_path)?; let mut requirements = HashSet::from(["visibleheads"]); if config - .get_or("format", "use-segmented-changelog", || false) + .get_or("format", "use-segmented-changelog", is_test) .unwrap_or(false) { requirements.insert("invalidatelinkrev"); @@ -157,6 +157,10 @@ fn write_store_requirements(path: &Path, config: &ConfigSet) -> Result<(), InitE write_requirements_file(store_path, requirements) } +fn is_test() -> bool { + std::env::var_os("TESTTMP").is_some() +} + #[cfg(test)] mod tests { use configparser::config::Options; diff --git a/eden/scm/lib/revlogindex/src/revlogindex.rs b/eden/scm/lib/revlogindex/src/revlogindex.rs index df666f44d9..a18a6f135b 100644 --- a/eden/scm/lib/revlogindex/src/revlogindex.rs +++ b/eden/scm/lib/revlogindex/src/revlogindex.rs @@ -853,7 +853,7 @@ impl RevlogIndex { let mut parent_revs: [i32; 2] = [-1, -1]; let parents = &parent_map[node.as_ref()]; - for (p_id, p_node) in parents.iter().enumerate() { + for (p_id, p_node) in parents.iter().take(2).enumerate() { parent_revs[p_id] = get_rev(&existing_nodes, p_node)? as i32; } diff --git a/eden/scm/tests/edit-feature-header.py b/eden/scm/tests/edit-feature-header.py index aa1525b3cb..ff5063d067 100755 --- a/eden/scm/tests/edit-feature-header.py +++ b/eden/scm/tests/edit-feature-header.py @@ -42,17 +42,10 @@ FEATURES = [ Feature("no-chg", "#chg-incompatible\n"), Feature("debugruntest", "#debugruntest-compatible\n"), Feature("no-treemanifest", " $ disable treemanifest\n"), - Feature( - "no-narrowheads", - " $ setconfig experimental.narrow-heads=false\n", - ), - Feature( - "no-segmented-changelog", - " $ setconfig format.use-segmented-changelog=true\n", - ), Feature("no-ignore-revnum", " $ setconfig ui.ignorerevnum=false\n"), Feature("py2", "#require py2\n"), Feature("no-inprocess-hg", "#inprocess-hg-incompatible\n"), + Feature("rev-compat", " $ setconfig devel.segmented-changelog-rev-compat=true\n"), ] diff --git a/eden/scm/tests/features.py b/eden/scm/tests/features.py index 9fc8b50770..69c297be39 100644 --- a/eden/scm/tests/features.py +++ b/eden/scm/tests/features.py @@ -11,578 +11,6 @@ But for now it's easier than changing configs at the top of individual tests. """ -segmentedchangelogcompatiblelist = """ - test-abort-checkin.t - test-absorb-edit-lines.t - test-absorb-phase.t - test-absorb-remotefilelog-segments.t - test-absorb-strip.t - test-add.t - test-adding-invalid-utf8.t - test-addremove-similar.t - test-alias-circular.t - test-alias.t - test-alias2.t - test-amend-next.t - test-amend-previous.t - test-amend-rebase-inmemory.t - test-amend-restack-auto.t - test-amend-restack-divergence.t - test-amend-restack-multidest.t - test-amend-restack-obsolete.t - test-amend-split.t - test-amend-template.t - test-amend-to.t - test-amend-userestack.t - test-amend.t - test-annotate.py - test-arbitraryfilectx.t - test-archive-symlinks.t - test-argspans.py - test-atomictempfile.py - test-auth-match.t - test-autofix.t - test-bad-extension.t - test-bad-pull.t - test-basic.t - test-batching.py - test-bdiff.py - test-bindag.t - test-bisect3.t - test-bookmarks-current.t - test-bookmarks-loading-order.t - test-bookmarks-merge.t - test-bookmarks-rebase.t - test-bookmarks-strip.t - test-bookmarkstore.py - test-casecollision.t - test-changelog-exec.t - test-check-clang-format.t - test-check-code.t - test-check-execute.t - test-check-fix-code.t - test-check-help.t - test-check-interfaces.py - test-check-win32-signature.py - test-checkoutidentifier-commitinfo.t - test-checkoutidentifier-dirstateinfo.t - test-clienttelemetry.t - test-command-template2.t - test-commit-amend.t - test-commit-interactive-curses.t - test-commit-reuse.t - test-commit-revive.t - test-commit-size-limits.t - test-commit-unresolved.t - test-commitcloud-background-logging-perms.t - test-commitcloud-backup-compression.t - test-commitcloud-backup-logging.t - test-commitcloud-backup-remotenames.t - test-commitcloud-backup-share.t - test-commitcloud-checkoutlocations-update.t - test-commitcloud-list-workspaces.t - test-commitcloud-smartlog-version.t - test-commitcloud-smartlog.t - test-commitcloud-sync-rb-enabling.t - test-commitcloud-sync-workspacenames.t - test-committer.t - test-completion.t - test-config-configfile.t - test-config.t - test-configparser.py - test-conflict.t - test-contrib-check-code.t - test-copytrace-manual.t - test-crdump-commitcloud.t - test-ctrl-c.t - test-custom-filters.t - test-debugbundle-rebase.t - test-debugbundle.t - test-debugcauserusterror.t - test-debugcheckcasecollisions-treemanifest.t - test-debugcommands.t - test-debugdifftree.t - test-debugdirs.py - test-debugdynamicconfig.t - test-debugexistingcasecollisions.t - test-debugextensions.t - test-debugignore.t - test-debugmetalog.t - test-debugrebuilddirstate-corrupt.t - test-debugshell-args.t - test-debugsmallcommitmetadata.t - test-debugthrowrustexception.t - test-demandimport.py - test-deprecate.t - test-devel-warnings.t - test-diff-antipatience.t - test-diff-binary.t - test-diff-color.t - test-diff-copy-depth.t - test-diff-hashbinary.t - test-diff-ignore-whitespace.t - test-diff-indent-heuristic.t - test-diff-subdir.t - test-diff-unified.t - test-diff-upgrade.t - test-diffstat.t - test-dirstate-backup.t - test-dirstate-completion.t - test-dirstate-nonnormalset.t - test-dirstate-rebuild.t - test-dirstate-symlink.t - test-dirstate.t - test-disable-bad-features.t - test-disablesymlinks.t - test-dispatch-debug-prefix.t - test-dispatch.t - test-doctest.py - test-dott-quote.t - test-dott-translate.py - test-duplicateoptions.py - test-dynamicconfig-unicode.t - test-edit-tmp.t - test-editor-filename.t - test-empty-dir.t - test-empty-file.t - test-encode.t - test-encoding-align.t - test-encoding-func.py - test-encoding-textwrap.t - test-eolfilename.t - test-execute-bit.t - test-exitcodemask.t - test-extension-ext-prefix.t - test-extension-inline.t - test-extensions-afterloaded.t - test-extensions-default.t - test-extensions-wrapfunction.py - test-fb-ext-absorb-filefixupstate.py - test-fb-ext-arcconfig.t - test-fb-ext-catnotate.t - test-fb-ext-checkmessagehook.t - test-fb-ext-copytrace-amend.t - test-fb-ext-copytrace-mergedriver.t - test-fb-ext-debugcommitmessage.t - test-fb-ext-diff-since-last-submit.t - test-fb-ext-errorredirect.t - test-fb-ext-extorder.t - test-fb-ext-extutil.py - test-fb-ext-fastannotate-revmap.py - test-fb-ext-fbhistedit-exec-obsolete.t - test-fb-ext-fbhistedit-exec.t - test-fb-ext-fbhistedit-graft.t - test-fb-ext-fbhistedit-json.t - test-fb-ext-fbhistedit-show-plan.t - test-fb-ext-fbhistedit-stop-obsolete.t - test-fb-ext-fbhistedit-stop.t - test-fb-ext-generic-bisect.py - test-fb-ext-githelp.t - test-fb-ext-grpcheck.t - test-fb-ext-morestatus.t - test-fb-ext-myparent.t - test-fb-ext-ownercheck-t.py - test-fb-ext-patchrmdir.py - test-fb-ext-phabdiff.t - test-fb-ext-phabstatus.t - test-fb-ext-rage.t - test-fb-ext-remotefilelog-bundleloop.t - test-fb-ext-remotefilelog-commit-repack.t - test-fb-ext-remotefilelog-datapack.py - test-fb-ext-remotefilelog-histpack.py - test-fb-ext-remotefilelog-localdatarepack-full.t - test-fb-ext-remotefilelog-rust-lfs.t - test-fb-ext-remotefilelog-ruststores-lfs-bundle.t - test-fb-ext-remotefilelog-ruststores-lfs-duplicated.t - test-fb-ext-sampling.t - test-fb-ext-scm-prompt-compat.t - test-fb-ext-scm-prompt-git.t - test-fb-ext-scm-prompt-hg.t - test-fb-ext-sigtrace.t - test-fb-ext-simplecache.t - test-fb-ext-smartlog-smallcommitmetadata.t - test-fb-ext-smartlog.t - test-fb-ext-sshaskpass.py - test-fb-ext-syncstatus.t - test-fb-ext-template-stat.t - test-fb-ext-treemanifest-bad-tree.t - test-fb-ext-treemanifest-convertflat.t - test-fb-ext-treemanifest-sendtrees.t - test-fb-ext-treemanifest-sparse-prefetch.t - test-fb-ext-treemanifest-sparse.t - test-fb-ext-tweakdefaults-bookmarks.t - test-fb-ext-tweakdefaults-grep.t - test-fb-ext-tweakdefaults-opawarecommands.t - test-fb-ext-tweakdefaults-ordering.t - test-fb-ext-tweakdefaults-revsets.t - test-filecache.py - test-filelog.py - test-fileset-generated.t - test-getbundle.t - test-git.t - test-gitignore.t - test-globalrevs-svnrev.t - test-help.t - test-hg-parseurl.py - test-ext-logginghelper.t - test-hghave.t - test-hgrc.t - test-hint.t - test-histedit-bookmark-motion.t - test-histedit-drop.t - test-histedit-fold-non-commute.t - test-histedit-fold.t - test-histedit-non-commute-abort.t - test-histedit-non-commute.t - test-histedit-templates.t - test-hybridencode.py - test-import-context.t - test-import-eol.t - test-import-git.t - test-include-fail.t - test-infinitepush-push-to-other.t - test-install.t - test-issue1089.t - test-issue1877.t - test-issue2137.t - test-issue4074.t - test-known.t - test-lfs-journal.t - test-lfs-localstore.t - test-lfs-pointer.py - test-linelog-edits.py - test-linerange.py - test-lock.py - test-log-dir.t - test-log-exthook.t - test-log-simplify-grandparents.t - test-lrucachedict.py - test-manifest-insert-before-remove.py - test-manifest.py - test-match.py - test-merge-changedelete.t - test-merge-conflict-count.t - test-merge-force.t - test-merge-halt.t - test-merge-internal-tools-pattern.t - test-merge-issue5091.t - test-merge-local.t - test-merge-relative-paths.t - test-merge-update-noconflict.t - test-merge2.t - test-mergedriver2.t - test-metalog-migration-t.py - test-minirst.py - test-mkdir-broken-symlink.t - test-mmap-unlink.t - test-mutation-fromobsmarkers.t - test-mutation-loops.t - test-mutation-phases.t - test-namespaces.t - test-narrow-heads-migration.t - test-nested-repo.t - test-origbackup-conflict.t - test-patch-offset.t - test-pathconflicts-update.t - test-pathencode.py - test-paths.t - test-patterns.t - test-perftrace.t - test-perftweaks.t - test-profile.t - test-progress-classicrenderer.t - test-progress-fancyrenderer.t - test-progress-rust.t - test-progressfile.t - test-purge.t - test-pushrebase-obsolete.t - test-rebase-base-flag.t - test-rebase-copy-relations.t - test-rebase-inmemory-conflicts.t - test-rebase-inmemory-mergedriver-exception.t - test-rebase-missing-cwd.t - test-rebase-partial.t - test-rebase-templates.t - test-rebase-transaction.t - test-rebuildstate.t - test-record.t - test-remotenames-paths.t - test-remove.t - test-repo-leak.t - test-requires.t - test-restack-old-stack.t - test-revert-flags.t - test-revert-interactive.t - test-revert-status.t - test-revlog-packentry.t - test-revlog-raw.py - test-revset-dirstate-parents.t - test-root.t - test-run-tests.py - test-rust-rmcwd.t - test-rust-subcommands.t - test-rustthreading.py - test-seq.t - test-serve.t - test-share-requirements.t - test-share-unshare.t - test-show.t - test-simplekeyvaluefile.py - test-simplemerge.py - test-smartlog-collapse-obsolete.t - test-sortdictfilter.t - test-sparse-casecollision.t - test-sparse-clear.t - test-sparse-diff.t - test-sparse-extensions.t - test-sparse-fetch.t - test-sparse-ignore.t - test-sparse-import.t - test-sparse-issues.t - test-sparse-merges.t - test-sparse-notsparse.t - test-sparse-profiles.t - test-sparse-rebase.t - test-sparse-unsafe-sparse-profile.t - test-sparse-warn.t - test-sshserver.py - test-status-color.t - test-status-inprocess.py - test-status-mlog.t - test-status-terse.t - test-subcommands.t - test-template-filestat.t - test-tools.t - test-treemanifest-amend.t - test-treemanifest-diff.t - test-treestate-needcheck.t - test-treestate-repack.t - test-treestate-upgrade-t.py - test-treestate.py - test-ui-color.py - test-ui-config.py - test-ui-verbosity.py - test-uncommit.t - test-undo-narrow-heads.t - test-unicode-inputs.t - test-unified-test.t - test-update-inactive.t - test-update-issue1456.t - test-update-merge-state.t - test-update-reverse.t - test-update-symlink-to-plain.t - test-url.py - test-username-newline.t - test-visibility-reset.t - test-walk.t - test-walkrepo.py - test-wireproto.py - test-wireproto.t - test-worker.t - test-xdg.t - test-zstdelta.py - - test-addremove.t - test-amend-nextrebase.t - test-audit-path.t - test-backout.t - test-bisect2.t - test-blackbox.t - test-bundle2-multiple-changegroups.t - test-bundle-type.t - test-commit-amend-reuse-rawfctx.t - test-commitcloud-backup-all.t - test-commitcloud-backup-lfs.t - test-commitcloud-backup-remotenames-public.t - test-commitcloud-backup-restore-obsolete.t - test-commitcloud-backup-restore.t - test-commitcloud-backup-rev.t - test-commitcloud-backup-status.t - test-commitcloud-lazypull-phab.t - test-commitcloud-lazypull.t - test-commitcloud-rename-workspace.t - test-commitcloud-sync-migration.t - test-commitcloud-sync-race.t - test-commitcloud-sync-rb-deletion.t - test-commitcloud-sync-rb-enabling2.t - test-commitcloud-sync.t - test-commitcloud-update.t - test-commit-interactive.t - test-commit.t - test-copy-move-merge.t - test-copytrace-heuristics.t - test-debugsendunbundle.t - test-double-merge.t - test-encoding.t - test-eol-add.t - test-eol-patch.t - test-eol.t - test-fb-ext-copytrace.t - test-fb-ext-crdump.t - test-fb-ext-debugdetectissues.t - test-fb-ext-dirsync-amend.t - test-fb-ext-dirsync.t - test-fb-ext-git-getmeta.t - test-fb-ext-merge-conflictinfo.t - test-fb-ext-mergedriver.t - test-fb-ext-pull-createmarkers.t - test-fb-ext-pushrebase-protection.t - test-fb-ext-pushvars-remotenames.t - test-fb-ext-remotefilelog-archive.t - test-fb-ext-remotefilelog-bad-configs.t - test-fb-ext-remotefilelog-bundle2-legacy.t - test-fb-ext-remotefilelog-bundle2.t - test-fb-ext-remotefilelog-bundles.t - test-fb-ext-remotefilelog-getpackv2.t - test-fb-ext-remotefilelog-local.t - test-fb-ext-remotefilelog-pull-noshallow.t - test-fb-ext-remotefilelog-push-pull-query-string.t - test-fb-ext-remotefilelog-ruststores-repack.t - test-fb-ext-remotefilelog-ruststores-rotatelog-size.t - test-fb-ext-remotefilelog-treemanifest-corrupt.t - test-fb-ext-remotefilelog-worker.t - test-fb-ext-reset-remotenames.t - test-fb-ext-treemanifest-blame.t - test-fb-ext-treemanifest-comparetrees.t - test-fb-ext-treemanifest-disabled.t - test-fb-ext-treemanifest-infinitepush.t - test-fb-ext-treemanifest-peertopeer.t - test-fb-ext-treemanifest-pushrebase.t - test-fb-ext-treemanifest-pushrebase-treeonly.t - test-fb-ext-treemanifest-remotenames-out-of-sync.t - test-fb-ext-treemanifest-treeonly-copyamend.t - test-fb-ext-treemanifest-treeonly-fetching.t - test-fb-ext-tweakdefaults-remotenames.t - test-gitlookup-infinitepush.t - test-globalopts.t - test-ext-stablerev.t - test-histedit-arguments.t - test-histedit-base.t - test-histedit-commute.t - test-histedit-mutation.t - test-histedit-no-change.t - test-histedit-outgoing.t - test-important-remote-names-t.py - test-import-bypass.t - test-infinitepush-bundlestore.t - test-infinitepush-delscratchbookmarks.t - test-infinitepush-publicscratchbookmarks.t - test-infinitepush-remotefilelog.t - test-infinitepush-remotenames.t - test-infinitepush-scratchbookmark-commands.t - test-init.t - test-issue1502.t - test-issue522.t - test-issue586.t - test-issue672.t - test-journal-share.t - test-journal.t - test-lfs-checksum.t - test-lock-badness.t - test-log-wireproto-requests-getpack.t - test-log-wireproto-requests.t - test-merge1.t - test-merge6.t - test-merge8-t.py - test-merge-criss-cross.t - test-merge-remove.t - test-merge-symlinks.t - test-merge-types.t - test-mutation-infinitepush.t - test-mutation-pushrebase.t - test-mutation.t - test-narrow-heads.t - test-pathconflicts-basic.t - test-pathconflicts-merge.t - test-pending.t - test-perftweaks-remotenames.t - test-pushvars.t - test-rebase-bookmarks.t - test-rebase-collapse.t - test-rebase-conflicts.t - test-rebase-dest.t - test-rebase-detach.t - test-rebase-flags.t - test-rebase-inmemory-mergedriver.t - test-rebase-inmemory-nochanges.t - test-rebase-inmemory-noconflict.t - test-rebase-inmemory.t - test-rebase-interruptions.t - test-rebase-newancestor.t - test-rebase-removed.t - test-rebase-rename.t - test-remotefilelog-undesired-file-logging.t - test-remotenames-basic.t - test-remotenames-convert-t.py - test-remotenames-fastheaddiscovery-hidden-commits.t - test-remotenames-journal.t - test-remotenames-namespaces.t - test-remotenames-on-and-off-t.py - test-remotenames-pull-rebase.t - test-remotenames-push.t - test-remotenames-pushto-pathandname.t - test-remotenames-pushto.t - test-remotenames-selective-pull-accessed-bookmarks.t - test-remotenames-selective-pull.t - test-remotenames-strip.t - test-remotenames-transition.t - test-rename-after-merge.t - test-rename-dir-merge.t - test-rename-merge1.t - test-rename.t - test-resolve.t - test-revset-outgoing.t - test-share.t - test-sparse-clone.t - test-sparse.t - test-symlink-os-yes-fs-no.py - test-symlink-placeholder.t - test-symlinks.t - test-unrelated-pull.t - test-update-dest.t - test-update-names.t - test-up-local-change.t - test-url-rev.t - test-visibility-bundle.t - test-visibility-cloudsync.t - test-visibility.t - - test-rebase-abort.t - test-rebase-brute-force.t - test-rebase-check-restore.t - test-rebase-emptycommit.t - - test-clone-resume.t - test-clone-uncompressed.t - - test-commitcloud-sync-bookmarks.t - test-commitcloud-sync-omission.t - test-commitcloud-sync-remote-bookmarks.t - - test-debugrebuildchangelog.t - test-doctor.t - - test-fb-ext-pull-createmarkers-hide-later.t - - test-fb-ext-remotefilelog-blame.t - test-fb-ext-remotefilelog-push-pull.t - test-fb-ext-remotefilelog-sparse.t - test-fb-ext-remotefilelog-treemanifest-lfs.t - - test-fb-ext-treemanifest-autoconvert.t - test-fb-ext-treemanifest-prefetch.t - test-fb-ext-treemanifest-pullpublic.t - test-fb-ext-treemanifest-treeonly.t - test-fb-ext-treemanifest.t - - test-pushrebase-withmerges.t - test-rebase-mutation.t - test-rebase-scenario-global.t - - test-context.py - test-rustmanifest.t -""" - ignorerevnumincompatiblelist = """ test-alias.t test-amend-hide.t @@ -725,10 +153,6 @@ def setup(testname, hgrcpath): # Disable mutation.record to maintain commit hashes. with open(hgrcpath, "a") as f: f.write("\n[mutation]\nrecord=False\n") - # Enable segmented changelog if compatible. - if testname in segmentedchangelogcompatiblelist: - with open(hgrcpath, "a") as f: - f.write("\n[format]\nuse-segmented-changelog=True\n") # Support legacy revnum for incompatible tests. if testname in ignorerevnumincompatiblelist: with open(hgrcpath, "a") as f: diff --git a/eden/scm/tests/test-absorb-remotefilelog-segments.t b/eden/scm/tests/test-absorb-remotefilelog-segments.t index 64c9c11174..2f311d0031 100644 --- a/eden/scm/tests/test-absorb-remotefilelog-segments.t +++ b/eden/scm/tests/test-absorb-remotefilelog-segments.t @@ -1,5 +1,4 @@ #debugruntest-compatible - $ setconfig format.use-segmented-changelog=1 $ enable absorb remotefilelog Create repo diff --git a/eden/scm/tests/test-basic.t b/eden/scm/tests/test-basic.t index 17bf2bd1d9..4955f7674e 100644 --- a/eden/scm/tests/test-basic.t +++ b/eden/scm/tests/test-basic.t @@ -5,8 +5,6 @@ Create a repository: - $ setconfig format.use-segmented-changelog=1 - $ hg config commands.status.relative=true config.use-rust=true @@ -16,7 +14,6 @@ Create a repository: experimental.metalog=true extensions.fsmonitor= (fsmonitor !) extensions.treemanifest=! - format.use-segmented-changelog=1 fsmonitor.detectrace=1 (fsmonitor !) hint.ack-match-full-traversal=true mutation.record=False diff --git a/eden/scm/tests/test-fb-ext-smartlog.t b/eden/scm/tests/test-fb-ext-smartlog.t index 22ca31ee1a..cd5c6a6103 100644 --- a/eden/scm/tests/test-fb-ext-smartlog.t +++ b/eden/scm/tests/test-fb-ext-smartlog.t @@ -6,8 +6,6 @@ $ disable treemanifest $ enable smartlog $ readconfig < [format] - > use-segmented-changelog=1 > [experimental] > graphstyle.grandparent=| > graphstyle.missing=| diff --git a/eden/scm/tests/test-fsmonitor-filemerge.t b/eden/scm/tests/test-fsmonitor-filemerge.t index 505250e82a..1a1ebf30a9 100644 --- a/eden/scm/tests/test-fsmonitor-filemerge.t +++ b/eden/scm/tests/test-fsmonitor-filemerge.t @@ -24,9 +24,9 @@ [1] $ hg blackbox --no-timestamp --no-sid --pattern '{"watchman":"_"}' | egrep '(watchman.*state.*)' - [watchman] command ["state-enter",{"metadata":{"distance":3,"merge":false,"partial":false,"rev":"0000000000000000000000000000000000000000","status":"ok"},"name":"hg.update"}] finished in 0 ms - [watchman] command ["state-leave",{"metadata":{"distance":3,"merge":false,"partial":false,"rev":"2e2f27616b65209eecd4710c454df0f678f271d9","status":"ok"},"name":"hg.update"}] finished in 0 ms - [watchman] command ["state-enter",{"metadata":{"distance":3,"merge":true,"partial":false,"rev":"2e2f27616b65209eecd4710c454df0f678f271d9","status":"ok"},"name":"hg.update"}] finished in 0 ms + [watchman] command ["state-enter",{"metadata":{"distance":2,"merge":false,"partial":false,"rev":"0000000000000000000000000000000000000000","status":"ok"},"name":"hg.update"}] finished in 0 ms + [watchman] command ["state-leave",{"metadata":{"distance":2,"merge":false,"partial":false,"rev":"2e2f27616b65209eecd4710c454df0f678f271d9","status":"ok"},"name":"hg.update"}] finished in 0 ms + [watchman] command ["state-enter",{"metadata":{"distance":2,"merge":true,"partial":false,"rev":"2e2f27616b65209eecd4710c454df0f678f271d9","status":"ok"},"name":"hg.update"}] finished in 0 ms [watchman] command ["state-enter",{"metadata":{"path":"2"},"name":"hg.filemerge"}] finished in 0 ms [watchman] command ["state-leave",{"metadata":{"path":"2"},"name":"hg.filemerge"}] finished in 0 ms - [watchman] command ["state-leave",{"metadata":{"distance":3,"merge":true,"partial":false,"rev":"65f3e88a53bc0f5183deea0cdbc46738777ec005","status":"ok"},"name":"hg.update"}] finished in 0 ms + [watchman] command ["state-leave",{"metadata":{"distance":2,"merge":true,"partial":false,"rev":"65f3e88a53bc0f5183deea0cdbc46738777ec005","status":"ok"},"name":"hg.update"}] finished in 0 ms diff --git a/eden/scm/tests/test-log-simplify-grandparents.t b/eden/scm/tests/test-log-simplify-grandparents.t index de72d4c3d4..55a411fdd9 100644 --- a/eden/scm/tests/test-log-simplify-grandparents.t +++ b/eden/scm/tests/test-log-simplify-grandparents.t @@ -1,5 +1,4 @@ #debugruntest-compatible - $ setconfig format.use-segmented-changelog=1 $ newrepo $ drawdag << 'EOS' > E diff --git a/eden/scm/tests/test-segmented-changelog-rev-compat.t b/eden/scm/tests/test-segmented-changelog-rev-compat.t index 2f1555ad03..6f6c1c81ca 100644 --- a/eden/scm/tests/test-segmented-changelog-rev-compat.t +++ b/eden/scm/tests/test-segmented-changelog-rev-compat.t @@ -1,7 +1,5 @@ #debugruntest-compatible - $ setconfig format.use-segmented-changelog=1 - $ log_fixture() { > newrepo '' "$@" > drawdag "$@" << 'EOS' diff --git a/eden/scm/tests/test-smartlog-collapse-obsolete.t b/eden/scm/tests/test-smartlog-collapse-obsolete.t index efc24e260d..83c503d6d0 100644 --- a/eden/scm/tests/test-smartlog-collapse-obsolete.t +++ b/eden/scm/tests/test-smartlog-collapse-obsolete.t @@ -2,7 +2,6 @@ #debugruntest-compatible $ configure modern - $ setconfig format.use-segmented-changelog=1 $ enable smartlog rebase $ disable commitcloud diff --git a/eden/scm/tests/test-smartlog-max-commit.t b/eden/scm/tests/test-smartlog-max-commit.t index a0901cbbfd..fd0134ac8f 100644 --- a/eden/scm/tests/test-smartlog-max-commit.t +++ b/eden/scm/tests/test-smartlog-max-commit.t @@ -2,7 +2,6 @@ #debugruntest-compatible $ configure modern - $ setconfig format.use-segmented-changelog=1 $ enable smartlog rebase $ disable commitcloud diff --git a/eden/scm/tests/test-template-revf64.t b/eden/scm/tests/test-template-revf64.t index bc1730c186..94fdcbda85 100644 --- a/eden/scm/tests/test-template-revf64.t +++ b/eden/scm/tests/test-template-revf64.t @@ -1,5 +1,4 @@ $ configure modern - $ setconfig format.use-segmented-changelog=1 $ newrepo $ drawdag << 'EOS' diff --git a/eden/testlib/tests.py b/eden/testlib/tests.py index bd357a1935..c5d8823cb8 100644 --- a/eden/testlib/tests.py +++ b/eden/testlib/tests.py @@ -179,9 +179,9 @@ o D │ o C ├─╮ -│ o B -│ -o A +o │ A + │ + o B """, )