Mercurial > hg
view tests/test-automv.t @ 33886:13dc7f29531e
exchange: don't attempt phase exchange if phase-heads was in bundle
The Mercurial core server doesn't yet include phase-heads parts in the
bundle, but our Google-internal server wants to do
that. Unfortunately, the usual exchange still happens even if
phase-heads part is included (including the short-circuited one for
old/publishing servers). That means that even if our server (again,
the Google-internal one, but also future Mercurial core servers)
includes a phase-heads part to indicate that some heads should be
drafts, that would still get overwritten by the phase updating that
happens after. So let's fix that by marking the phase step done if we
receive at least one phase-heads part in the bundle.
Differential Revision: https://phab.mercurial-scm.org/D440
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 17 Aug 2017 13:04:47 -0700 |
parents | 20f533a92eda |
children |
line wrap: on
line source
Tests for the automv extension; detect moved files at commit time. $ cat >> $HGRCPATH << EOF > [extensions] > automv= > rebase= > EOF Setup repo $ hg init repo $ cd repo Test automv command for commit $ printf 'foo\nbar\nbaz\n' > a.txt $ hg add a.txt $ hg commit -m 'init repo with a' mv/rm/add $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ hg status -C A b.txt R a.txt $ hg commit -m 'msg' detected move of 1 files $ hg status --change . -C A b.txt a.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 1 files removed, 0 files unresolved mv/rm/add/modif $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ printf '\n' >> b.txt $ hg status -C A b.txt R a.txt $ hg commit -m 'msg' detected move of 1 files created new head $ hg status --change . -C A b.txt a.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 1 files removed, 0 files unresolved mv/rm/add/modif $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ printf '\nfoo\n' >> b.txt $ hg status -C A b.txt R a.txt $ hg commit -m 'msg' created new head $ hg status --change . -C A b.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 1 files removed, 0 files unresolved mv/rm/add/modif/changethreshold $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ printf '\nfoo\n' >> b.txt $ hg status -C A b.txt R a.txt $ hg commit --config automv.similarity='60' -m 'msg' detected move of 1 files created new head $ hg status --change . -C A b.txt a.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 1 files removed, 0 files unresolved mv $ mv a.txt b.txt $ hg status -C ! a.txt ? b.txt $ hg commit -m 'msg' nothing changed (1 missing files, see 'hg status') [1] $ hg status -C ! a.txt ? b.txt $ hg revert -aqC $ rm b.txt mv/rm/add/notincommitfiles $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ echo 'bar' > c.txt $ hg add c.txt $ hg status -C A b.txt A c.txt R a.txt $ hg commit c.txt -m 'msg' created new head $ hg status --change . -C A c.txt $ hg status -C A b.txt R a.txt $ hg up -r 0 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg rm a.txt $ echo 'bar' > c.txt $ hg add c.txt $ hg commit -m 'msg' detected move of 1 files created new head $ hg status --change . -C A b.txt a.txt A c.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 2 files removed, 0 files unresolved mv/rm/add/--no-automv $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ hg status -C A b.txt R a.txt $ hg commit --no-automv -m 'msg' created new head $ hg status --change . -C A b.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 1 files removed, 0 files unresolved Test automv command for commit --amend mv/rm/add $ echo 'c' > c.txt $ hg add c.txt $ hg commit -m 'revision to amend to' created new head $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ hg status -C A b.txt R a.txt $ hg commit --amend -m 'amended' detected move of 1 files saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob) $ hg status --change . -C A b.txt a.txt A c.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 2 files removed, 0 files unresolved mv/rm/add/modif $ echo 'c' > c.txt $ hg add c.txt $ hg commit -m 'revision to amend to' created new head $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ printf '\n' >> b.txt $ hg status -C A b.txt R a.txt $ hg commit --amend -m 'amended' detected move of 1 files saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob) $ hg status --change . -C A b.txt a.txt A c.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 2 files removed, 0 files unresolved mv/rm/add/modif $ echo 'c' > c.txt $ hg add c.txt $ hg commit -m 'revision to amend to' created new head $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ printf '\nfoo\n' >> b.txt $ hg status -C A b.txt R a.txt $ hg commit --amend -m 'amended' saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob) $ hg status --change . -C A b.txt A c.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 2 files removed, 0 files unresolved mv/rm/add/modif/changethreshold $ echo 'c' > c.txt $ hg add c.txt $ hg commit -m 'revision to amend to' created new head $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ printf '\nfoo\n' >> b.txt $ hg status -C A b.txt R a.txt $ hg commit --amend --config automv.similarity='60' -m 'amended' detected move of 1 files saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob) $ hg status --change . -C A b.txt a.txt A c.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 2 files removed, 0 files unresolved mv $ echo 'c' > c.txt $ hg add c.txt $ hg commit -m 'revision to amend to' created new head $ mv a.txt b.txt $ hg status -C ! a.txt ? b.txt $ hg commit --amend -m 'amended' saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob) $ hg status -C ! a.txt ? b.txt $ hg up -Cr 0 1 files updated, 0 files merged, 1 files removed, 0 files unresolved mv/rm/add/notincommitfiles $ echo 'c' > c.txt $ hg add c.txt $ hg commit -m 'revision to amend to' created new head $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ echo 'bar' > d.txt $ hg add d.txt $ hg status -C A b.txt A d.txt R a.txt $ hg commit --amend -m 'amended' d.txt saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob) $ hg status --change . -C A c.txt A d.txt $ hg status -C A b.txt R a.txt $ hg commit --amend -m 'amended' detected move of 1 files saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob) $ hg status --change . -C A b.txt a.txt A c.txt A d.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 3 files removed, 0 files unresolved mv/rm/add/--no-automv $ echo 'c' > c.txt $ hg add c.txt $ hg commit -m 'revision to amend to' created new head $ mv a.txt b.txt $ hg rm a.txt $ hg add b.txt $ hg status -C A b.txt R a.txt $ hg commit --amend -m 'amended' --no-automv saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob) $ hg status --change . -C A b.txt A c.txt R a.txt $ hg up -r 0 1 files updated, 0 files merged, 2 files removed, 0 files unresolved mv/rm/commit/add/amend $ echo 'c' > c.txt $ hg add c.txt $ hg commit -m 'revision to amend to' created new head $ mv a.txt b.txt $ hg rm a.txt $ hg status -C R a.txt ? b.txt $ hg commit -m "removed a" $ hg add b.txt $ hg commit --amend -m 'amended' saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob) $ hg status --change . -C A b.txt R a.txt error conditions $ cat >> $HGRCPATH << EOF > [automv] > similarity=110 > EOF $ hg commit -m 'revision to amend to' abort: automv.similarity must be between 0 and 100 [255]