Mercurial > hg
view tests/test-phase-archived.t @ 51626:865efc020c33 default tip
dirstate: remove the python-side whitelist of allowed matchers
This whitelist is too permissive because it allows matchers that contain
disallowed ones deep inside, for example through `intersectionmatcher`.
It is also too restrictive because it doesn't pass through
some of the matchers we support, such as `patternmatcher`.
It's also unnecessary because unsupported matchers raise
`FallbackError` and we fall back anyway.
Making this change makes more of the tests use rust code path,
and therefore subtly change behavior. For example, rust status
in largefiles repos seems to have strange behavior.
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Fri, 26 Apr 2024 19:10:35 +0100 |
parents | 385a4f8056e5 |
children |
line wrap: on
line source
========================================================= Test features and behaviors related to the archived phase ========================================================= $ cat << EOF >> $HGRCPATH > [format] > exp-archived-phase=yes > [extensions] > strip= > [experimental] > EOF $ hg init repo $ cd repo $ echo root > a $ hg add a $ hg ci -m 'root' Test that bundle can unarchive a changeset ------------------------------------------ $ echo foo >> a $ hg st M a $ hg ci -m 'unbundletesting' $ hg log -G @ changeset: 1:883aadbbf309 | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: unbundletesting | o changeset: 0:c1863a3840c6 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: root $ hg strip --soft --rev '.' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/repo/.hg/strip-backup/883aadbbf309-efc55adc-backup.hg $ hg log -G @ changeset: 0:c1863a3840c6 tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: root $ hg log -G --hidden o changeset: 1:883aadbbf309 | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: unbundletesting | @ changeset: 0:c1863a3840c6 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: root $ hg unbundle .hg/strip-backup/883aadbbf309-efc55adc-backup.hg adding changesets adding manifests adding file changes added 0 changesets with 0 changes to 1 files (run 'hg update' to get a working copy) $ hg log -G o changeset: 1:883aadbbf309 | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: unbundletesting | @ changeset: 0:c1863a3840c6 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: root Test that history rewriting command can use the archived phase when allowed to ------------------------------------------------------------------------------ $ hg up 'desc(unbundletesting)' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo bar >> a $ hg commit --amend --config experimental.cleanup-as-archived=yes $ hg log -G @ changeset: 2:d1e73e428f29 | tag: tip | parent: 0:c1863a3840c6 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: unbundletesting | o changeset: 0:c1863a3840c6 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: root $ hg log -G --hidden @ changeset: 2:d1e73e428f29 | tag: tip | parent: 0:c1863a3840c6 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: unbundletesting | | o changeset: 1:883aadbbf309 |/ user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: unbundletesting | o changeset: 0:c1863a3840c6 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: root $ ls -1 .hg/strip-backup/ 883aadbbf309-efc55adc-amend.hg 883aadbbf309-efc55adc-backup.hg $ hg unbundle .hg/strip-backup/883aadbbf309*amend.hg adding changesets adding manifests adding file changes added 0 changesets with 0 changes to 1 files (run 'hg update' to get a working copy) $ hg log -G @ changeset: 2:d1e73e428f29 | tag: tip | parent: 0:c1863a3840c6 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: unbundletesting | | o changeset: 1:883aadbbf309 |/ user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: unbundletesting | o changeset: 0:c1863a3840c6 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: root Test that a strip will preserve unrelated changeset archived ------------------------------------------------------------ prepare a suitable tree $ echo foo > bar $ hg add bar $ hg commit -m 'some more commit' $ hg log -G --hidden -T '{rev} {node|short} [{phase}] {desc|firstline}\n' @ 3 f90bf4e57854 [draft] some more commit | o 2 d1e73e428f29 [draft] unbundletesting | | o 1 883aadbbf309 [draft] unbundletesting |/ o 0 c1863a3840c6 [draft] root $ hg strip --soft --rev '.' 0 files updated, 0 files merged, 1 files removed, 0 files unresolved saved backup bundle to $TESTTMP/repo/.hg/strip-backup/f90bf4e57854-56b37ff2-backup.hg $ hg log -G --hidden -T '{rev} {node|short} [{phase}] {desc|firstline}\n' o 3 f90bf4e57854 [archived] some more commit | @ 2 d1e73e428f29 [draft] unbundletesting | | o 1 883aadbbf309 [draft] unbundletesting |/ o 0 c1863a3840c6 [draft] root Strips the other (lower rev-num) head $ hg strip --rev 'min(head() and not .)' saved backup bundle to $TESTTMP/repo/.hg/strip-backup/883aadbbf309-efc55adc-backup.hg The archived changeset should still be hidden $ hg log -G -T '{rev} {node|short} [{phase}] {desc|firstline}\n' @ 1 d1e73e428f29 [draft] unbundletesting | o 0 c1863a3840c6 [draft] root It may still be around: $ hg log --hidden -G -T '{rev} {node|short} [{phase}] {desc|firstline}\n' o 2 f90bf4e57854 [archived] some more commit | @ 1 d1e73e428f29 [draft] unbundletesting | o 0 c1863a3840c6 [draft] root