localrepo: add hook point to invalidate everything on each command-server run
MQ extension will wrap this function to invalidate its state.
repo.invalidate cannot be wrapped for this purpose because qpush obtains
repo.lock in the middle of the operation, triggering repo.invalidate. Also,
it seems wrong to obtain lock earlier because mq data is non-store parts.
http://mercurial.selenic.com/bts/issue612
$ hg init
$ mkdir src
$ echo a > src/a.c
$ hg ci -Ama
adding src/a.c
$ hg mv src source
moving src/a.c to source/a.c (glob)
$ hg ci -Ammove
$ hg co -C 0
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo new > src/a.c
$ echo compiled > src/a.o
$ hg ci -mupdate
created new head
$ hg status
? src/a.o
$ hg merge
merging src/a.c and source/a.c to source/a.c
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg status
M source/a.c
R src/a.c
? src/a.o