Martin von Zweigbergk
ecb2847ef5
store: make write_tree()
async
2024-09-04 18:34:11 -07:00
Yuya Nishihara
87fb169266
cleanup: remove redundant ::{self} from use declarations
2024-08-23 13:05:27 +09:00
Matt Kulukundis
8ead72e99f
formatting only: switch to Item level import ganularity
2024-08-22 14:52:54 -04:00
Yuya Nishihara
ed1c07e73e
tree: fill in valid id to null tree, rename function to empty()
...
If a null tree were written to the store, GitBackend would crash because of
invalid hash length.
2024-08-11 18:23:21 +09:00
Martin von Zweigbergk
07bb1d81b7
tree_builder: propagate errors from write_tree()
2024-05-22 06:46:38 -07:00
Martin von Zweigbergk
1970ddef15
tree: propagate errors from sub_tree()
/path_value()
2024-05-22 06:46:38 -07:00
Austin Seipp
5b517b542e
rust: bump MSRV to 1.76.0
...
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2024-02-09 15:48:01 -06:00
Yuya Nishihara
016fc2b5cc
repo_path: change .split() and .parent() to return &RepoPath
2023-11-29 08:41:23 +09:00
Yuya Nishihara
0a1bc2ba42
repo_path: add stub RepoPathBuf type, update callers
...
Most RepoPath::from_internal_string() callers will be migrated to the function
that returns &RepoPath, and cloning &RepoPath won't work.
2023-11-28 07:33:28 +09:00
Yuya Nishihara
59ef3f0023
repo_path: split RepoPathComponent into owned and borrowed types
...
This is a step towards introducing a borrowed RepoPath type. The current
RepoPath type is inefficient as each component String is usually short. We
could apply short-string optimization, but still each inlined component would
consume 24 bytes just for e.g. "src", and increase the chance of random memory
access. If the owned RepoPath type is backed by String, we can implement cheap
cast from &str to borrowed &RepoPath type.
2023-11-26 18:21:40 +09:00
Martin von Zweigbergk
2fe4372121
tree_builder: remove unnecessary has_overrides()
method
...
It's easy to instead check if the new tree id is different from the
tree id.
2023-08-26 07:02:04 -07:00
Martin von Zweigbergk
6b5544f335
tree_builder: add a set_or_remove()
and simplify callers
...
Many of the `TreeBuilder` users have an `Option<TreeValue>` and call
either `set()` or `remove()` or the builder depending on whether the
value is present. Let's centralize this logic in a new
`TreeBuilder::set_or_remove()`.
2023-08-24 06:08:25 -07:00
Martin von Zweigbergk
07dca6ef6a
tree_builder: leverage BTreeMap::pop_last()
now that we're on Rust 1.66+
2023-07-20 06:14:28 -07:00
Waleed Khan
54dba51a08
docs: warn about missing docs for jj-lib
crate
2023-07-10 18:28:59 +03:00
Martin von Zweigbergk
c0ffce781e
store: cache tree on write and return it
...
This matches what we do when writing commits.
2023-06-30 14:12:36 +02:00
Yuya Nishihara
6872051270
tree_builder: populate base trees by recursion
...
Suppose many override entries share the same parent directories, it should
be cheaper to look up the tree_cache from leaf than root. I also think
recursion is easier to follow than for loop.
2023-06-02 12:23:37 +09:00
Yuya Nishihara
941f41e62e
tree_builder: initialize base trees with the root entry
...
This helps to rewrite populate_trees() as recursive function call.
2023-06-02 12:23:37 +09:00
Yuya Nishihara
7cf96bcae0
tree_builder: ensure override file path never points to root tree
2023-06-02 12:23:37 +09:00
Yuya Nishihara
f475122b7e
tree_builder: simply map Tree to backend::Tree in later pass
...
I'll rewrite populate_trees() as a recursive function, so I want to minimize
the objects to be passed to the function.
2023-06-02 12:23:37 +09:00
Yuya Nishihara
0846d7fc8b
tree_builder: remove unneeded "mut" self
2023-06-02 12:23:37 +09:00
Yuya Nishihara
3d449c55b7
tree_builder: do not omit file entry which was previously a directory
2023-06-01 09:38:06 +09:00
Yuya Nishihara
68a30c934d
tree_builder: when writing trees, rely on lexicographical order of RepoPath
2023-06-01 09:38:06 +09:00
Ilya Grigoriev
a5d77a27e8
cargo +nightly clippy --fix --workspace
with today's nightly
2023-01-07 15:29:19 -08:00
Martin von Zweigbergk
d8feed9be4
copyright: change from "Google LLC" to "The Jujutsu Authors"
...
Let's acknowledge everyone's contributions by replacing "Google LLC"
in the copyright header by "The Jujutsu Authors". If I understand
correctly, it won't have any legal effect, but maybe it still helps
reduce concerns from contributors (though I haven't heard any
concerns).
Google employees can read about Google's policy at
go/releasing/contributions#copyright.
2022-11-28 06:05:45 -10:00
Yuya Nishihara
a8a3a236b0
working_copy: on finish(), don't serialize tree_state if known to be clean
...
This allows us to call locked_wc.finish() no matter if the tree is changed
or not.
2022-10-02 15:15:18 +09:00
Martin von Zweigbergk
76c58b3949
tree_builder: rename repo()
to more accurate store()
2021-11-07 15:17:51 -08:00
Martin von Zweigbergk
ce5e95fa80
store: rename Store to Backend and StoreWrapper to Store
...
For what's currently called `Store` in the code, I have been using
"backend" in plain text. That probably means that `Backend` is a good
name for it.
2021-09-12 12:02:10 -07:00
Martin von Zweigbergk
0ce50e137a
store: use RepoPathComponent in Tree
2021-06-05 23:36:38 -07:00
Martin von Zweigbergk
ac38c8b641
repo_path: rename value() to clearer as_str()
2021-06-05 22:49:52 -07:00
Martin von Zweigbergk
54f6165ef1
repo_path: replace remaining uses of DirRepoPath by RepoPath
2021-05-19 15:11:04 -07:00
Martin von Zweigbergk
5421251e72
repo_path: change representation of RepoPath to have only a list of components
2021-05-19 15:11:04 -07:00
Martin von Zweigbergk
4b8484e561
rustfmt: configure to group imports
2021-03-14 10:46:25 -07:00
Martin von Zweigbergk
6b1427cb46
import commit 0f15be02bf4012c116636913562691a0aaa7aed2 from my hg repo
2020-12-12 00:23:38 -08:00