tests/test-rebase-bookmarks.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Thu, 22 Mar 2012 23:58:47 +0900
branchstable
changeset 16282 50247a7a9983
parent 15742 65df60a3f96b
child 16913 f2719b387380
child 17046 4116504d1ec4
permissions -rw-r--r--
largefiles: use 'dirstate.dirs()' for 'directory pattern' relation check original implementation queries whether specified pattern is related or not to largefiles in target context by 'dirstate.__contains__()'. but this can't recognize 'directory pattern' correctly, so this patch uses 'dirstate.dirs()' for it. this patch uses dirstate instead of lfdirstate in 'working' route (second patch hunk for 'hgext/largefiles/reposetup.py'), because 'dirs()' information may be already built for dirstate but not yet for lfdirstate at this point. this prevents lfdirstate from building up and having 'dirs()' information.

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

Create a repo with several bookmarks
  $ hg init a
  $ cd a

  $ echo a > a
  $ hg ci -Am A
  adding a

  $ echo b > b
  $ hg ci -Am B
  adding b
  $ hg book 'X'
  $ hg book 'Y'
 
  $ echo c > c
  $ hg ci -Am C
  adding c
  $ hg book 'Z'

  $ hg up -q 0

  $ echo d > d
  $ hg ci -Am D
  adding d
  created new head

  $ hg tglog 
  @  3: 'D' bookmarks:
  |
  | o  2: 'C' bookmarks: Y Z
  | |
  | o  1: 'B' bookmarks: X
  |/
  o  0: 'A' bookmarks:
  
 
Move only rebased bookmarks

  $ cd ..
  $ hg clone -q a a1

  $ cd a1
  $ hg up -q Z

  $ hg rebase --detach -s Y -d 3
  saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)

  $ hg tglog 
  @  3: 'C' bookmarks: Y Z
  |
  o  2: 'D' bookmarks:
  |
  | o  1: 'B' bookmarks: X
  |/
  o  0: 'A' bookmarks:
  
Keep bookmarks to the correct rebased changeset

  $ cd ..
  $ hg clone -q a a2

  $ cd a2
  $ hg up -q Z

  $ hg rebase -s 1 -d 3
  saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)

  $ hg tglog 
  @  3: 'C' bookmarks: Y Z
  |
  o  2: 'B' bookmarks: X
  |
  o  1: 'D' bookmarks:
  |
  o  0: 'A' bookmarks: