Show More
@@ -485,17 +485,14 b' def overridestatus(' | |||||
485 | else: |
|
485 | else: | |
486 | stateunknown = listunknown |
|
486 | stateunknown = listunknown | |
487 |
|
487 | |||
|
488 | if updatestate: | |||
|
489 | ps = poststatus(startclock) | |||
|
490 | self.addpostdsstatus(ps) | |||
|
491 | ||||
488 | r = orig(node1, node2, match, listignored, listclean, stateunknown, |
|
492 | r = orig(node1, node2, match, listignored, listclean, stateunknown, | |
489 | listsubrepos) |
|
493 | listsubrepos) | |
490 | modified, added, removed, deleted, unknown, ignored, clean = r |
|
494 | modified, added, removed, deleted, unknown, ignored, clean = r | |
491 |
|
495 | |||
492 | if updatestate: |
|
|||
493 | notefiles = modified + added + removed + deleted + unknown |
|
|||
494 | self._fsmonitorstate.set( |
|
|||
495 | self._fsmonitorstate.getlastclock() or startclock, |
|
|||
496 | _hashignore(self.dirstate._ignore), |
|
|||
497 | notefiles) |
|
|||
498 |
|
||||
499 | if not listunknown: |
|
496 | if not listunknown: | |
500 | unknown = [] |
|
497 | unknown = [] | |
501 |
|
498 | |||
@@ -528,6 +525,17 b' def overridestatus(' | |||||
528 | return scmutil.status( |
|
525 | return scmutil.status( | |
529 | modified, added, removed, deleted, unknown, ignored, clean) |
|
526 | modified, added, removed, deleted, unknown, ignored, clean) | |
530 |
|
527 | |||
|
528 | class poststatus(object): | |||
|
529 | def __init__(self, startclock): | |||
|
530 | self._startclock = startclock | |||
|
531 | ||||
|
532 | def __call__(self, wctx, status): | |||
|
533 | clock = wctx.repo()._fsmonitorstate.getlastclock() or self._startclock | |||
|
534 | hashignore = _hashignore(wctx.repo().dirstate._ignore) | |||
|
535 | notefiles = (status.modified + status.added + status.removed + | |||
|
536 | status.deleted + status.unknown) | |||
|
537 | wctx.repo()._fsmonitorstate.set(clock, hashignore, notefiles) | |||
|
538 | ||||
531 | def makedirstate(cls): |
|
539 | def makedirstate(cls): | |
532 | class fsmonitordirstate(cls): |
|
540 | class fsmonitordirstate(cls): | |
533 | def _fsmonitorinit(self, fsmonitorstate, watchmanclient): |
|
541 | def _fsmonitorinit(self, fsmonitorstate, watchmanclient): |
@@ -157,3 +157,50 b' treated differently in _checklookup() ac' | |||||
157 | a |
|
157 | a | |
158 | $ hg debugdirstate |
|
158 | $ hg debugdirstate | |
159 | n * * * a (glob) |
|
159 | n * * * a (glob) | |
|
160 | ||||
|
161 | $ rm b | |||
|
162 | ||||
|
163 | Set up a rebase situation for issue5581. | |||
|
164 | ||||
|
165 | $ echo c2 > a | |||
|
166 | $ echo c2 > b | |||
|
167 | $ hg add b | |||
|
168 | $ hg commit -m c2 | |||
|
169 | created new head | |||
|
170 | $ echo c3 >> a | |||
|
171 | $ hg commit -m c3 | |||
|
172 | $ hg update 2 | |||
|
173 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
174 | $ echo c4 >> a | |||
|
175 | $ echo c4 >> b | |||
|
176 | $ hg commit -m c4 | |||
|
177 | created new head | |||
|
178 | ||||
|
179 | Configure a merge tool that runs status in the middle of the rebase. | |||
|
180 | ||||
|
181 | $ cat >> $TESTTMP/mergetool-race.sh << EOF | |||
|
182 | > echo "custom merge tool" | |||
|
183 | > printf "c2\nc3\nc4\n" > \$1 | |||
|
184 | > hg --cwd $TESTTMP/repo status | |||
|
185 | > echo "custom merge tool end" | |||
|
186 | > EOF | |||
|
187 | $ cat >> $HGRCPATH << EOF | |||
|
188 | > [extensions] | |||
|
189 | > rebase = | |||
|
190 | > [merge-tools] | |||
|
191 | > test.executable=sh | |||
|
192 | > test.args=$TESTTMP/mergetool-race.sh \$output | |||
|
193 | > EOF | |||
|
194 | ||||
|
195 | $ hg rebase -s . -d 3 --tool test | |||
|
196 | rebasing 4:b08445fd6b2a "c4" (tip) | |||
|
197 | merging a | |||
|
198 | custom merge tool | |||
|
199 | M a | |||
|
200 | ? a.orig | |||
|
201 | custom merge tool end | |||
|
202 | saved backup bundle to $TESTTMP/repo/.hg/strip-backup/* (glob) | |||
|
203 | ||||
|
204 | This hg status should be empty, whether or not fsmonitor is enabled (issue5581). | |||
|
205 | ||||
|
206 | $ hg status |
General Comments 0
You need to be logged in to leave comments.
Login now