jj/lib/src
Martin von Zweigbergk dddba4675d dag_walk: heads: use bfs and terminate if frontier has single item
We use `heads_ok()` for finding the head operations when there are
multiple current op heads. The current DFS-based algortihm needs to
always walk all the way to the root. That can be expensive when the
operations are slow to retrieve. In the common case where there are
two operations close to each other in the graph, we should be able to
terminate the search once we've reached the common ancestor. This
patch replaces the DFS by a BFS and adds the early termination.
2024-06-25 05:59:20 +09:00
..
default_index revset_graph: rename to graph and make generic over graph node type 2024-05-31 02:39:34 +08:00
lock perf: add several #[instrument]s 2023-07-28 09:28:01 -07:00
protos working_copy: Add is_file_states_sorted to tree state proto 2024-05-31 22:28:35 +10:00
backend.rs conflicts: propagate error from conflict materialization 2024-06-17 14:33:29 +09:00
commit.rs repo: consider empty and undescribed merge commits as discardable 2024-05-29 06:54:30 -07:00
commit_builder.rs clippy: disable bogus lints for nightly clippy 2024-04-05 11:39:29 -05:00
conflicts.rs diff: simply pass tokenizer Fn by value 2024-06-20 08:46:26 +09:00
content_hash.rs Nightly clippy fixes 2024-03-02 18:19:14 -08:00
dag_walk.rs dag_walk: heads: use bfs and terminate if frontier has single item 2024-06-25 05:59:20 +09:00
default_submodule_store.rs backends: deduplicate definition of backend names 2023-10-14 06:38:35 -07:00
diff.rs diff: rewrite find_line/nonword_ranges() by using iterator adapters 2024-06-20 08:46:26 +09:00
dsl_util.rs revset, templater: implement arity-based alias overloading 2024-06-14 23:11:29 +09:00
extensions_map.rs extensions_map: create a type-safe container for arbitrary objects 2024-03-12 16:52:49 -04:00
file_util.rs working_copy: implement symlinks on windows with a helper function 2024-03-05 15:16:38 +08:00
files.rs diff: simply pass tokenizer Fn by value 2024-06-20 08:46:26 +09:00
fileset.pest fileset, revset, templater: add support for single-quoted raw string literals 2024-04-25 11:14:33 +09:00
fileset.rs fileset: replace FilesetParseContext by RepoPathUiConverter 2024-05-28 21:36:40 -07:00
fileset_parser.rs fileset, templater: in tests, make parse_normalized() unwrap result 2024-06-11 20:00:47 +09:00
fmt_util.rs settings: support human-readable byte sizes for max-new-file-size 2023-08-17 19:29:38 -07:00
fsmonitor.rs Add background snapshotting info to debug watchman status. 2024-06-20 16:09:06 -04:00
git.rs cli: git: add jj git remote set-url command 2024-06-23 12:31:43 +10:00
git_backend.rs git_backend: forcibly invalidate in-memory packed-refs cache on gc() 2024-05-24 10:09:44 +09:00
gitignore.rs gitignore: make objects chain be more Arc friendly 2024-02-24 15:55:10 +09:00
gpg_signing.rs gpg: drop redundant "exit status" from error message 2024-05-13 08:30:00 -07:00
graph.rs revset_graph: rename to graph and make generic over graph node type 2024-05-31 02:39:34 +08:00
hex_util.rs hex_utils: fix typo found by clippy 2024-03-25 21:23:09 -07:00
id_prefix.rs revset: add a SymbolResolverExtension trait to provide custom resolvers 2024-04-26 10:55:34 -04:00
index.rs index_store: add more scope to write_index() 2024-05-10 09:22:09 -04:00
lib.rs Switch from a private extension to the newly release 0.9.0 2024-06-18 23:14:22 -04:00
local_backend.rs cleanup: consistently use BackendResult 2024-05-07 19:35:03 -07:00
local_working_copy.rs Add background snapshotting info to debug watchman status. 2024-06-20 16:09:06 -04:00
lock.rs lock: remove byteorder dependency from tests, use fs helper functions 2023-12-23 00:14:17 +09:00
matchers.rs matchers: add matcher for glob patterns 2024-04-18 11:09:54 +09:00
merge.rs merge: add get_simplified_mapping and update_from_simplified methods 2024-06-15 06:05:06 +08:00
merged_tree.rs merged_tree: make tree builder attempt to resolve conflicts 2024-06-08 20:29:30 +09:00
object_id.rs Add documentation comments for several types 2024-03-02 15:01:55 -05:00
op_heads_store.rs backend: allow cheap copy of MillisSinceEpoch(i64) 2024-02-25 09:00:56 +09:00
op_store.rs Replace uses of content_hash! with #[derive(ContentHash)] 2024-02-20 14:18:13 -05:00
op_walk.rs operation: add shorthand for .store_operation().metadata 2024-02-25 09:00:56 +09:00
operation.rs Add documentation comments for operation, transaction, and view types 2024-03-02 15:35:41 -05:00
refs.rs lib refs.rs: rename TrackingRefPair to LocalAndRemoteRef 2024-02-07 17:06:28 -08:00
repo.rs lib: make git support optional via crate feature 2024-06-11 22:03:20 +09:00
repo_path.rs repo_path: add type for formatting and parsing RepoPath, use in CLI 2024-05-28 21:36:40 -07:00
revset.pest revset: remove deprecated "program" rule, rename "program_with_modifier" 2024-06-08 12:48:46 +09:00
revset.rs lib: Add RevsetExpression::filtered(). 2024-06-20 23:29:41 +02:00
revset_parser.rs revset, templater: implement arity-based alias overloading 2024-06-14 23:11:29 +09:00
rewrite.rs cli: add jj fix proof of concept 2024-06-04 14:28:21 -05:00
secret_backend.rs backend: add error variant for access denied, handle when diffing 2024-05-30 18:27:38 -07:00
settings.rs feat: add an option to monitor the filesystem asynchronously 2024-06-16 23:24:22 -04:00
signing.rs sign: Implement SSH signing backend 2024-02-20 00:02:08 +00:00
simple_op_heads_store.rs backends: implement as_any() on OpStore and OpHeadsStore too 2024-01-31 00:15:29 -08:00
simple_op_store.rs lib: make git support optional via crate feature 2024-06-11 22:03:20 +09:00
ssh_signing.rs signing: remove redundant "exit status" from SSH backend error 2024-05-14 10:24:28 +09:00
stacked_table.rs clippy: disable bogus lints for nightly clippy 2024-04-05 11:39:29 -05:00
store.rs conflicts: consider the empty tree a non-legacy tree 2024-05-27 06:25:27 -07:00
str_util.rs cli: render string pattern suggestion as a hint 2024-03-30 23:53:17 +09:00
submodule_store.rs docs: warn about missing docs for jj-lib crate 2023-07-10 18:28:59 +03:00
transaction.rs index_store: add more scope to write_index() 2024-05-10 09:22:09 -04:00
tree.rs tree: take sub_tree_recursive() argument as &RepoPath 2024-05-23 10:14:48 +09:00
tree_builder.rs tree_builder: propagate errors from write_tree() 2024-05-22 06:46:38 -07:00
union_find.rs union_find: implement a library for the Union-Find algorithm 2024-05-21 10:52:31 -04:00
view.rs Implement advance-branches for jj commit 2024-04-20 10:26:04 -04:00
working_copy.rs working_copy: drop "Internal backend error" message from error 2024-06-17 14:33:29 +09:00
workspace.rs lib: make git support optional via crate feature 2024-06-11 22:03:20 +09:00