Closes #48434 In Dev Containers, failed git operations were surfaced with a generic failure message, while the useful git output (stderr/stdout) was not reliably available to users. This happened because in devcontainers the git operation errors go through an RPC layer and then got wrapped with `anyhow::Context` (e.g. “sending pull request”); the toast displayed only that outer context via `to_string()`, masking the underlying git stderr message. This change ensures the full git operation output is preserved and surfaced via Zed’s “See logs” flow in Dev Containers, matching the information you get when running the same git command in a terminal. ### What you should expect in the UI - You will see a generic toast like “git pull failed” / “git push failed”. - When clicking on the toast’s “See logs”, the log tab now contains the full git error output (e.g. non-fast-forward hints, merge conflict details, “local changes would be overwritten”, etc.), which previously could be missing/too generic. --- ## Manual testing Run inside a Dev Container and ensure git auth works (SSH keys/agent or HTTPS credentials). 1. **Dirty-tree pull failure** - Make remote ahead by 1 commit (push from another clone). - Locally modify the same file without committing. - In Zed: **Pull** - **Expect:** toast “git pull failed” + **See logs** shows “local changes would be overwritten…” (or equivalent). 2. **Non-fast-forward push failure** - Ensure remote ahead. - Locally create 1 commit. - In Zed: **Push** - **Expect:** toast “git push failed” + **See logs** shows “rejected (non-fast-forward)” + hint to pull first. 3. **Merge-conflict pull failure** - Create conflicting commits on the same lines (one local commit, one remote commit). - In Zed: **Pull** - **Expect:** toast “git pull failed” + **See logs** shows conflict output (“CONFLICT…”, “Automatic merge failed…”). Release Notes: - Fixed devcontainer git failure toasts so they show the actual git error --------- Co-authored-by: KyleBarton <kjb@initialcapacity.io>
90 lines
2.3 KiB
TOML
90 lines
2.3 KiB
TOML
[package]
|
|
name = "git_ui"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
publish.workspace = true
|
|
license = "GPL-3.0-or-later"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[lib]
|
|
name = "git_ui"
|
|
path = "src/git_ui.rs"
|
|
|
|
[features]
|
|
test-support = ["multi_buffer/test-support", "remote_connection/test-support"]
|
|
|
|
[dependencies]
|
|
agent_settings.workspace = true
|
|
anyhow.workspace = true
|
|
askpass.workspace = true
|
|
buffer_diff.workspace = true
|
|
call.workspace = true
|
|
cloud_llm_client.workspace = true
|
|
collections.workspace = true
|
|
component.workspace = true
|
|
db.workspace = true
|
|
editor.workspace = true
|
|
futures.workspace = true
|
|
feature_flags.workspace = true
|
|
fuzzy.workspace = true
|
|
git.workspace = true
|
|
gpui.workspace = true
|
|
itertools.workspace = true
|
|
language.workspace = true
|
|
language_model.workspace = true
|
|
linkify.workspace = true
|
|
log.workspace = true
|
|
markdown.workspace = true
|
|
menu.workspace = true
|
|
multi_buffer.workspace = true
|
|
notifications.workspace = true
|
|
panel.workspace = true
|
|
picker.workspace = true
|
|
project.workspace = true
|
|
prompt_store.workspace = true
|
|
proto.workspace = true
|
|
remote_connection.workspace = true
|
|
remote.workspace = true
|
|
schemars.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
settings.workspace = true
|
|
smallvec.workspace = true
|
|
smol.workspace = true
|
|
strum.workspace = true
|
|
telemetry.workspace = true
|
|
theme.workspace = true
|
|
time.workspace = true
|
|
time_format.workspace = true
|
|
ui.workspace = true
|
|
ui_input.workspace = true
|
|
util.workspace = true
|
|
watch.workspace = true
|
|
workspace.workspace = true
|
|
zed_actions.workspace = true
|
|
zeroize.workspace = true
|
|
ztracing.workspace = true
|
|
tracing.workspace = true
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows.workspace = true
|
|
|
|
[dev-dependencies]
|
|
ctor.workspace = true
|
|
editor = { workspace = true, features = ["test-support"] }
|
|
git_hosting_providers.workspace = true
|
|
gpui = { workspace = true, features = ["test-support"] }
|
|
indoc.workspace = true
|
|
pretty_assertions.workspace = true
|
|
project = { workspace = true, features = ["test-support"] }
|
|
rand.workspace = true
|
|
settings = { workspace = true, features = ["test-support"] }
|
|
unindent.workspace = true
|
|
workspace = { workspace = true, features = ["test-support"] }
|
|
zlog.workspace = true
|
|
remote_connection = { workspace = true, features = ["test-support"] }
|
|
|
|
[package.metadata.cargo-machete]
|
|
ignored = ["tracing"]
|