Commit log

2182449 zed 0.177.11

Joseph T. Lyons created

33d0340 worktree: Fix tracking of git status scans and re-enable tests (#26926)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Cole Miller created

157b78d Disable flaky file status test again (#26925)

Click to expand commit body
Failure on an unrelated commit:
https://github.com/zed-industries/zed/actions/runs/13903012863/job/38899239052

Release Notes:

- N/A

Cole Miller created

88f5cdb Reinstate failing worktree tests (#26733)

Click to expand commit body
Just debugging for now

Release Notes:

- N/A

Cole Miller created

e8dab9c Fold git merge messages into commit editor placeholder text (#26992)

Click to expand commit body
This PR changes the git commit message editors to surface git's
suggested merge message, if any, as placeholder text, as opposed to
"real" buffer text as was previously the case.

Release Notes:

- Changed git commit message editors to use placeholder text for git's
suggested merge messages

Cole Miller created

af6da2d Add missing commit event reporting (#26990)

Click to expand commit body
cc @morgankrey 

Release Notes:

- N/A

Cole Miller created

8185c47 git: Always zero panel's entry counts when clearing entries (#26924)

Click to expand commit body
Keep the panel's state consistent even when we transition to having no
active repository.

Release Notes:

- N/A

Cole Miller created

a829e03 Send stable release notes email (#26964)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

f64820a zed 0.177.10

Joseph T. Lyons created

32b9ca1 Fix the feedback modal (cherry-pick #26793) (#26807)

Click to expand commit body
Cherry-picked Fix the feedback modal (#26793)

Closes #26787

Release Notes:

- Fixed a bug that prevented typing in the in-app feedback form

Co-authored-by: Cole Miller <cole@zed.dev>

gcp-cherry-pick-bot[bot] and Cole Miller created

4da6dfa zed 0.177.9

Joseph T. Lyons created

d6e24d3 Allow parsing commits when we can't resolve the permalink (cherry-pick #26709) (#26735)

Click to expand commit body
Cherry-picked Allow parsing commits when we can't resolve the permalink
(#26709)

Closes #26577

Release Notes:

- git: Fix showing commit messages for all repos

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

gcp-cherry-pick-bot[bot] and Conrad Irwin created

3f9c2bf worktree: Disable flaky `test_file_status` test (#26729)

Click to expand commit body
See also:
- https://github.com/zed-industries/zed/pull/26684
- https://github.com/zed-industries/zed/pull/26710

Release Notes:

- N/A

Cole Miller created

140856c Fixes to excerpt movement actions and bindings + add `multibuffer` and `singleton_buffer` key contexts (cherry-pick #26264) (#26730)

Click to expand commit body
Cherry-picked Fixes to excerpt movement actions and bindings + add
`multibuffer` and `singleton_buffer` key contexts (#26264)

Closes #26002 

Release Notes:

- Added `multibuffer` key context.
- `cmd-down` and `cmd-shift-down` on Mac now moves to the end of the
last line of a singleton buffer instead of the beginning. In
multibuffers, these now move to the start of the next excerpt.
- Fixed `vim::PreviousSectionEnd` (bound to `[ ]`) to move to the
beginning of the line, matching the behavior of `vim::NextSectionEnd`.
- Added `editor::MoveToStartOfNextExcerpt` and
`editor::MoveToEndOfPreviousExcerpt`.

Co-authored-by: Michael Sloan <michael@zed.dev>

gcp-cherry-pick-bot[bot] and Michael Sloan created

7039018 Fix flicker when reverting last hunk from the project diff view (cherry-pick #26706) (#26711)

Click to expand commit body
Cherry-picked Fix flicker when reverting last hunk from the project diff
view (#26706)

Closes #26696

Closes #ISSUE

Release Notes:

- git: Fix flicker when reverting last hunk in project diff view

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

gcp-cherry-pick-bot[bot] and Conrad Irwin created

7634056 Don't render "Initialize Repository" button when no worktrees (cherry-pick #26713) (#26727)

Click to expand commit body
Cherry-picked Don't render "Initialize Repository" button when no
worktrees (#26713)

Closes #26676  

Release Notes:

- Fixed the git panel to not show an "Initialize Repositories" button in
empty projects

Co-authored-by: Cole Miller <cole@zed.dev>

gcp-cherry-pick-bot[bot] and Cole Miller created

e3487e7 Use system git for committing (cherry-pick #26705) (#26725)

Click to expand commit body
Cherry-picked Use system git for committing (#26705)

Closes #26472

Release Notes:

- On macOS, switched to using the system's git binary to create commits.
This fixes issues that some users were seeing with pre-commit hooks.
Compatibility note: after this change, it is no longer possible to
commit from Zed unless git is installed.

Co-authored-by: Cole Miller <cole@zed.dev>

gcp-cherry-pick-bot[bot] and Cole Miller created

9df953d git: Fix race condition when [un]staging hunks in quick succession (cherry-pick #26422) (#26718)

Click to expand commit body
Cherry-picked git: Fix race condition when [un]staging hunks in quick
succession (#26422)

- [x] Fix `[un]stage` hunk operations cancelling pending ones
  - [x] Add test
- [ ] bugs I stumbled upon (try to repro again before merging)
  - [x] holding `git::StageAndNext` skips hunks randomly 
    - [x] Add test
  - [x] restoring a file keeps it in the git panel
- [x] Double clicking on `toggle staged` fast makes Zed disagree with
`git` CLI
- [x] checkbox shows :heavy_check_mark: (fully staged) after a single
stage

Release Notes:

- N/A

---------

Co-authored-by: João Marcos <marcospb19@hotmail.com>
Co-authored-by: Cole <cole@zed.dev>
Co-authored-by: Max <max@zed.dev>

gcp-cherry-pick-bot[bot] , João Marcos , Cole , and Max created

2bd2ad8 worktree: Disable flaky tests (test_write_file, test_git_status_postprocessing) (#26710)

Click to expand commit body
Comment out flaky tests:
- `worktree_tests::test_write_file`
- `worktree_tests::test_git_status_postprocessing`

Job links:
- windows fail:
https://github.com/zed-industries/zed/actions/runs/13841766606/job/38730766252
- macos fail:
https://github.com/zed-industries/zed/actions/runs/13841766606/job/38730764118

That
[commit](https://github.com/zed-industries/zed/commit/85384fb9c67614795a82f5b0a09895875beb16d0)
was a non-op script change, but in the [prior
commit](https://github.com/zed-industries/zed/commit/00359271d11b6ba865fe81f04f675bf588a17335)
[windows/macos
pass](https://github.com/zed-industries/zed/actions/runs/13841135221).

Similar experience with `worktree_tests::test_write_file` on both macOS
windows too.

- See also: https://github.com/zed-industries/zed/pull/26684

Release Notes:

- N/A

Peter Tripp created

fe79166 ci: Fix 'Run Tests' not always running (#26685)

Click to expand commit body
Follow up to:
- https://github.com/zed-industries/zed/pull/26551

We need the "Tests Pass" step to run `if: always()`. 
Turns out when it's 'skipped', it counts as 'passing' with respect to
required status checks.


Release Notes:

- N/A

Peter Tripp created

99d1bcb ci: Use smaller windows runners (#26674)

Click to expand commit body
Let's see if the speed of `windows-2025-32` for `windows_tests` is
fast-enough for PRs and everywhere else use `windows-2025-16`. Leaving
`windows_clippy` unchanged with `windows-2025-16`.

Release Notes:

- N/A

Peter Tripp created

da7da16 Fix being unable to put a cursor after trailing deletion hunks (cherry-pick #26621) (#26694)

Click to expand commit body
Cherry-picked Fix being unable to put a cursor after trailing deletion
hunks (#26621)

Closes #26541

Release Notes:

- Fixed a bug that prevented putting the cursor after a deletion hunk at
the end of a file, in the absence of trailing newlines

---------

Co-authored-by: Max <max@zed.dev>

Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Max <max@zed.dev>

gcp-cherry-pick-bot[bot] , Cole Miller , and Max created

17aa999 worktree: Disable flaky `test_git_repository_status` test (#26684)

Click to expand commit body
This PR disables the flaky `test_git_repository_status` test.

Release Notes:

- N/A

Marshall Bowers created

e37aa89 zed 0.177.8

Joseph T. Lyons created

81e0367 theme: Fix incorrect version control keys in One themes (cherry-pick #26606) (#26623)

Click to expand commit body
Cherry-picked theme: Fix incorrect version control keys in One themes
(#26606)

While the `.{variants}` of the theme keys _were_ incorrect, they are
actually more consistent with our current theme keys (thanks AI!) So we
will keep theme, and fix the incorrect usages in the one themes and
elsewhere.

Old description:
> 
> This PR fixes an issue where we specified the incorrect theme keys
(thanks AI!) > in the theme schema. The following keys have been changed
to their correct > versions:
> 
> | Before                        | After                   |
> |-------------------------------|-------------------------|
> | version_control.added         | version_control_added   |
> | version_control.deleted       | version_control_deleted |
> | version_control.modified      | version_control_modified|
> | version_control.renamed       | version_control_renamed |
> | version_control.conflict      | version_control_conflict|
> | version_control.ignored       | version_control_ignored |
> 
> Please use the after versions in your themes, as they are correct! 
> 
> We won't be adding secondary keys to fix this automatically as git
only > officially launched today.
> 
> Due to this change, we've also updated the version control keys in the
One > themes to keep the default diff hunks looks from changing.

Closes #26572

Release Notes:

- theme: Fixed an issue where version control colors weren't applying
correctly.

Co-authored-by: Nate Butler <iamnbutler@gmail.com>

gcp-cherry-pick-bot[bot] and Nate Butler created

8979aa8 gruvbox: `version_control_` -> `version_control.` (#26665)

Click to expand commit body
Missed this in PR #26606 

Before:

![CleanShot 2025-03-13 at 08 58
59@2x](https://github.com/user-attachments/assets/021df4b1-5a70-4fae-a109-9b8bb35949e3)

After:

![CleanShot 2025-03-13 at 08 59
22@2x](https://github.com/user-attachments/assets/01dca26d-77ec-4a54-8b7c-aa2fb160ff7d)

Release Notes:

- theme: Fixed an issue where version control colors weren't applying
correctly. (again)

Nate Butler created

3f5bee3 Rename the editor::ToggleGitBlame action to git::Blame (#26565)

Click to expand commit body
Release Notes:

- Git Beta: Renamed `editor::ToggleGitBlame` to `git::Blame`

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Mikayla Maki , Conrad Irwin , Cole Miller , Nathan Sobo , and Max Brunsfeld created

ab6b368 Fix overflow in create branch label (#26591)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Conrad Irwin created

6d6998f git: Hard wrap in editor (#26507)

Click to expand commit body
This adds the ability for the editor to implement hard wrap (similar to
"textwidth" in vim).

If you are typing and your line extends beyond the limit, a newline is
inserted before the most recent space on the line. If you are otherwise
editing the line, pasting, etc. then you will need to manually rewrap.

Release Notes:

- git: Commit messages are now wrapped "as you type" to 72 characters.

Conrad Irwin created

f0bc0bf Fix soft_wrap setting not applying to buffers starting with a different language (#25880)

Click to expand commit body
Closes #22999 
# Problem

Currently, the default soft wrap mode of an editor is determined by
reading the language-specific settings of the language _at offset zero_
in the editor's (multi)buffer. While this provides a way to pick a
single soft wrap mode for a multi-language multibuffer, it's a bad
choice for a single-buffer multibuffer that begins with a different
embedded language. For example, Markdown with frontmatter:

```markdown
---
my_front_matter
---

# Hello World
```

Setting this in config:

```json
  "languages": {
    "Markdown": { "soft_wrap": "bounded" }
  },
```

Will not soft wrap the Markdown file as the language at offset zero is
YAML.

# Solution

Instead of using the language at offset zero, use the language of the
first buffer in the multibuffer (the buffer at offset zero). This gives
better behavior for single-buffer editors, and a similar default for
multi-language multibuffers as before.

# Testing

All existing `editor` crate tests pass, but I would appreciate any
guidance for where best to add additional testing.

Release Notes:

- Fixed soft_wrap setting not applying to buffers starting with a
different language

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

Alex Ozer and Kirill Bulatov created

3a681ec Fix auto-indent when pasting multi-line content that was copied start… (#26246)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/24914 (again)

Release Notes:

- Fixed an issue where multi-line pasted content was auto-indented
incorrectly if copied from the middle of an existing line.

Max Brunsfeld created

d0bd74b ci: Fix tests not-running on main (#26613)

Click to expand commit body
Follow-up to #26551 

Fix for tests being skipped on main.
Also fetch less history: [example
run](https://github.com/zed-industries/zed/actions/runs/13822318758/job/38670334893)

Release Notes:

- N/A

Peter Tripp created

645d8ac Fix a bug where the modal layer could not be dismissed by the mouse

Mikayla Maki created

7f1ec5c ci: GitHub actions refactor (#26551)

Click to expand commit body
Refactor GitHub actions CI workflow.
- Single combined 'tests_pass' action so we only need one mandatory
check for merge queue
- Add new `job_spec` job which determines what needs to be run (+5secs)
  - Do not run full CI for docs only changes (~30secs vs 10+mins)
- Only run `script/generate-licenses` if Cargo.lock changed (saves
~23secs on mac_test)
- Move prettier /docs check to ci.yml and remove docs.yml
- Run Windows tests on every PR commit
- Added new Windows runners named to reflect their OS/capacity
(windows-2025-64, windows-2025-32, windows-2025-16)

Release Notes:

- N/A

Peter Tripp created

38cd1b8 Fix message on push (cherry-pick #26588) (#26594)

Click to expand commit body
Cherry-picked Fix message on push (#26588)

Instead of saying "Successfully pushed new branch" we say "Pushed x to y"

Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

gcp-cherry-pick-bot[bot] and Conrad Irwin created

438d4c7 Fix unstage/stage in project diff not working when git panel isn't open (cherry-pick #26575) (#26580)

Click to expand commit body
Cherry-picked Fix unstage/stage in project diff not working when git
panel isn't open (#26575)

Closes #ISSUE

Release Notes:

- Fix Bug where unstage/stage all in project diff wouldn't work while
git panel was closed

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Co-authored-by: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

gcp-cherry-pick-bot[bot] , Anthony Eid , and Conrad Irwin created

b56b472 Git on main thread (cherry-pick #26573) (#26585)

Click to expand commit body
Cherry-picked Git on main thread (#26573)

This moves spawning of the git subprocess to the main thread. We're not
yet
sure why, but when we spawn a process using GCD's background queues,
sub-processes like git-credential-manager fail to open windows.

This seems to be fixable either by using the main thread, or by using a
standard background thread,
but for now we use the main thread.


Release Notes:

- Git: Fix git-credential-manager

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>

gcp-cherry-pick-bot[bot] , Conrad Irwin , Max Brunsfeld , and Kirill Bulatov created

ab9b3f1 v0.177.x stable

Joseph T. Lyons created

c206823 Disable uncommit button for parentless commits (#25983)

Click to expand commit body
Closes #25976

There's a couple states that this covers:
- upon `git init`, no footer is shown at all
- after 1 commit (or when on any parentless commit), the uncommit button
is ~disabled~ hidden
- otherwise commit button is shown

Also updated the button with "meta" tooltip showing human readable
description and git command.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>

Julia Ryan and Nate Butler created

ca1ec68 git_ui: Update Project Diff empty state design (#26554)

Click to expand commit body
Title

Release Notes:

- N/A

---------

Co-authored-by: Cole Miller <m@cole-miller.net>

Nate Butler and Cole Miller created

cf2a11c docs: Update the Git page (#26530)

Click to expand commit body
So it reflects the new set of features supported starting from v0.177.

Release Notes:

- N/A

Danilo Leal created

06d9fbe git: Add an onboarding and banner flow (#26518)

Click to expand commit body
TODO:

- [ ] Hide the reset onboarding action (only useful for development,
uncomment:
https://github.com/zed-industries/zed/pull/26518/files#diff-f0ce01d9a3df30f60c64b6f9906c54aa0191246a58dbf5297ee321575a180879R96)
- [x] Get a designer to replace the modal background (@danilo-leal)

Release Notes:

- Added a small onboarding banner for the git launch

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>

Mikayla Maki , Danilo Leal , and Danilo Leal created

f143d1b Check if additional git provider is not the original git provider (#26533)

Click to expand commit body
Release Notes:

- N/A

Yesterday I worked on https://github.com/zed-industries/zed/pull/26482
and noticed afterwards that we have duplicated hosting providers if the
git remote host is "gitlab.com" and after the PR also for "github.com".
This is not a big problem, since the original providers are registered
first and therefore we first find a match with the original providers,
but I think we should address this nevertheless.

We initialize every hosting provider with the defaults here:

https://github.com/zed-industries/zed/blob/b008b2863ee015a9dc6ecdcd6dedbc708983f8b3/crates/git_hosting_providers/src/git_hosting_providers.rs#L15-L24

After that, we also register additional hosting providers:

https://github.com/zed-industries/zed/blob/b008b2863ee015a9dc6ecdcd6dedbc708983f8b3/crates/git_hosting_providers/src/git_hosting_providers.rs#L30-L43

If we do not check if the additional provider is not the original
provider, we will register the same provider twice.

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Nils Koch and Marshall Bowers created

7728a8b git: Fix placeholder dots in untracked files (#26537)

Click to expand commit body
This regressed at some point.

Release Notes:

- N/A

Cole Miller created

d8bc10e Add detection of self hosted GitHub enterprise instances (#26482)

Click to expand commit body
This PR does not close an issue, but it is an issue and and fix in one.
I hope this is ok, but please let me know if you prefer me to open an
issue before.

Release Notes:

- Add "copy permalink" action for self-hosted GitHub enterprise
instances

# Issue
### Related issues:
* https://github.com/zed-industries/zed/issues/26393
* https://github.com/zed-industries/zed/issues/11043

When you try to copy a permalink from a self-hosted GitHub enterprise
instance, you get the following error:

<img width="383" alt="permalink"
src="https://github.com/user-attachments/assets/b32338a7-a2d7-48fc-86bf-ade1d32ed1f7"
/>

You also cannot open a PR or commit when you hover over a git blame:


https://github.com/user-attachments/assets/a5491ce7-270b-412f-b9ac-027ec020b028


### Reproduce
If you do not have access to a self-hosted GitHub instance, you can
change the remote url of any git repo:
```
git remote set-url origin git@github.mycorp.com:nilskch/zed.git
```

With the fix, permalinks still won't bring you to a valid website, but
you can verify that they are correctly created.

# Solution

Currently, we only support detecting self-hosted GitLab instances, but
not self-hosted GitHub instances. We detect GitLab instances by checking
if "gitlab" is part of the git URL.

This PR adds the same logic to detect self-hosted GitHub enterprise
instances (by checking if "github" is in the URL).

This solution is not ideal, since self-hosted GitHub or GitLab instances
might not contain the word "github" or "gitlab". #26393 proposes adding
a setting that would allow users to map specific domains to their
corresponding git provider types. This mapping would help Zed correctly
identify the appropriate git instance, even if "gitlab" or "github" are
not part of the URL.

This PR does not implement the offered solution, but I added a TODO
where the fix for #26393 has to make changes.

Nils Koch created

896276f Don't clobber the user's upstream settings (cherry-pick #26486) (#26528)

Click to expand commit body
Cherry-picked Don't clobber the user's upstream settings (#26486)

It's not clobbering time :(

Release Notes:

- Git Beta: Fixed a bug where our push button would always overwrite the
current branch's upstream

Co-authored-by: Mikayla Maki <mikayla@zed.dev>

gcp-cherry-pick-bot[bot] and Mikayla Maki created

828dd3c Add git init button (#26522)

Click to expand commit body
Because why not

Release Notes:

- N/A

Mikayla Maki created

0bea86d Rework git toasts (#26420)

Click to expand commit body
The notifications from git output could take up variable amounts of
screen space, and they were quite obnoxious when a git command printed
lots of output, such as fetching many new branches or verbose push
hooks.

This change makes the push/pull/fetch buttons trigger a small
notification toast, based on the output of the command that was ran. For
errors or commands with more output the user may want to see, there's an
"Open Log" button which opens a new buffer with the output of that
command.

It also uses this behavior for long error notifications for other git
commands like `commit` and `checkout`. The output of those commands can
be quite long due to arbitrary githooks running.

Release Notes:

- N/A

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

Julia Ryan and Mikayla Maki created

6a3204c Hide generate commit message button when assistant is disabled (cherry-pick #26519) (#26521)

Click to expand commit body
Cherry-picked Hide generate commit message button when assistant is
disabled (#26519)

Release Notes:

- Git Beta: Fixed the generate commit message button still showing when
the assistant is disabled.

Co-authored-by: Mikayla Maki <mikayla@zed.dev>

gcp-cherry-pick-bot[bot] and Mikayla Maki created

6247405 git: Remove hunk style setting (cherry-pick #26504) (#26517)

Click to expand commit body
Cherry-picked git: Remove hunk style setting (#26504)

Co-authored-by: Cole Miller <cole@zed.dev>

gcp-cherry-pick-bot[bot] and Cole Miller created