jj/lib/src
Martin von Zweigbergk 86206e83a4 repo_path: avoid repeated copying of PathBuf in to_fs_path()
I've noticed `WorkspaceCommandHelper::format_file_path()` appear in
profiles a few times. A big part of that is spent in
`RepoPath::to_fs_path()`. I think I had been thinking that
`PathBuf::join()` takes `self` by value and mutates it, but it turns
out it creates a new instance. So our `result = result.join(...)` in a
loop was copying the `PathBuf` over and over. This fixes that and also
reserves the expected size. That speeds up `jj files
--ignore-working-copy -r v6.0` in the Linux repo from 546.0 s to 509.3
s (6.7%).
2023-09-09 08:43:29 -07:00
..
lock
protos working_copy: enable storing multiple tree ids in state file 2023-08-27 06:49:45 -07:00
backend.rs merged_trees: consider conflict-format-change-only commits empty 2023-08-30 06:17:21 -07:00
commit.rs commit: drop merged_ prefix from tree() and tree_id() 2023-08-29 08:32:04 -07:00
commit_builder.rs commit_builder: remove last traces of pre-MergedTree API 2023-08-29 07:01:52 -07:00
conflicts.rs conflicts: leverage Merge::map() in materialize_merge_result() 2023-09-01 16:23:39 -07:00
content_hash.rs
dag_walk.rs dag_walk: add topological sort that runs Kahn's algorithm with heap queue 2023-08-15 15:03:45 +09:00
default_index_store.rs cleanup: replace x[n..n+l] by x[n..][..l] 2023-08-21 22:29:46 -07:00
default_revset_engine.rs commit: drop merged_ prefix from tree() and tree_id() 2023-08-29 08:32:04 -07:00
default_revset_graph_iterator.rs
default_submodule_store.rs
diff.rs
file_util.rs
files.rs
fmt_util.rs settings: support human-readable byte sizes for max-new-file-size 2023-08-17 19:29:38 -07:00
fsmonitor.rs
git.rs git: promote imported commits to tree-conflict format if configured 2023-09-08 21:54:43 +09:00
git_backend.rs git: promote imported commits to tree-conflict format if configured 2023-09-08 21:54:43 +09:00
gitignore.rs Fix .gitignore handling of ignored directories 2023-08-22 22:08:32 -07:00
hex_util.rs
id_prefix.rs revset: resolve "@" symbol's workspace id earlier (while parsing) 2023-08-20 17:57:18 -07:00
index.rs
lib.rs settings: support human-readable byte sizes for max-new-file-size 2023-08-17 19:29:38 -07:00
local_backend.rs backends: store tree id conflicts as list with alternating signs 2023-08-26 07:02:04 -07:00
lock.rs
matchers.rs
merge.rs merge: add a function for padding a Merge to a given size 2023-09-01 06:09:37 -07:00
merged_tree.rs merged_tree: allow building trees with variable-arity overrides 2023-09-01 06:09:37 -07:00
op_heads_store.rs op_heads_store: propagate errors from OpStore 2023-08-31 12:36:47 -07:00
op_store.rs merge: add Merge::is_absent() and Merge::is_present() 2023-08-25 06:40:36 -07:00
operation.rs
refs.rs
repo.rs merged_tree: add config option to write trees using new format 2023-08-30 06:17:21 -07:00
repo_path.rs repo_path: avoid repeated copying of PathBuf in to_fs_path() 2023-09-09 08:43:29 -07:00
revset.pest revset: add 0-ary "::" and ".." operators as short for "all()" and "~root()" 2023-09-05 10:40:04 +09:00
revset.rs revset: use ancestors(x, 0) in tree substitution test 2023-09-08 09:28:14 +09:00
revset_graph.rs
rewrite.rs store: add a empty_merged_tree_id() helper 2023-08-30 19:58:42 -07:00
settings.rs cli: rewrite "x | x-" in default log revset as "ancestors(x, 2)" 2023-09-08 09:28:14 +09:00
simple_op_heads_store.rs
simple_op_store.rs
stacked_table.rs cleanup: replace x[n..n+l] by x[n..][..l] 2023-08-21 22:29:46 -07:00
store.rs store: don't include cached objects in Debug format 2023-09-01 16:49:23 -07:00
submodule_store.rs
transaction.rs
tree.rs tree: inline legacy_id() into its sole caller 2023-08-29 07:01:52 -07:00
tree_builder.rs tree_builder: remove unnecessary has_overrides() method 2023-08-26 07:02:04 -07:00
view.rs
working_copy.rs working_copy: in LockedWorkingCopy::drop(), discard unsaved changes 2023-09-01 12:25:47 -07:00
workspace.rs