tests/test-issue1502.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Sat, 24 Dec 2011 19:05:35 +0900
branchstable
changeset 15723 1581da01d5c4
parent 14485 610873cf064a
child 15447 9910f60a37ee
permissions -rw-r--r--
windows: use normalized path as path to subrepo path to subrepo is used to identify or check location of subrepo. it should be normalized (in "/" delimiter form), because it is also used with narrowmatcher which uses only normalized path even on Windows environment. this patch applies "util.pconvert()" on path to subrepo (called "subpath") to normalize it. for this patch, referers of below were checked. - subrepo.state() - subrepo.itersubrepos() - subrepo.subrepo() - context.sub() - context.substate() typical usecase is: for subpath in ctx.substate: sub = ctx.sub(subpath) ... ctx.substate[subpath] .... in this case, normalization has no side effect, because keys given from substate are used as key itself. other cases shown below also seem to require subpath to be normalized. - path components are joined by "/", in "commands.forget()": for subpath in ctx.substate: subforget[subpath + '/' + fsub] = (fsub, sub) - normalized "file" is used to check below condition, in "commands.revert()", "localrepository.commit()", and "localrepository._checknested()" file in ctx.substate - substate.keys() is passed to dirstate.walk()/status() which use only normalized pathes

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
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files (+1 heads)
  not updating: crosses branches (merge branches 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
  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