This is a pure refactor of our Git diff state management. Buffers are no longer are associated with one single diff (the unstaged changes). Instead, there is an explicit project API for retrieving a buffer's unstaged changes, and the `Editor` view layer is responsible for choosing what diff to associate with a buffer. The reason for this change is that we'll soon want to add multiple "git diff views" to Zed, one of which will show the *uncommitted* changes for a buffer. But that view will need to co-exist with other views of the same buffer, which may want to show the unstaged changes. ### Todo * [x] Get git gutter and git hunks working with new structure * [x] Update editor tests to use new APIs * [x] Update buffer tests * [x] Restructure remoting/collab protocol * [x] Update assertions about staged text in `random_project_collaboration_tests` * [x] Move buffer tests for git diff management to a new spot, using the new APIs Release Notes: - N/A --------- Co-authored-by: Richard <richard@zed.dev> Co-authored-by: Cole <cole@zed.dev> Co-authored-by: Conrad <conrad@zed.dev>
40 lines
725 B
TOML
40 lines
725 B
TOML
[package]
|
|
name = "git"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
publish = false
|
|
license = "GPL-3.0-or-later"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[lib]
|
|
path = "src/git.rs"
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
async-trait.workspace = true
|
|
collections.workspace = true
|
|
derive_more.workspace = true
|
|
git2.workspace = true
|
|
gpui.workspace = true
|
|
http_client.workspace = true
|
|
log.workspace = true
|
|
parking_lot.workspace = true
|
|
rope.workspace = true
|
|
serde.workspace = true
|
|
smol.workspace = true
|
|
sum_tree.workspace = true
|
|
text.workspace = true
|
|
time.workspace = true
|
|
url.workspace = true
|
|
util.workspace = true
|
|
|
|
[dev-dependencies]
|
|
unindent.workspace = true
|
|
serde_json.workspace = true
|
|
pretty_assertions.workspace = true
|
|
|
|
[features]
|
|
test-support = []
|