Mercurial > hg
view tests/test-automv.t @ 40855:b7823bd59b07
cleanupnodes: trust caller when "moves" is not None
If "moves" (indicating how to move bookmarks) is None, we fill it out
based on "replacements" (indicating which obsmarkers to add). If
"moves" is not None, we would still add items based on
"replacements". This makes it impossible to pass "moves={}" and not
move bookmarks, which surprised me. The only caller that currently
passes a value for "moves" was the rebase extension and there we were
already adding bookmark moves corresponding to obsmarker additions, so
it should not be impacted.
Differential Revision: https://phab.mercurial-scm.org/D5391
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 21 Mar 2018 16:46:28 -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]