I am going through the tests that are changed or disabled (WIP or XFAIL) on the branch. Here is one.
authz_tests.py 31 remove_access_after_commit(): "remove a subdir with authz file" Fails in pristine-on-demand mode in this scenario: - checkout - commit changes to files under dirs (B,D) - change authz in repo: remove access from (B,D) - local modification to file under dir (D) - (no text bases are present locally, yet) - update Expected: the update ... - removes now-inaccessible unmodified paths (B) - tree-conflicts now-inaccessible parent of local mods (D) Actual: - the update first does a "text base sync", trying to fetch text bases of all locally modified files within the tree, and - this code path errors out "unauthorized" when it hits a file such as (F). Proposed fix: in "text base sync" phase, ignore auth error while fetching any text base; continue with trying to fetch the rest. That works in terms of the test case passing. Can anyone think of issues with this approach, not limited to: - Other error codes that should be ignored at the sync stage (because the operation ends up not actually needing that particular text base)? - Problems or better handling of the inherent race condition between the sync and the main operation? - Julian