view tests/test-merge9.t @ 28950:9e1c9f016b72

bugzilla: do not load style file if template is specified (BC) This prepares for the API change to support template aliases. I'm going to extract a factory function of templater that reads a map file: # original templater(mapfile, ..., cache, ...) # new templater.frommapfile(mapfile, ...) # read mapfile to build cache/map templater(..., cache, ...) # use specified cache (= map elements) This will make it clear to isolate stock styles (i.e. map files) from user aliases. Template aliases should be applied to command arguments and templates in hgrc, but not to map files. Otherwise, our stock styles and web templates could be modified unintentionally. This patch makes sure that either "tmpl" or "mapfile" is exclusively set. It's theoretically a behavior change, since you could put new keywords in template by defining them in a map file before: # mapfile foo = "{rev}" # hgrc [bugzilla] style = mapfile template = {foo} But the old behavior would be a bug because bugzilla.template is documented as "overrides style if specified". Also, common log-like templates and formatter doesn't allow using mapfile-keywords in a separate template. So I decided to make a BC. Since there was no test for the bugzilla extension, this adds new test that covers style/template output.
author Yuya Nishihara <yuya@tcha.org>
date Mon, 04 Apr 2016 22:48:34 +0900
parents 8e6d5b7317e6
children 41ef02ba329b
line wrap: on
line source

test that we don't interrupt the merge session if
a file-level merge failed

  $ hg init repo
  $ cd repo

  $ echo foo > foo
  $ echo a > bar
  $ hg ci -Am 'add foo'
  adding bar
  adding foo

  $ hg mv foo baz
  $ echo b >> bar
  $ echo quux > quux1
  $ hg ci -Am 'mv foo baz'
  adding quux1

  $ hg up -qC 0
  $ echo >> foo
  $ echo c >> bar
  $ echo quux > quux2
  $ hg ci -Am 'change foo'
  adding quux2
  created new head

test with the rename on the remote side
  $ HGMERGE=false hg merge
  merging bar
  merging foo and baz to baz
  merging bar failed!
  1 files updated, 1 files merged, 0 files removed, 1 files unresolved
  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
  [1]
  $ hg resolve -l
  U bar
  R baz

test with the rename on the local side
  $ hg up -C 1
  3 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ HGMERGE=false hg merge
  merging bar
  merging baz and foo to baz
  merging bar failed!
  1 files updated, 1 files merged, 0 files removed, 1 files unresolved
  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
  [1]

show unresolved
  $ hg resolve -l
  U bar
  R baz

unmark baz
  $ hg resolve -u baz

show
  $ hg resolve -l
  U bar
  U baz
  $ hg st
  M bar
  M baz
  M quux2
  ? bar.orig

re-resolve baz
  $ hg resolve baz
  merging baz and foo to baz

after resolve
  $ hg resolve -l
  U bar
  R baz

resolve all warning
  $ hg resolve
  abort: no files or directories specified
  (use --all to re-merge all unresolved files)
  [255]

resolve all
  $ hg resolve -a
  merging bar
  warning: conflicts while merging bar! (edit, then use 'hg resolve --mark')
  [1]

after
  $ hg resolve -l
  U bar
  R baz

  $ cd ..