OXYGENHUB

Git import: a deletion's dependencies need its file's graph built 73d592e763ab

The batched rendering leaves graphs deferred, and referenced_changes
reads a file's graph to find who inserted the live atoms after a
deleted one. The nodes a change deletes from are built before that.

refs #25
Author
Andy McCall @andymccall <[email protected]>
When
· 2026-10-04 02:15 UTC
Signature
✔ signed by Andy McCall
Hash
73d592e763abec60d9d504caf0407322a8401fdf2fd9c4c8dc9aa5d26f1fd4ce
Depends on
2306a4d24779 79ab8528ff62 c3069537d7c5
Depended on by
nothing yet
In bookmarks
agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
In tags
v0.10.0 v0.11.0 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
Edits
1 atom, 0 tree operations, 1 file

Browse the tree at this change

modified crates/oxy-core/src/repo/git.rs +13 −0
…
1076 unchanged lines
1077 1077
                },
1078 1078
            };
1079 1079
            let t = std::time::Instant::now();
1080 +
            // A deletion depends on whoever inserted the live atoms after
1081 +
            // it, which only the file's graph knows: build the few the
1082 +
            // batched rendering left deferred.
1083 +
            let need: Vec<NodeId> = change
1084 +
                .edits
1085 +
                .iter()
1086 +
                .filter(|e| matches!(e, Edit::Delete { .. }))
1087 +
                .map(|e| e.node())
1088 +
                .filter(|n| !base.is_built(n))
1089 +
                .collect();
1090 +
            if !need.is_empty() {
1091 +
                self.load_graphs_of(&mut base, &need)?;
1092 +
            }
1080 1093
            deps.extend(referenced_changes(&change, &base));
1081 1094
            crate::timing::add("store: referenced", t.elapsed());
1082 1095
            change.deps = deps.into_iter().collect();
…
484 unchanged lines