view tests/test-rebase-issue-noparam-single-rev.t @ 23259:9f4778027bc2

addremove: add back forgotten files (BC) After running "hg forget README && hg addremove", README will still be reported as removed, while "hg forget README && hg add README" adds it back so it gets reported as clean. It seems like they should behave the same. Furthermore, it seems like no files should remain untracked after 'hg addremove && hg commit' (or 'hg commit -A'). For these reasons, change the behavior of addremove so it does add forgotten files back. The problem is with scmutil._interestingfiles(), which reports the file as removed, so scmutil.addremove() does not add it. Fix by teaching _interestingfiles() to report forgotten files separately from removed files and make addremove() add forgotten files back. However, do not treat forgotten files as sources for rename detection. Note that since removed and forgotten files are treated the same before this change, forgotten files were considered sources for rename detection. Also update the other caller, marktouched(), in the same way as addremove().
author Martin von Zweigbergk <martinvonz@google.com>
date Sat, 08 Nov 2014 23:13:39 -0800
parents aa9385f983fa
children 328afbad6e57
line wrap: on
line source

  $ cat >> $HGRCPATH <<EOF
  > [extensions]
  > rebase=
  > 
  > [phases]
  > publish=False
  > 
  > [alias]
  > tglog = log -G --template "{rev}: '{desc}' {branches}\n"
  > EOF


  $ hg init a
  $ cd a

  $ echo c1 > c1
  $ hg ci -Am c1
  adding c1

  $ echo c2 > c2
  $ hg ci -Am c2
  adding c2

  $ echo l1 > l1
  $ hg ci -Am l1
  adding l1

  $ hg up -q -C 1

  $ echo r1 > r1
  $ hg ci -Am r1
  adding r1
  created new head

  $ echo r2 > r2
  $ hg ci -Am r2
  adding r2

  $ hg tglog
  @  4: 'r2'
  |
  o  3: 'r1'
  |
  | o  2: 'l1'
  |/
  o  1: 'c2'
  |
  o  0: 'c1'
  
Rebase with no arguments - single revision in source branch:

  $ hg up -q -C 2

  $ hg rebase
  saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)

  $ hg tglog
  @  4: 'l1'
  |
  o  3: 'r2'
  |
  o  2: 'r1'
  |
  o  1: 'c2'
  |
  o  0: 'c1'
  
  $ cd ..


  $ hg init b
  $ cd b

  $ echo c1 > c1
  $ hg ci -Am c1
  adding c1

  $ echo c2 > c2
  $ hg ci -Am c2
  adding c2

  $ echo l1 > l1
  $ hg ci -Am l1
  adding l1

  $ echo l2 > l2
  $ hg ci -Am l2
  adding l2

  $ hg up -q -C 1

  $ echo r1 > r1
  $ hg ci -Am r1
  adding r1
  created new head

  $ hg tglog
  @  4: 'r1'
  |
  | o  3: 'l2'
  | |
  | o  2: 'l1'
  |/
  o  1: 'c2'
  |
  o  0: 'c1'
  
Rebase with no arguments - single revision in target branch:

  $ hg up -q -C 3

  $ hg rebase
  saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)

  $ hg tglog
  @  4: 'l2'
  |
  o  3: 'l1'
  |
  o  2: 'r1'
  |
  o  1: 'c2'
  |
  o  0: 'c1'
  

  $ cd ..