view tests/test-bookmarks.t @ 12498:4846e8cd9327

keyword: support rollback by restoring expansion to previous values Prevent spurious differences in the working directory after a rollback. Add tests for several rollback situations.
author Christian Ebert <blacktrash@gmx.net>
date Sun, 26 Sep 2010 19:18:41 +0200
parents 3b165c127690
children f5178fbcd197
line wrap: on
line source

  $ echo "[extensions]" >> $HGRCPATH
  $ echo "bookmarks=" >> $HGRCPATH

  $ hg init

no bookmarks

  $ hg bookmarks
  no bookmarks set

bookmark rev -1

  $ hg bookmark X

list bookmarks

  $ hg bookmarks
   * X                         -1:000000000000

list bookmarks with color

  $ hg --config extensions.color= --config color.mode=ansi \
  >    bookmarks --color=always
   * X                         -1:000000000000

  $ echo a > a
  $ hg add a
  $ hg commit -m 0

bookmark X moved to rev 0

  $ hg bookmarks
   * X                         0:f7b1eb17ad24

look up bookmark

  $ hg log -r X
  changeset:   0:f7b1eb17ad24
  tag:         X
  tag:         tip
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     0
  

second bookmark for rev 0

  $ hg bookmark X2

bookmark rev -1 again

  $ hg bookmark -r null Y

list bookmarks

  $ hg bookmarks
   * X2                        0:f7b1eb17ad24
   * X                         0:f7b1eb17ad24
     Y                         -1:000000000000

  $ echo b > b
  $ hg add b
  $ hg commit -m 1

bookmarks X and X2 moved to rev 1, Y at rev -1

  $ hg bookmarks
   * X2                        1:925d80f479bb
   * X                         1:925d80f479bb
     Y                         -1:000000000000

bookmark rev 0 again

  $ hg bookmark -r 0 Z

  $ echo c > c
  $ hg add c
  $ hg commit -m 2

bookmarks X and X2 moved to rev 2, Y at rev -1, Z at rev 0

  $ hg bookmarks
   * X2                        2:0316ce92851d
   * X                         2:0316ce92851d
     Z                         0:f7b1eb17ad24
     Y                         -1:000000000000

rename nonexistent bookmark

  $ hg bookmark -m A B
  abort: a bookmark of this name does not exist
  [255]

rename to existent bookmark

  $ hg bookmark -m X Y
  abort: a bookmark of the same name already exists
  [255]

force rename to existent bookmark

  $ hg bookmark -f -m X Y

list bookmarks

  $ hg bookmark
   * X2                        2:0316ce92851d
   * Y                         2:0316ce92851d
     Z                         0:f7b1eb17ad24

rename without new name

  $ hg bookmark -m Y
  abort: new bookmark name required
  [255]

delete without name

  $ hg bookmark -d
  abort: bookmark name required
  [255]

delete nonexistent bookmark

  $ hg bookmark -d A
  abort: a bookmark of this name does not exist
  [255]

bookmark name with spaces should be stripped

  $ hg bookmark ' x  y '

list bookmarks

  $ hg bookmarks
   * X2                        2:0316ce92851d
   * Y                         2:0316ce92851d
     Z                         0:f7b1eb17ad24
   * x  y                      2:0316ce92851d

look up stripped bookmark name

  $ hg log -r '"x  y"'
  changeset:   2:0316ce92851d
  tag:         X2
  tag:         Y
  tag:         tip
  tag:         x  y
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     2
  

reject bookmark name with newline

  $ hg bookmark '
  > '
  abort: bookmark name cannot contain newlines
  [255]

bookmark with existing name

  $ hg bookmark Z
  abort: a bookmark of the same name already exists
  [255]

force bookmark with existing name

  $ hg bookmark -f Z

list bookmarks

  $ hg bookmark
   * X2                        2:0316ce92851d
   * Y                         2:0316ce92851d
   * Z                         2:0316ce92851d
   * x  y                      2:0316ce92851d

revision but no bookmark name

  $ hg bookmark -r .
  abort: bookmark name required
  [255]

bookmark name with whitespace only

  $ hg bookmark ' '
  abort: bookmark names cannot consist entirely of whitespace
  [255]