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

Reply via email to