view tests/test-manifest-merging.t @ 22456:4bbcee186fc6 stable

mq: examine "pushable" of already applied patch correctly Before this patch, "hg qselect" with --pop/--reapply may pop patches unexpectedly, even when all of patches applied before "qselect" are still pushable. Strictly speaking about the condition of this issue: - before "qselect" - there are N applied patches - the index of the guarded patch X in the series is less than N - after "qselect" - X is still guarded, and - all of applied patched are still pushable In the case above, "hg qselect" should keep current status, but it actually tries to pop patches because of X. The index in "the series" should be used to examine "pushable" of a patch by "mq.pushablek()", but the index in "applied patches" is used, and this may cause unexpected examination of guarded patch. To examine "pushable" of already applied patch correctly, this patch uses "mq.applied[i].name": "pushable" is the function introduced by the previous patch, and it returns "mq.pushable(mq.applied[i].name)[0]".
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Fri, 12 Sep 2014 02:29:19 +0900
parents f2719b387380
children
line wrap: on
line source

  $ hg init base

  $ cd base
  $ echo 'alpha' > alpha
  $ hg ci -A -m 'add alpha'
  adding alpha
  $ cd ..

  $ hg clone base work
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved

  $ cd work
  $ echo 'beta' > beta
  $ hg ci -A -m 'add beta'
  adding beta
  $ cd ..

  $ cd base
  $ echo 'gamma' > gamma
  $ hg ci -A -m 'add gamma'
  adding gamma
  $ cd ..

  $ cd work
  $ hg pull -q
  $ hg merge
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)

Update --clean to revision 1 to simulate a failed merge:

  $ rm alpha beta gamma
  $ hg update --clean 1
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved

  $ cd ..