mirror of
https://github.com/jj-vcs/jj.git
synced 2026-07-08 10:08:40 +08:00
This is part of a series of changes to make most methods on index traits (i.e. `ChangeIdIndex`, `MutableIndex`, `ReadonlyIndex`, `Index`) fallible. This will enable networked implementations of these traits, which may produce I/O errors during operation. See #7825 for more information. - Introduced a few more instances of the existing anti-pattern, `TODO: indexing error shouldn't be a "BackendError"`. We're tracking this known issue in #7849. - Converted `MutableRepo::merge_view` to return a `RepoLoaderError` instead of a `BackendError`. The only caller, `MutableRepo::merge`, already returns a `RepoLoaderError`. - Added three "`fallible_`" iterator helpers to reduce the amount of noise at `is_ancestor` call sites due to the method now being fallible. Using these helpers seem to produce code that's a little more readable than using `process_results` from itertools. One consideration in this trade-off is that these helpers do not themselves return iterators: if we find that we need more support for fallible combinators mid-"chain" of iterator combinators, we might either want to use `process_results` only in those cases, or switch to use of `process_results` across the board (in lieu of these new helpers).
11 KiB
11 KiB