view tests/test-confused-revert.t @ 28573:6a42564081cb

shelve: adds restoring newly created branch (issue5048) (BC) Before this patch shelve never preserved branch information, so after applying unshelve branch was the same as it was on working copy no matter in which branch shelve took place. This patch makes bare shelving(with no files specified, without interactive,include and exclude option) remembers information if the working directory was on newly created branch ,in other words working directory was on different branch than its first parent. In this situation unshelving restores branch information to the working directory.
author liscju <piotr.listkiewicz@gmail.com>
date Wed, 10 Feb 2016 02:23:27 +0100
parents a934b9249574
children fc1d75e7a98d
line wrap: on
line source

  $ hg init
  $ echo foo > a
  $ hg add a
  $ hg commit -m "1"

  $ echo bar > b
  $ hg add b
  $ hg remove a

Should show a removed and b added:

  $ hg status
  A b
  R a

  $ hg revert --all
  undeleting a
  forgetting b

Should show b unknown and a back to normal:

  $ hg status
  ? b

  $ rm b

  $ hg co -C 0
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ echo foo-a > a
  $ hg commit -m "2a"

  $ hg co -C 0
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ echo foo-b > a
  $ hg commit -m "2b"
  created new head

  $ HGMERGE=true hg merge 1
  merging a
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)

Should show foo-b:

  $ cat a
  foo-b

  $ echo bar > b
  $ hg add b
  $ rm a
  $ hg remove a

Should show a removed and b added:

  $ hg status
  A b
  R a

Revert should fail:

  $ hg revert
  abort: uncommitted merge with no revision specified
  (use "hg update" or see "hg help revert")
  [255]

Revert should be ok now:

  $ hg revert -r2 --all
  undeleting a
  forgetting b

Should show b unknown and a marked modified (merged):

  $ hg status
  M a
  ? b

Should show foo-b:

  $ cat a
  foo-b