comparison tests/test-tags.t @ 44292:f5a7cf0adb12

tags: behave better if a tags cache entry is partially written This is done by discarding any partial cache entry, instead of filling the partial cache entry with 0xff before. Differential Revision: https://phab.mercurial-scm.org/D8095
author Valentin Gatien-Baron <vgatien-baron@janestreet.com>
date Fri, 07 Feb 2020 16:01:32 -0500
parents 89d44cfcdeeb
children 56f089e40c5a
comparison
equal deleted inserted replaced
44291:89d44cfcdeeb 44292:f5a7cf0adb12
369 1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> 3/4 cache hits/lookups in * seconds (glob) 369 1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> 3/4 cache hits/lookups in * seconds (glob)
370 1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> writing .hg/cache/tags2-visible with 1 tags 370 1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> writing .hg/cache/tags2-visible with 1 tags
371 1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> tags exited 0 after * seconds (glob) 371 1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> tags exited 0 after * seconds (glob)
372 1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> blackbox -l 6 372 1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> blackbox -l 6
373 373
374 Junk data + missing cache entries results in hg further corrupting the 374 On junk data + missing cache entries, hg also overwrites the junk.
375 cache, then failing.
376 375
377 $ rm -f .hg/cache/tags2-visible 376 $ rm -f .hg/cache/tags2-visible
378 $ truncate .hg/cache/hgtagsfnodes1 -s -10 377 $ truncate .hg/cache/hgtagsfnodes1 -s -10
379 $ hg debugtagscache | tail -2 378 $ hg debugtagscache | tail -2
380 4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d 379 4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d
381 5 8dbfe60eff306a54259cfe007db9e330e7ecf866 0c04f2a8af31de17fab7ffffffffffffffffffff 380 5 8dbfe60eff306a54259cfe007db9e330e7ecf866 missing/invalid
382 $ hg tags 381 $ hg tags
383 abort: data/.hgtags.i@0c04f2a8af31: no match found! 382 tip 5:8dbfe60eff30
384 [255] 383 bar 1:78391a272241
385 $ hg debugtagscache | tail -2 384 $ hg debugtagscache | tail -2
386 4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d 385 4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d
387 5 8dbfe60eff306a54259cfe007db9e330e7ecf866 0c04f2a8af31de17fab7ffffffffffffffffffff 386 5 8dbfe60eff306a54259cfe007db9e330e7ecf866 0c04f2a8af31de17fab7422878ee5a2dadbc943d
388 # fix up the cache
389 $ rm .hg/cache/hgtagsfnodes1
390 $ hg tags -q
391 tip
392 bar
393 387
394 #if unix-permissions no-root 388 #if unix-permissions no-root
395 Errors writing to .hgtags fnodes cache are silently ignored 389 Errors writing to .hgtags fnodes cache are silently ignored
396 390
397 $ echo dummy2 > foo 391 $ echo dummy2 > foo