Commit Graph

10995 Commits

Author SHA1 Message Date
Antonio Scandurra
2fe736fc6b 🎨 2023-08-05 15:33:57 +02:00
Antonio Scandurra
92d748134e Revisit synchronization algorithm to detect holes in either sequence 2023-08-05 12:01:09 +02:00
Antonio Scandurra
8d7b37b743 Revisit synchronization routine to perform fewer roundtrips
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-08-04 19:42:02 +02:00
Antonio Scandurra
f1fe0007e3 Log roundtrips only when RUST_LOG=debug 2023-08-04 16:12:54 +02:00
Antonio Scandurra
d66af5c4d2 Avoid talking about trees when subdividing ranges 2023-08-04 15:49:08 +02:00
Antonio Scandurra
dc049ca7d2 💄 2023-08-04 15:01:39 +02:00
Antonio Scandurra
6251399d0a Add randomized test for synchronization 2023-08-04 11:49:14 +02:00
Antonio Scandurra
e979f753f2 Cleanup 2023-08-04 11:28:31 +02:00
Antonio Scandurra
80f9b553c7 Avoid mutating the server as we synchronize 2023-08-04 11:26:43 +02:00
Antonio Scandurra
bd0a9eb704 Test various depths, bases and min_operations in sync 2023-08-04 08:54:38 +02:00
Antonio Scandurra
52beac9fa5 💄 2023-08-03 19:33:38 +02:00
Antonio Scandurra
c603ef3f3d Get an initial implementation of sync working
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-08-03 18:57:16 +02:00
Antonio Scandurra
eb79ea6ee5 WIP
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-08-03 18:09:42 +02:00
Antonio Scandurra
26cb5e316d WIP 2023-08-03 15:22:23 +02:00
Nathan Sobo
974d07d304 Start on a different sync approach
We created a function range_digests, which creates a vector of digests for
a tree of nested ranges up to a certain depth or down to a certain range size.

Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-08-02 11:41:35 -06:00
Antonio Scandurra
d8f6dc3749 📝 2023-08-02 13:45:25 +02:00
Antonio Scandurra
3ebe2f97cc WIP: re-create a Checkout when reloading repo if it was published 2023-08-02 13:03:02 +02:00
Antonio Scandurra
400105cf18 Add todo 2023-08-02 09:51:12 +02:00
Antonio Scandurra
ba6f1d7281 Save dirty revisions in the background
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-08-01 17:14:08 +02:00
Antonio Scandurra
86b0ed8fda Implement Revision::load_documents
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-08-01 16:18:57 +02:00
Antonio Scandurra
50f507e38e Maintain ref counts for document handles 2023-08-01 15:07:32 +02:00
Antonio Scandurra
7fbe5910b9 Remove DbSnapshot 2023-08-01 10:05:06 +02:00
Antonio Scandurra
7f49ca4adb Simplify apply_operations 2023-08-01 09:48:17 +02:00
Antonio Scandurra
b751fe9e98 💄 2023-08-01 09:21:55 +02:00
Antonio Scandurra
85c9b30e9f Experiment with a RevisionCache struct 2023-07-31 16:32:10 +02:00
Antonio Scandurra
82c022adb3 Avoid descending into trees that have already been fully loaded 2023-07-31 15:18:05 +02:00
Antonio Scandurra
7494fdc738 Remove async_recursion from crdb 2023-07-31 14:20:01 +02:00
Antonio Scandurra
1919a5bb63 Use Arc<str> as the key type for RepoSnapshot::branch_ids_by_name 2023-07-31 14:16:20 +02:00
Antonio Scandurra
308c29d377 Remove Default constraint from btree::Map keys 2023-07-31 14:14:09 +02:00
Antonio Scandurra
eacb37e200 Fix basic collaboration test 2023-07-31 13:10:50 +02:00
Antonio Scandurra
083c857fa0 Rename traverse to rewind 2023-07-31 12:53:40 +02:00
Antonio Scandurra
1d0ff4bf8e Optimize revision traversal and reconstruction 2023-07-31 12:45:34 +02:00
Antonio Scandurra
9cbe3cca9a WIP 2023-07-31 11:57:38 +02:00
Antonio Scandurra
ce17cd83cf Redesign history traversal 2023-07-31 11:39:41 +02:00
Antonio Scandurra
05ec6b89c2 WIP 2023-07-30 13:45:31 +02:00
Antonio Scandurra
93701f9c5d Avoid incrementing operation id if it's unnecessary for causality 2023-07-30 12:15:34 +02:00
Antonio Scandurra
083bfc6cbc Reify a History struct
This has to be integrated still.
2023-07-30 11:57:02 +02:00
Antonio Scandurra
a084a93ef0 Make apply_operations asynchronous 2023-07-29 15:36:52 +02:00
Antonio Scandurra
84bf6c5a16 Use pointer equality to detect changes to the repo snapshot 2023-07-29 11:54:13 +02:00
Antonio Scandurra
e99f82f855 Start on loading/saving revisions 2023-07-29 11:54:02 +02:00
Antonio Scandurra
ba3353d127 Allow loading and saving of ropes
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-07-28 19:58:31 +02:00
Antonio Scandurra
2887c4674d Load fewer items in randomized tests for partially loaded trees 2023-07-28 19:57:03 +02:00
Antonio Scandurra
22e8a67498 Load branch from kv store if necessary
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-07-28 19:14:58 +02:00
Antonio Scandurra
4848ea8e62 Spawn a background task to save repo snapshots 2023-07-28 13:08:33 +02:00
Antonio Scandurra
3349f2147a Force all changes to a repository to take place via Repo::update 2023-07-28 12:45:51 +02:00
Antonio Scandurra
103d5293be Start on loading RepoSnapshots 2023-07-28 12:34:23 +02:00
Antonio Scandurra
1046b60fd2 Avoid cycling dependency between Client and Checkout 2023-07-28 11:15:49 +02:00
Antonio Scandurra
d5932717f2 WIP 2023-07-27 19:41:56 +02:00
Antonio Scandurra
8eeaacdf0a Pass a KvStore to Client and Server
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-07-27 18:03:55 +02:00
Antonio Scandurra
2de48f96d2 Simplify KvStore trait
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-07-27 17:49:16 +02:00