tests/test-issue619.t
author Angel Ezquerra <angel.ezquerra@gmail.com>
Sun, 29 Jun 2014 13:52:35 +0200
branchstable
changeset 21823 925d1bb9a971
parent 15615 41885892796e
child 23413 0c432696dae3
permissions -rw-r--r--
repoview: do not crash when localtags refers to non existing revisions This fixes a crash that may happen when using mercurial 3.0.x. The _gethiddenblockers function assumed that the output of tags.readlocaltags() was a dict mapping tags to of valid nodes. However this was not necessarily the case. When a repository had obsolete revisions and had local tag pointing to a non existing revision was found, many mercurial commands would crash. This revision fixes the problem by removing any tags from the output of tags.readlocaltags() which point to invalid nodes. We may want to add a warning when this happens (although it might be annoying to get that warning for every command, possibly even more than once per command). A test for this problem has been added to test-obsolete.t. Without this fix the test would output: $ hg tags abort: 00changelog.i@3816541e5485: no node! [255] Instead of: $ hg tags tiptag 2:3816541e5485 tip 2:3816541e5485 visible 0:193e9254ce7e

http://mercurial.selenic.com/bts/issue619

  $ hg init
  $ echo a > a
  $ hg ci -Ama
  adding a

  $ echo b > b
  $ hg branch b
  marked working directory as branch b
  (branches are permanent and global, did you want a bookmark?)
  $ hg ci -Amb
  adding b

  $ hg co -C 0
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved

Fast-forward:

  $ hg merge b
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)
  $ hg ci -Ammerge

Bogus fast-forward should fail:

  $ hg merge b
  abort: merging with a working directory ancestor has no effect
  [255]