jj/lib/src
Martin von Zweigbergk 6e302bb3a2 op_store: add a virtual root operation, similar to root commit
It seems obvious in hindsight to have a virtual root operation just
like we have a virtual root commit. It removes the same kind of
problems by making sure there's always a common ancestor (or multiple)
between any two commits.

I think the reason I didn't add a root operation from the beginning
was that there used to be a mandatory working-copy commit in the view
(this was before support for multiple workspaces).

Perhaps we should remove the "initialize repo" operation now. The only
difference between their view objects is that the "initialize repo"
operation adds the root commit as a head. We could add that to the
root operation, but then the root operation's value depends on the
commit backend.
2024-01-14 10:15:14 -08:00
..
default_index index: fix reindexing to scan all referenced commits such as hidden remote refs 2024-01-12 12:53:16 +09:00
lock perf: add several #[instrument]s 2023-07-28 09:28:01 -07:00
protos view: drop tracking of public heads 2024-01-13 22:23:57 -08:00
backend.rs object_id: extract ObjectId trait and macros to separate module 2024-01-05 10:20:57 +09:00
commit.rs sign: Define signing backend API and integrate it 2023-11-30 23:36:56 +02:00
commit_builder.rs Make CommitBuilder constructors private to the library crate 2023-12-24 19:25:16 -08:00
conflicts.rs cli: pass MaterializedTreeValue into git_diff_part() 2023-11-10 04:54:47 -08:00
content_hash.rs content_hash: make public 2023-09-18 07:53:19 -07:00
dag_walk.rs dag_walk: add fallible topo_order_reverse_lazy() 2023-11-14 07:16:39 +09:00
default_submodule_store.rs backends: deduplicate definition of backend names 2023-10-14 06:38:35 -07:00
diff.rs refactor(jj-lib): remove nightly_shims gunk 2023-07-17 18:38:26 -05:00
file_util.rs op_store: implement GC of unreachble operations and views 2024-01-09 10:37:03 +09:00
files.rs merge: relax input type of Merge::from_removes_adds() 2023-11-07 17:10:12 +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 fsmonitor: exclude .git and .jj directories from changed files 2023-11-23 18:48:14 +09:00
git.rs git_backend: teach "format.tree-level-conflicts" config by constructor 2024-01-10 08:57:51 +09:00
git_backend.rs git_backend: teach "format.tree-level-conflicts" config by constructor 2024-01-10 08:57:51 +09:00
gitignore.rs Fix .gitignore handling of ignored directories 2023-08-22 22:08:32 -07:00
hex_util.rs hex_util: move common_hex_len() from backend module 2024-01-05 10:20:57 +09:00
id_prefix.rs object_id: make ObjectId constructors non-trait methods 2024-01-05 23:36:57 +09:00
index.rs index: move lifetimed change_id_index() to MutableIndex, rename 'static version 2024-01-09 10:38:00 +09:00
lib.rs default_index: adopt revset engine and graph iterator modules 2024-01-07 05:37:47 -08:00
local_backend.rs object_id: extract ObjectId trait and macros to separate module 2024-01-05 10:20:57 +09:00
local_working_copy.rs working_copy: mark commit_id field in proto reserved 2024-01-12 17:38:23 -08:00
lock.rs lock: remove byteorder dependency from tests, use fs helper functions 2023-12-23 00:14:17 +09:00
matchers.rs matchers: clean up .walk_to(dir) to yield &RepoPath instead of iterator 2023-11-29 08:41:23 +09:00
merge.rs object_id: extract ObjectId trait and macros to separate module 2024-01-05 10:20:57 +09:00
merged_tree.rs merged_tree: remove canceling terms prior to resolving file-level conflict 2023-12-03 07:44:58 +09:00
object_id.rs object_id: don't allow ObjectId::from_hex() a dynamically allocated string 2024-01-06 00:26:36 +09:00
op_heads_store.rs op_heads: let caller decide resolve_op_heads() error type 2024-01-01 10:22:23 +09:00
op_store.rs op_store: add a virtual root operation, similar to root commit 2024-01-14 10:15:14 -08:00
op_walk.rs cli: run "op log" without loading repo or merging concurrent ops 2024-01-13 10:38:10 +09:00
operation.rs operation: remove operation::View wrapper in favor of view::View 2024-01-12 08:01:02 +09:00
refs.rs object_id: make ObjectId constructors non-trait methods 2024-01-05 23:36:57 +09:00
repo.rs op_store: add a virtual root operation, similar to root commit 2024-01-14 10:15:14 -08:00
repo_path.rs working_copy: add file states wrapper that provides map-like API 2023-11-30 12:09:31 +09: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: remove unused lifetime parameter from Revset<'index> 2024-01-09 10:37:43 +09:00
revset_graph.rs object_id: extract ObjectId trait and macros to separate module 2024-01-05 10:20:57 +09:00
rewrite.rs object_id: extract ObjectId trait and macros to separate module 2024-01-05 10:20:57 +09:00
settings.rs object_id: make ObjectId constructors non-trait methods 2024-01-05 23:36:57 +09:00
signing.rs sign: Define signing backend API and integrate it 2023-11-30 23:36:56 +02:00
simple_op_heads_store.rs object_id: extract ObjectId trait and macros to separate module 2024-01-05 10:20:57 +09:00
simple_op_store.rs op_store: add a virtual root operation, similar to root commit 2024-01-14 10:15:14 -08:00
stacked_table.rs index, stacked_table: inline read_u32::<LittleEndian>() 2023-12-23 00:14:17 +09:00
store.rs gc: implement basic GC for Git backend 2023-12-03 07:40:12 -08:00
str_util.rs cli: parse "git fetch --branch" parameter as string pattern 2023-10-25 03:58:48 +09:00
submodule_store.rs docs: warn about missing docs for jj-lib crate 2023-07-10 18:28:59 +03:00
transaction.rs op heads: remove promote_new_op() 2023-12-28 09:17:42 -08:00
tree.rs object_id: extract ObjectId trait and macros to separate module 2024-01-05 10:20:57 +09:00
tree_builder.rs repo_path: change .split() and .parent() to return &RepoPath 2023-11-29 08:41:23 +09:00
view.rs view: drop tracking of public heads 2024-01-13 22:23:57 -08:00
working_copy.rs repo_path: add stub RepoPathBuf type, update callers 2023-11-28 07:33:28 +09:00
workspace.rs transaction: take description at end instead of start 2023-12-13 08:12:49 -08:00