Mercurial > hg
comparison tests/test-share.t @ 39696:9de1a1c83cd7
localrepo: document and test bug around opening shared repos
As part of refactoring this code, I realized that we don't
validate the requirements of a shared repository. This commit
documents that next to the requirements validation code and adds a
test demonstrating the buggy behavior.
I'm not sure if I'll fix this. But it is definitely a bug that
users could encounter, as LFS, narrow, and potentially other
extensions dynamically add requirements on first use. One part
of this I'm not sure about is how to handle loading the .hg/hgrc
of the shared repo. We need to do that in order to load extensions.
But we don't want that repo's hgrc to overwrite the current repo's.
Differential Revision: https://phab.mercurial-scm.org/D4572
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 12 Sep 2018 13:10:45 -0700 |
parents | c11e8894b9ca |
children | 4ece3cdfd907 |
comparison
equal
deleted
inserted
replaced
39695:cb2dcfa5cade | 39696:9de1a1c83cd7 |
---|---|
437 [255] | 437 [255] |
438 $ cd ../.. | 438 $ cd ../.. |
439 | 439 |
440 $ rm -r thatdir | 440 $ rm -r thatdir |
441 | 441 |
442 Demonstrate buggy behavior around requirements validation | |
443 See comment in localrepo.py:makelocalrepository() for more. | |
444 | |
445 $ hg init sharenewrequires | |
446 $ hg share sharenewrequires shareoldrequires | |
447 updating working directory | |
448 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
449 | |
450 $ cat >> sharenewrequires/.hg/requires << EOF | |
451 > missing-requirement | |
452 > EOF | |
453 | |
454 We cannot open the repo with the unknown requirement | |
455 | |
456 $ hg -R sharenewrequires status | |
457 abort: repository requires features unknown to this Mercurial: missing-requirement! | |
458 (see https://mercurial-scm.org/wiki/MissingRequirement for more information) | |
459 [255] | |
460 | |
461 BUG: we don't get the same error when opening the shared repo pointing to it | |
462 | |
463 $ hg -R shareoldrequires status | |
464 | |
442 Explicitly kill daemons to let the test exit on Windows | 465 Explicitly kill daemons to let the test exit on Windows |
443 | 466 |
444 $ killdaemons.py | 467 $ killdaemons.py |
445 | 468 |