tests/test-issue1502.t
author Yuya Nishihara <yuya@tcha.org>
Mon, 16 Mar 2015 16:17:06 +0900
changeset 25765 5e1b0739611c
parent 19798 76df01e56e7f
child 26420 2fc86d92c4a9
permissions -rw-r--r--
revset: use integer representation of wdir() in revset This is the simplest way to handle wdir() revision in revset. None didn't work well because revset heavily depends on integer operations such as min(), max(), sorted(), x:y, etc. One downside is that we cannot do "wctx.rev() in set" because wctx.rev() is still None. We could wrap the result set by wdirproxyset that translates None to wdirrev, but it seems overengineered at this point. result = getset(repo, subset, tree) if 'wdir' in funcsused(tree): result = wdirproxyset(result) Test cases need the '(all() + wdir()) &' hack because we have yet to fix the bootstrapping issue of null and wdir.

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

Initialize repository

  $ hg init foo
  $ touch foo/a && hg -R foo commit -A -m "added a"
  adding a

  $ hg clone foo foo1
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved

  $ echo "bar" > foo1/a && hg -R foo1 commit -m "edit a in foo1"
  $ echo "hi" > foo/a && hg -R foo commit -m "edited a foo"
  $ hg -R foo1 pull -u
  pulling from $TESTTMP/foo (glob)
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files (+1 heads)
  not updating: not a linear update
  (merge or update --check to force update)

  $ hg -R foo1 book branchy
  $ hg -R foo1 book
   * branchy                   1:e3e522925eff

Pull. Bookmark should not jump to new head.

  $ echo "there" >> foo/a && hg -R foo commit -m "edited a again"
  $ hg -R foo1 pull
  pulling from $TESTTMP/foo (glob)
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files
  (run 'hg update' to get a working copy)

  $ hg -R foo1 book
   * branchy                   1:e3e522925eff