Show More
@@ -1517,6 +1517,10 b' class workingctx(committablectx):' | |||
|
1517 | 1517 | try: |
|
1518 | 1518 | for f in fixup: |
|
1519 | 1519 | normal(f) |
|
1520 | # write changes out explicitly, because nesting | |
|
1521 | # wlock at runtime may prevent 'wlock.release()' | |
|
1522 | # below from doing so for subsequent changing files | |
|
1523 | self._repo.dirstate.write() | |
|
1520 | 1524 | finally: |
|
1521 | 1525 | wlock.release() |
|
1522 | 1526 | except error.LockError: |
@@ -1008,10 +1008,6 b' largefiles (issue4547)' | |||
|
1008 | 1008 | > EOF |
|
1009 | 1009 | $ hg clone -q enabled-but-no-largefiles no-largefiles |
|
1010 | 1010 | |
|
1011 | (test rebasing implied by pull: precommit while rebasing unexpectedly | |
|
1012 | shows "normal3" as "?", because lfdirstate isn't yet written out at | |
|
1013 | that time) | |
|
1014 | ||
|
1015 | 1011 | $ echo normal2 > enabled-but-no-largefiles/normal2 |
|
1016 | 1012 | $ hg -R enabled-but-no-largefiles add enabled-but-no-largefiles/normal2 |
|
1017 | 1013 |
|
@@ -1026,7 +1022,7 b' that time)' | |||
|
1026 | 1022 | |
|
1027 | 1023 | $ hg -R no-largefiles -q pull --rebase |
|
1028 | 1024 | Invoking status precommit hook |
|
1029 |
|
|
|
1025 | A normal3 | |
|
1030 | 1026 | |
|
1031 | 1027 | (test reverting) |
|
1032 | 1028 |
@@ -601,6 +601,17 b' HGMERGE specifies internal:other but is ' | |||
|
601 | 601 | |
|
602 | 602 | update is a merge ... |
|
603 | 603 | |
|
604 | (this also tests that files reverted with '--rev REV' are treated as | |
|
605 | "modified", even if none of mode, size and timestamp of them isn't | |
|
606 | changed on the filesystem (see also issue4583)) | |
|
607 | ||
|
608 | $ cat >> $HGRCPATH <<EOF | |
|
609 | > [fakedirstatewritetime] | |
|
610 | > # emulate invoking dirstate.write() via repo.status() | |
|
611 | > # at 2000-01-01 00:00 | |
|
612 | > fakenow = 200001010000 | |
|
613 | > EOF | |
|
614 | ||
|
604 | 615 | $ beforemerge |
|
605 | 616 | [merge-tools] |
|
606 | 617 | false.whatever= |
@@ -611,8 +622,16 b' update is a merge ...' | |||
|
611 | 622 | $ f -s f |
|
612 | 623 | f: size=17 |
|
613 | 624 | $ touch -t 200001010000 f |
|
614 | $ hg status f | |
|
625 | $ hg debugrebuildstate | |
|
626 | $ cat >> $HGRCPATH <<EOF | |
|
627 | > [extensions] | |
|
628 | > fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py | |
|
629 | > EOF | |
|
615 | 630 | $ hg revert -q -r 1 . |
|
631 | $ cat >> $HGRCPATH <<EOF | |
|
632 | > [extensions] | |
|
633 | > fakedirstatewritetime = ! | |
|
634 | > EOF | |
|
616 | 635 | $ f -s f |
|
617 | 636 | f: size=17 |
|
618 | 637 | $ touch -t 200001010000 f |
@@ -646,8 +665,16 b' update should also have --tool' | |||
|
646 | 665 | $ f -s f |
|
647 | 666 | f: size=17 |
|
648 | 667 | $ touch -t 200001010000 f |
|
649 | $ hg status f | |
|
668 | $ hg debugrebuildstate | |
|
669 | $ cat >> $HGRCPATH <<EOF | |
|
670 | > [extensions] | |
|
671 | > fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py | |
|
672 | > EOF | |
|
650 | 673 | $ hg revert -q -r 1 . |
|
674 | $ cat >> $HGRCPATH <<EOF | |
|
675 | > [extensions] | |
|
676 | > fakedirstatewritetime = ! | |
|
677 | > EOF | |
|
651 | 678 | $ f -s f |
|
652 | 679 | f: size=17 |
|
653 | 680 | $ touch -t 200001010000 f |
@@ -206,4 +206,91 b' Test for issue2364' | |||
|
206 | 206 | $ hg revert -r -2 b |
|
207 | 207 | $ hg up -q -- -2 |
|
208 | 208 | |
|
209 | Test that updated files are treated as "modified", when | |
|
210 | 'merge.update()' is aborted before 'merge.recordupdates()' (= parents | |
|
211 | aren't changed), even if none of mode, size and timestamp of them | |
|
212 | isn't changed on the filesystem (see also issue4583). | |
|
213 | ||
|
214 | $ cat > $TESTTMP/abort.py <<EOF | |
|
215 | > # emulate aborting before "recordupdates()". in this case, files | |
|
216 | > # are changed without updating dirstate | |
|
217 | > from mercurial import extensions, merge, util | |
|
218 | > def applyupdates(orig, *args, **kwargs): | |
|
219 | > orig(*args, **kwargs) | |
|
220 | > raise util.Abort('intentional aborting') | |
|
221 | > def extsetup(ui): | |
|
222 | > extensions.wrapfunction(merge, "applyupdates", applyupdates) | |
|
223 | > EOF | |
|
224 | ||
|
225 | $ cat >> .hg/hgrc <<EOF | |
|
226 | > [fakedirstatewritetime] | |
|
227 | > # emulate invoking dirstate.write() via repo.status() | |
|
228 | > # at 2000-01-01 00:00 | |
|
229 | > fakenow = 200001010000 | |
|
230 | > EOF | |
|
231 | ||
|
232 | (file gotten from other revision) | |
|
233 | ||
|
234 | $ hg update -q -C 2 | |
|
235 | $ echo 'THIS IS FILE B5' > b | |
|
236 | $ hg commit -m 'commit #5' | |
|
237 | ||
|
238 | $ hg update -q -C 3 | |
|
239 | $ cat b | |
|
240 | This is file b1 | |
|
241 | $ touch -t 200001010000 b | |
|
242 | $ hg debugrebuildstate | |
|
243 | ||
|
244 | $ cat >> .hg/hgrc <<EOF | |
|
245 | > [extensions] | |
|
246 | > fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py | |
|
247 | > abort = $TESTTMP/abort.py | |
|
248 | > EOF | |
|
249 | $ hg merge 5 | |
|
250 | abort: intentional aborting | |
|
251 | [255] | |
|
252 | $ cat >> .hg/hgrc <<EOF | |
|
253 | > [extensions] | |
|
254 | > fakedirstatewritetime = ! | |
|
255 | > abort = ! | |
|
256 | > EOF | |
|
257 | ||
|
258 | $ cat b | |
|
259 | THIS IS FILE B5 | |
|
260 | $ touch -t 200001010000 b | |
|
261 | $ hg status -A b | |
|
262 | M b | |
|
263 | ||
|
264 | (file merged from other revision) | |
|
265 | ||
|
266 | $ hg update -q -C 3 | |
|
267 | $ echo 'this is file b6' > b | |
|
268 | $ hg commit -m 'commit #6' | |
|
269 | created new head | |
|
270 | ||
|
271 | $ cat b | |
|
272 | this is file b6 | |
|
273 | $ touch -t 200001010000 b | |
|
274 | $ hg debugrebuildstate | |
|
275 | ||
|
276 | $ cat >> .hg/hgrc <<EOF | |
|
277 | > [extensions] | |
|
278 | > fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py | |
|
279 | > abort = $TESTTMP/abort.py | |
|
280 | > EOF | |
|
281 | $ hg merge --tool internal:other 5 | |
|
282 | abort: intentional aborting | |
|
283 | [255] | |
|
284 | $ cat >> .hg/hgrc <<EOF | |
|
285 | > [extensions] | |
|
286 | > fakedirstatewritetime = ! | |
|
287 | > abort = ! | |
|
288 | > EOF | |
|
289 | ||
|
290 | $ cat b | |
|
291 | THIS IS FILE B5 | |
|
292 | $ touch -t 200001010000 b | |
|
293 | $ hg status -A b | |
|
294 | M b | |
|
295 | ||
|
209 | 296 | $ cd .. |
@@ -175,6 +175,46 b' revert of exec bit' | |||
|
175 | 175 | executable |
|
176 | 176 | #endif |
|
177 | 177 | |
|
178 | Test that files reverted to other than the parent are treated as | |
|
179 | "modified", even if none of mode, size and timestamp of it isn't | |
|
180 | changed on the filesystem (see also issue4583). | |
|
181 | ||
|
182 | $ echo 321 > e | |
|
183 | $ hg diff --git | |
|
184 | diff --git a/e b/e | |
|
185 | --- a/e | |
|
186 | +++ b/e | |
|
187 | @@ -1,1 +1,1 @@ | |
|
188 | -123 | |
|
189 | +321 | |
|
190 | $ hg commit -m 'ambiguity from size' | |
|
191 | ||
|
192 | $ cat e | |
|
193 | 321 | |
|
194 | $ touch -t 200001010000 e | |
|
195 | $ hg debugrebuildstate | |
|
196 | ||
|
197 | $ cat >> .hg/hgrc <<EOF | |
|
198 | > [fakedirstatewritetime] | |
|
199 | > # emulate invoking dirstate.write() via repo.status() | |
|
200 | > # at 2000-01-01 00:00 | |
|
201 | > fakenow = 200001010000 | |
|
202 | > | |
|
203 | > [extensions] | |
|
204 | > fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py | |
|
205 | > EOF | |
|
206 | $ hg revert -r 0 e | |
|
207 | $ cat >> .hg/hgrc <<EOF | |
|
208 | > [extensions] | |
|
209 | > fakedirstatewritetime = ! | |
|
210 | > EOF | |
|
211 | ||
|
212 | $ cat e | |
|
213 | 123 | |
|
214 | $ touch -t 200001010000 e | |
|
215 | $ hg status -A e | |
|
216 | M e | |
|
217 | ||
|
178 | 218 | $ cd .. |
|
179 | 219 | |
|
180 | 220 |
@@ -939,14 +939,32 b' Issue1977: multirepo push should fail if' | |||
|
939 | 939 | |
|
940 | 940 | test if untracked file is not overwritten |
|
941 | 941 | |
|
942 | (this also tests that updated .hgsubstate is treated as "modified", | |
|
943 | when 'merge.update()' is aborted before 'merge.recordupdates()', even | |
|
944 | if none of mode, size and timestamp of it isn't changed on the | |
|
945 | filesystem (see also issue4583)) | |
|
946 | ||
|
942 | 947 | $ echo issue3276_ok > repo/s/b |
|
943 | 948 | $ hg -R repo2 push -f -q |
|
944 | 949 | $ touch -t 200001010000 repo/.hgsubstate |
|
945 | $ hg -R repo status --config debug.dirstate.delaywrite=2 repo/.hgsubstate | |
|
950 | ||
|
951 | $ cat >> repo/.hg/hgrc <<EOF | |
|
952 | > [fakedirstatewritetime] | |
|
953 | > # emulate invoking dirstate.write() via repo.status() | |
|
954 | > # at 2000-01-01 00:00 | |
|
955 | > fakenow = 200001010000 | |
|
956 | > | |
|
957 | > [extensions] | |
|
958 | > fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py | |
|
959 | > EOF | |
|
946 | 960 | $ hg -R repo update |
|
947 | 961 | b: untracked file differs |
|
948 | 962 | abort: untracked files in working directory differ from files in requested revision (in subrepo s) |
|
949 | 963 | [255] |
|
964 | $ cat >> repo/.hg/hgrc <<EOF | |
|
965 | > [extensions] | |
|
966 | > fakedirstatewritetime = ! | |
|
967 | > EOF | |
|
950 | 968 | |
|
951 | 969 | $ cat repo/s/b |
|
952 | 970 | issue3276_ok |
General Comments 0
You need to be logged in to leave comments.
Login now