zed/assets
Alvaro Parker db404fc2e3
git: Add diff view for stash entries (#38280)
Continues the work from #35927 to add a git diff view for stash entries.

[Screencast From 2025-09-17
19-46-01.webm](https://github.com/user-attachments/assets/ded33782-adef-4696-8e34-3665911c09c7)

Stash entries are [represented as
commits](https://git-scm.com/docs/git-stash#_discussion) except they
have up to 3 parents:

```
       .----W (this is the stash entry)
      /    /|
-----H----I |
           \|
            U
```

Where `H` is the `HEAD` commit, `I` is a commit that records the state
of the index, and `U` is another commit that records untracked files
(when using `git stash -u`).

Given this, I modified the existing commit view struct to allow loading
stash and commits entries with git sha identifier so that we can get a
similar git diff view for both of them.

The stash diff is generated by comparing the stash commit with its
parent (`<commit>^` or `H` in the diagram) which generates the same diff
as doing `git stash show -p <stash entry>`. This *can* be
counter-intuitive since a user may expect the comparison to be made
between the stash commit and the current commit (`HEAD`), but given that
the default behavior in git cli is to compare with the stash parent, I
went for that approach.

Hoping to get some feedback from a Zed team member to see if they agree
with this approach.

Release Notes:

- Add git diff view for stash entries
- Add toolbar on git diff view for stash entries
- Prompt before executing a destructive stash action on diff view
- Fix commit view for merge commits  (see #38289)
2025-10-20 11:47:15 -04:00
..
badge Adjust Zed badge (#35294) 2025-07-29 15:09:31 -04:00
fonts Use IBM Plex Sans / Lilex (#36084) 2025-08-13 13:25:52 -06:00
icons settings_ui: Only allow to reset a setting to default in the file in which it was customized (#40182) 2025-10-14 14:14:16 +00:00
images Add onboarding banner for claude code support (#37443) 2025-09-03 10:59:14 +00:00
keymaps git: Add diff view for stash entries (#38280) 2025-10-20 11:47:15 -04:00
prompts prompts: Improve inline assist prompt to reduce garbage from smaller models (#38278) 2025-10-01 09:07:57 +00:00
settings Add Vue language server v3 support (#40651) 2025-10-20 13:32:31 +05:30
sounds call: Play a different sound when a guest joins (#38987) 2025-09-27 09:20:55 -04:00
themes Remove bold inlay hints style from all other theme variants (#39177) 2025-09-30 08:27:24 +00:00