Mercurial > public > mercurial-scm > hg
view tests/test-merge-remove.t @ 19136:e073ac988b51
match: introduce explicitdir and traversedir
match.dir is currently called in two different places:
(1) noting when a directory specified explicitly is visited.
(2) noting when a directory is visited during a recursive walk.
purge cares about both, but commit only cares about the first.
Upcoming patches will split the two cases into two different callbacks. Why
bother? Consider a hypothetical extension that can provide more efficient walk
results, via e.g. watching the filesystem. That extension will need to
fall back to a full recursive walk if a callback is set for (2), but not if a
callback is only set for (1).
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Sun, 28 Apr 2013 21:24:09 -0700 |
parents | 0a63e91c519d |
children | e4d7cbc94219 |
line wrap: on
line source
$ hg init $ echo foo > foo $ echo bar > bar $ hg ci -qAm 'add foo bar' $ echo foo2 >> foo $ echo bleh > bar $ hg ci -m 'change foo bar' $ hg up -qC 0 $ hg mv foo foo1 $ echo foo1 > foo1 $ hg cat foo >> foo1 $ hg ci -m 'mv foo foo1' created new head $ hg merge merging foo1 and foo to foo1 1 files updated, 1 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) $ hg debugstate --nodates n 0 -2 bar m 644 14 foo1 copy: foo -> foo1 $ hg st -q M bar M foo1 Removing foo1 and bar: $ cp foo1 F $ cp bar B $ hg rm -f foo1 bar $ hg debugstate --nodates r 0 -2 bar r 0 -1 foo1 copy: foo -> foo1 $ hg st -qC R bar R foo1 Re-adding foo1 and bar: $ cp F foo1 $ cp B bar $ hg add -v foo1 bar adding bar adding foo1 $ hg debugstate --nodates n 0 -2 bar m 644 14 foo1 copy: foo -> foo1 $ hg st -qC M bar M foo1 foo Reverting foo1 and bar: $ hg revert -vr . foo1 bar saving current version of bar as bar.orig reverting bar saving current version of foo1 as foo1.orig reverting foo1 $ hg debugstate --nodates n 0 -2 bar m 644 14 foo1 copy: foo -> foo1 $ hg st -qC M bar M foo1 foo $ hg diff