tests/test-bookmarks-merge.t
author Matt Harbison <matt_harbison@yahoo.com>
Mon, 24 Aug 2015 23:07:00 -0400
changeset 26484 93c80e7ed8c8
parent 21503 10f15e34d86c
child 43114 8197b395710e
permissions -rw-r--r--
templatekw: introduce showlatesttags() to handle {latesttag} keywords The keywords {changes}, {distance} and {tag} will be available on a future template method that will allow pattern matching against tag names. For consistency, these should be available on the existing {latesttag} keyword as well. I debated whether or not to add {tag} instead of just continuing with the existing {latesttag}. But it seems clearer not to have the same name for two distinct things (a list in the LHS of %, and an individual tag value on the right). The value of latesttags[0] is the date of commit for the cset to which the tag is applied (i.e. not the date the tag was applied), and therefore isn't made visible because it doesn't seem interesting. It appears that this is merely an internal implementation detail for sorting csets in a stable manner when there are different branches.

# init

  $ hg init
  $ echo a > a
  $ hg add a
  $ hg commit -m'a'
  $ echo b > b
  $ hg add b
  $ hg commit -m'b'
  $ hg up -C 0
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ echo c > c
  $ hg add c
  $ hg commit -m'c'
  created new head

# test merging of diverged bookmarks
  $ hg bookmark -r 1 "c@diverge"
  $ hg bookmark -r 1 b
  $ hg bookmark c
  $ hg bookmarks
     b                         1:d2ae7f538514
   * c                         2:d36c0562f908
     c@diverge                 1:d2ae7f538514
  $ hg merge "c@diverge"
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)
  $ hg commit -m'merge'
  $ hg bookmarks
     b                         1:d2ae7f538514
   * c                         3:b8f96cf4688b

  $ hg up -C 3
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (leaving bookmark c)
  $ echo d > d
  $ hg add d
  $ hg commit -m'd'

  $ hg up -C 3
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ echo e > e
  $ hg add e
  $ hg commit -m'e'
  created new head
  $ hg up -C 5
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg bookmark e
  $ hg bookmarks
     b                         1:d2ae7f538514
     c                         3:b8f96cf4688b
   * e                         5:26bee9c5bcf3

# the picked side is bookmarked

  $ hg up -C 4
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  (leaving bookmark e)
  $ hg merge
  abort: heads are bookmarked - please merge with an explicit rev
  (run 'hg heads' to see all heads)
  [255]

# our revision is bookmarked

  $ hg up -C e
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  (activating bookmark e)
  $ hg merge
  abort: no matching bookmark to merge - please merge with an explicit rev or bookmark
  (run 'hg heads' to see all heads)
  [255]

# merge bookmark heads

  $ hg up -C 4
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  (leaving bookmark e)
  $ echo f > f
  $ hg commit -Am "f"
  adding f
  $ hg bookmarks -r 4 "e@diverged"
  $ hg up -q -C "e@diverged"
  $ hg merge
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)
  $ hg parents
  changeset:   4:a0546fcfe0fb
  bookmark:    e@diverged
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     d
  
  changeset:   5:26bee9c5bcf3
  bookmark:    e
  parent:      3:b8f96cf4688b
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     e
  
  $ hg up -C e
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  (activating bookmark e)
  $ hg bookmarks
     b                         1:d2ae7f538514
     c                         3:b8f96cf4688b
   * e                         5:26bee9c5bcf3
     e@diverged                4:a0546fcfe0fb
  $ hg merge
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)
  $ hg commit -m'merge'
  $ hg bookmarks
     b                         1:d2ae7f538514
     c                         3:b8f96cf4688b
   * e                         7:ca784329f0ba

# test warning when all heads are inactive bookmarks

  $ hg up -C 6
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  (leaving bookmark e)
  $ echo g > g
  $ hg commit -Am 'g'
  adding g
  $ hg bookmark -i g
  $ hg bookmarks
     b                         1:d2ae7f538514
     c                         3:b8f96cf4688b
     e                         7:ca784329f0ba
     g                         8:04dd21731d95
  $ hg heads
  changeset:   8:04dd21731d95
  bookmark:    g
  tag:         tip
  parent:      6:be381d1126a0
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     g
  
  changeset:   7:ca784329f0ba
  bookmark:    e
  parent:      5:26bee9c5bcf3
  parent:      4:a0546fcfe0fb
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     merge
  
  $ hg merge
  abort: heads are bookmarked - please merge with an explicit rev
  (run 'hg heads' to see all heads)
  [255]