tests: enable segmented changelog for new repos by default

Summary:
Make progress migrating repos to EagerRepo format.

Some tests that require the revlog changelog are explicitly marked.
In the future they might be changed to use EagerRepo + doublewrite changelog
backend, or use hg-server instead of hg's main executable.

A test exposes issues with octopus merges when using old protocol (bundle2)
with new commit graph storage. This has been fixed.

Reviewed By: DurhamG

Differential Revision: D38234311

fbshipit-source-id: aa97f880f40b9cc541b2aee47cf8d8e87cef5b6d
This commit is contained in:
Jun Wu 2022-09-15 17:11:17 -07:00 committed by Facebook GitHub Bot
parent f5b2fe7957
commit de88d7234c
24 changed files with 80 additions and 631 deletions

View File

@ -526,6 +526,8 @@ function setup_common_hg_configs {
cat >> "$HGRCPATH" <<EOF
[ui]
ssh="$DUMMYSSH"
[devel]
segmented-changelog-rev-compat=True
[extensions]
remotefilelog=
[remotefilelog]

View File

@ -71,7 +71,7 @@ Test land stack
Inspect results
$ hgedenapi pull -q
$ hgedenapi log -G -T '{node} {desc}\n' -r "all()"
$ hgedenapi log -G -T '{node} {desc}\n' -r "sort(all(),topo)"
o cee85bb77dff9258b0b36fbe83501f3fd953fc4d E
o c5ef64ddf563718659b4c9777f0110de43055135 D
@ -80,14 +80,14 @@ Inspect results
o a22ebc2f5947b439a77147f07f4f3fe43355bfa3 H
o 181938a6b0e46aedfaf17b5866659716bf974efa G
o 33441538d4aad7db588e456862f21997f3bc7a04 F
o 9bc730a19041f9ec7cb33c626e811aa233efb18c E
o 181938a6b0e46aedfaf17b5866659716bf974efa G
o f585351a92f85104bff7c284233c338b10eb1df7 D
o 33441538d4aad7db588e456862f21997f3bc7a04 F
o 26805aba1e600a82e93661149f2313866a221a7b C
o 112478962961147124edd43549aedd1a335e44bf B

View File

@ -106,24 +106,23 @@ Start mononoke server
$ hg log -f fbcode/file_with_correct_history -T "{node} {desc}\n"
835251f7cda8fd1adddf414ce67d58090897e93a master commit 1
$ hg debugchangelog --migrate fullsegments
$ hg log -G -T "{desc} [{phase};{node|short}] {remotenames}" -r 'sort(::.,-topo,topo.firstbranch=desc("master commit"))' | sed '$d'
$ hg log -G -T "{desc} [{phase};{node|short}] {remotenames}" -r 'sort(::.,topo)' | sed '$d'
@ history fixup [public;dcacf3dd28f1] default/master
o [MEGAREPO DELETE] history fixup (1) [public;d3b2dfc1d7dc]
o [MEGAREPO DELETE] history fixup (0) [public;94932f105be0]
o [MEGAREPO DELETE] history fixup (0) [public;c2a5523610c4]
o commit commit 3 [incorrect history] [public;c3f812992511]
o small repo commit 3 [public;ea8595b036ed]
o commit commit 2 [incorrect history] [public;4f27e05b6e2a]
o small repo commit 2 [corrected history] [public;6c017a8ba0a6]
o small repo commit 1 [public;11fbaaa53e1b]
o master commit 1 [public;835251f7cda8]
o [MEGAREPO DELETE] history fixup (0) [public;94932f105be0]
o [MEGAREPO DELETE] history fixup (1) [public;d3b2dfc1d7dc]
o commit commit 3 [incorrect history] [public;c3f812992511]
o [MEGAREPO DELETE] history fixup (0) [public;c2a5523610c4]
o commit commit 2 [incorrect history] [public;4f27e05b6e2a]
o small repo commit 3 [public;ea8595b036ed]
o master commit 1 [public;835251f7cda8]
o small repo commit 2 [corrected history] [public;6c017a8ba0a6]
o small repo commit 1 [public;11fbaaa53e1b]

View File

@ -122,14 +122,14 @@ Create a branch merge in a small repo
> 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

View File

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

View File

@ -6,6 +6,7 @@
#require slow
$ . "${TEST_FIXTURES}/library.sh"
$ setconfig format.use-segmented-changelog=false
setup configuration
$ default_setup_blobimport "blob_files"

View File

@ -6,6 +6,7 @@
#require slow
$ . "${TEST_FIXTURES}/library.sh"
$ setconfig format.use-segmented-changelog=false
setup configuration
$ default_setup_blobimport "blob_files"

View File

@ -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:

View File

@ -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)

View File

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

View File

@ -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;

View File

@ -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;
}

View File

@ -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"),
]

View File

@ -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:

View File

@ -1,5 +1,4 @@
#debugruntest-compatible
$ setconfig format.use-segmented-changelog=1
$ enable absorb remotefilelog
Create repo

View File

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

View File

@ -6,8 +6,6 @@
$ disable treemanifest
$ enable smartlog
$ readconfig <<EOF
> [format]
> use-segmented-changelog=1
> [experimental]
> graphstyle.grandparent=|
> graphstyle.missing=|

View File

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

View File

@ -1,5 +1,4 @@
#debugruntest-compatible
$ setconfig format.use-segmented-changelog=1
$ newrepo
$ drawdag << 'EOS'
> E

View File

@ -1,7 +1,5 @@
#debugruntest-compatible
$ setconfig format.use-segmented-changelog=1
$ log_fixture() {
> newrepo '' "$@"
> drawdag "$@" << 'EOS'

View File

@ -2,7 +2,6 @@
#debugruntest-compatible
$ configure modern
$ setconfig format.use-segmented-changelog=1
$ enable smartlog rebase
$ disable commitcloud

View File

@ -2,7 +2,6 @@
#debugruntest-compatible
$ configure modern
$ setconfig format.use-segmented-changelog=1
$ enable smartlog rebase
$ disable commitcloud

View File

@ -1,5 +1,4 @@
$ configure modern
$ setconfig format.use-segmented-changelog=1
$ newrepo
$ drawdag << 'EOS'

View File

@ -179,9 +179,9 @@ o D
o C
o B
o A
o A
o B
""",
)