4b6fcef
zed 0.177.2
Joseph T. Lyons created
4b6fcef
zed 0.177.2
Joseph T. Lyons created
dc37471
Fix diff_hunk_before in a multibuffer (cherry-pick #26059) (#26102)
Cherry-picked Fix diff_hunk_before in a multibuffer (#26059) Also simplify it to avoid doing a bunch of unnecessary work. Co-Authored-By: Cole <cole@zed.dev> Closes #ISSUE Release Notes: - git: Fix jumping to the previous diff hunk --------- Co-authored-by: Cole <cole@zed.dev> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Cole <cole@zed.dev>
gcp-cherry-pick-bot[bot] , Conrad Irwin , and Cole created
c084706
git: Improvements to fetch/push/pull (cherry-pick #26041) (#26051)
Cherry-picked git: Improvements to fetch/push/pull (#26041) - Add global handlers so these actions can be invoked from the command palette, etc. - Tweak spinner to not show itself until a remote has been selected Release Notes: - N/A Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created
578c9f8
Synchronize modal commit editor with panel editor (cherry-pick #26068) (#26093)
Cherry-picked Synchronize modal commit editor with panel editor (#26068) Release Notes: - Git Beta: Synchronized selections between the modal editor and the panel editor - Git Beta: Allow opening the commit modal even if we're unable to commit. Co-authored-by: Mikayla Maki <mikayla@zed.dev>
gcp-cherry-pick-bot[bot] and Mikayla Maki created
f06cee4
Fix focus handle leak (cherry-pick #26090) (#26094)
Cherry-picked Fix focus handle leak (#26090) This fixes a major performance issue in the current git beta. This PR also removes the PopoverButton component, which was easy to misuse. Release Notes: - Git Beta: Fix frame drops caused by opening the git panel --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
gcp-cherry-pick-bot[bot] , Conrad Irwin , and Mikayla Maki created
1f936ec
Fix lag when large diff hunk intersects the viewport (#26088)
We were iterating over the row range of a hunk, and inserting into a hash map for every row. Release Notes: - Fixed a performance problem when a large diff hunk was displayed in an editor.
Max Brunsfeld created
1516ee3
zed 0.177.1
Joseph T. Lyons created
53af68a
git: Fix project diff shortcuts (cherry-pick #26045) (#26049)
Cherry-picked git: Fix project diff shortcuts (#26045) Release Notes: - git: Fix keyboard shortcut display in project diff view - vim: add git keyboard shortcuts: `d u/d U` for staging/unstaging in the project diff view. `d o/d O` to show hide/toggle staged in the editor and `d p` for restoring the hunk. Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
e897f19
Git Beta: Fix a few cases of empty toasts showing up (cherry-pick #25985) (#25987)
Cherry-picked Git Beta: Fix a few cases of empty toasts showing up (#25985) Improve parsing of git remote outputs Release Notes: - N/A Co-authored-by: Mikayla Maki <mikayla@zed.dev>
gcp-cherry-pick-bot[bot] and Mikayla Maki created
aba10b7
Git fix repo selection (cherry-pick #25996) (#25998)
Cherry-picked Git fix repo selection (#25996) Release Notes: - git: Fixed a bug where staging/unstaging of hunks could use the wrong git repository if you had many open Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
46190bd
git: Fix race condition loading project diff (cherry-pick #25992) (#25999)
Cherry-picked git: Fix race condition loading project diff (#25992) Release Notes: - git: Fixed a race condition where some files would be missing from project diff Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
0b360fe
git: Add `hunk_style` setting (#26038)
This PR adds the `git.hunk_style` setting, allowing setting an alternate style for hunks – specifically the rendering of unstaged hunks. It has 2 options: - `transparent` (unstaged hunks are more transparent/less opaque than staged hunks) - `pattern (unstaged hunks are indicated by a visual pattern) We'll possibly explore a VSCode-style "don't show staged hunks", but the complexity it adds is a bit out of scope for now. Transparent:  Pattern:  Release Notes: - Git Beta: Added `git.hunk_style` setting to allow toggling between git hunk visual styles.
Nate Butler created
11d75c4
Disable diff hunks for untracked files, even w/ no newline at eof (cherry-pick #25980) (#26004)
Cherry-picked Disable diff hunks for untracked files, even w/ no newline at eof (#25980) This fixes an issue where diff hunks were shown for untracked files, but only if the files did not end with a newline. Release Notes: - N/A Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
gcp-cherry-pick-bot[bot] and Max Brunsfeld created
b3de2bf
Reuse existing logic used to generate commit messages to disable commit buttons (#26034)
Also - Recomputes `suggested_commit_message` and no longer stores it, to ensure things are always up to date - Reduces indentation in `render_footer` Release Notes: - N/A
Joseph T. Lyons created
b2f174a
Revert "git: Use worktree paths in the panel (#25950)" (#25995)
This reverts commit e7b3b8bf03f5f8693f8c330b98b656b16ab8f931. Release Notes: - N/A
Cole Miller created
a3b7c1d
Fix a panic on Linux theme appearance change (cherry-pick #26019) (#26028)
Cherry-picked Fix a panic on Linux theme appearance change (#26019) Closes https://github.com/zed-industries/zed/issues/26009 https://github.com/zed-industries/zed/blob/21484a2e9d07b6285f112ba49ca413cdb8e360e4/crates/gpui/src/platform/linux/platform.rs#L517-L519 `with_common` panicked at `borrow_mut` which is the way it's implemented for X11, Wayland and Headless Linux counterparts. https://github.com/zed-industries/zed/blob/21484a2e9d07b6285f112ba49ca413cdb8e360e4/crates/gpui/src/platform/linux/wayland/client.rs#L722-L724 By accessing the appearance global instead of a `RefCell` with it, the panic goes away with one notable side-effect, on Linux only: the first global's value on `Dark` appearance would be `Light`: it becomes normal instantly, thanks to https://github.com/zed-industries/zed/blob/21484a2e9d07b6285f112ba49ca413cdb8e360e4/crates/workspace/src/workspace.rs#L1083-L1090 Things work without flickering: [linux_theme_toggle.webm](https://github.com/user-attachments/assets/0e39ddc0-b4ff-4475-93ff-7b2bd7233628) Release Notes: - Fixed a panic on Linux theme appearance change Co-authored-by: Kirill Bulatov <kirill@zed.dev>
gcp-cherry-pick-bot[bot] and Kirill Bulatov created
f4b83d1
Make suggested commits placeholders and allow them to be committed (#26006)
This does not fix the bug where, when the commit editor modal is open, changing the staged file does not update the suggested message in the commit editor. Conrad mentioned he thought we shouldn't be allowed to change those when the modal is open, so I'm not attempting to fix that. Release Notes: - Made suggested commits placeholders and allow them to be committed.
Joseph T. Lyons created
5de7f1b
Skip .git/lfs FS events (cherry-pick #25927) (#26005)
Cherry-picked Skip .git/lfs FS events (#25927) Closes https://github.com/zed-industries/zed/issues/25865 Closes https://github.com/zed-industries/zed/pull/25915 In the issue, Zed had caused `.git/lfs/tmp/466102258`-like files to appear in the directory, which lead to background FS event listener to handle this as an update, incrementing snapshot's `scan_id`, which lead to git status rescan, which caused another increment to `status_scan_id` — incrementing either of the IDs causes the related repo data to be considered "changed: https://github.com/zed-industries/zed/blob/41b45eaba798a56e596857fa497c862050788bc7/crates/worktree/src/worktree.rs#L1590-L1605 hence propagating events to the other parts of the system (e.g. git blame, which was also active in the issue's case) ``` [2025-03-01T20:01:08+01:00 DEBUG worktree] ignoring event ".git/lfs/tmp/466102258" within unloaded directory [2025-03-01T20:01:08+01:00 DEBUG worktree] received fs events [] [2025-03-01T20:01:08+01:00 DEBUG worktree] reloading repositories: ["/Users/alex/dev/monorepo/.git"] [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... ``` Due to repo update events sent, another `.git/lfs/tmp/` entry is created, things start over... The PR fixes this by ignoring any `.git/lfs/` directory-related FS events, as needed for the current git status update heuristics. https://github.com/zed-industries/zed/pull/25915 tried to follow further and `scan_id` and `status_scan_id` but we do not store all git state in memory, e.g. head https://github.com/zed-industries/zed/blob/e0060b92cc862c4d926652e1a01f0991ccb3a805/crates/editor/src/editor_tests.rs#L13686 as [tests](https://github.com/zed-industries/zed/actions/runs/13631960559/job/38101504549?pr=25915) show. Release Notes: - Improved `.git` scan heuristics Co-authored-by: Kirill Bulatov <kirill@zed.dev>
gcp-cherry-pick-bot[bot] and Kirill Bulatov created
375885e
Disable Git panel button to open commit editor in certain cases (cherry-pick #26000) (#26001)
Cherry-picked Disable Git panel button to open commit editor in certain cases (#26000) Also: - Internally renames a bit of code to make it easy to identify between when we are disabling the buttons that open and close the modal editor (in Git Panel and Project Diff) vs when we are disabling the commit buttons (in Git Panel and Git commit editor modal). - Deletes some unused code. Release Notes: - Unified disabling / enabling the button to open the Git commit editor modal in the Git panel with the Project Diff commit button. - Unified disabling / enabling the commit buttons, for the same cases, between the Git panel and Git commit editor modal. Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
gcp-cherry-pick-bot[bot] and Joseph T. Lyons created
7ab9ec9
git: New enter behaviour (cherry-pick #25986) (#25993)
Cherry-picked git: New enter behaviour (#25986) Closes #25951 Release Notes: - git: Update "enter" in the list of changed files to preserve focus. If you want the old behaviour, hit enter twice. - git: Follow the cursor, not the scroll anchor, in the list. Although the scroll anchor was nice for passive scrolling, it broke if you had changed the overflow scroll settings. Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
9442505
Improve consistency with commit button tooltip between Git panel and modal (cherry-pick #25990) (#25991)
Cherry-picked Refactor more code around commit button text (#25990) Missed this when doing https://github.com/zed-industries/zed/pull/25988 Release Notes: - N/A Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
gcp-cherry-pick-bot[bot] and Joseph T. Lyons created
7bd4a85
Use same commit button text in panel and modal (cherry-pick #25988) (#25989)
Cherry-picked Use same commit button text in panel and modal (#25988) Release Notes: - Fixed inconsistencies in commit button text between Git panel and modal. Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
gcp-cherry-pick-bot[bot] and Joseph T. Lyons created
7d1b50e
vim: Fix key navigation on folded buffer headers (cherry-pick #25944) (#25972)
Cherry-picked vim: Fix key navigation on folded buffer headers (#25944) Closes #24243 Release Notes: - vim: Fix j/k on folded multibuffer headers --------- Co-authored-by: João Marcos <marcospb19@hotmail.com> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: João Marcos <marcospb19@hotmail.com>
gcp-cherry-pick-bot[bot] , Conrad Irwin , and João Marcos created
96ce87d
Fix toggle fold in deleted hunk (cherry-pick #25967) (#25982)
Cherry-picked Fix toggle fold in deleted hunk (#25967) Updates #25835 Updates #25951 Closes #ISSUE Release Notes: - Fixed toggling folds from within deleted hunks Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
1c6bf1f
Show git panel footer even when on a detached HEAD (#25968)
Previously, the git panel footer would accidentally hide when not on a branch. Release Notes: - N/A Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>
Max Brunsfeld and Ben Kunkle created
8d9d14c
git: Use worktree paths in the panel (#25950)
This PR changes the git panel to use worktree-relative paths for its entries, instead of repository-relative paths as before. Paths that lie outside the active repository's worktree are no longer shown in the panel. Note that in both respects this is how the project diff editor already works, so this PR brings those two pieces of UI into harmony. Release Notes: - N/A
Cole Miller created
46944b6
git_ui: horizontal is not vertical (#25961)
Fixes an issue where I was missing some brain cells and changed the git panel's `render_entries` to a `v_flex` instead of an `h_flex`. But actually, fixes the git panel entries from disappearing when a scrollbar is rendered. **Before**  **After**  Closes #25955 Release Notes: - Git Beta: Fixed an issue where when the git panel would need to scroll all the items are pushed off the screen.
Nate Butler created
b1386bf
git_ui: Prevent button overflow due to long names (#25940)
- Fix component preview widths for git panel - Fix buttons getting pushed off the screen in git panel Release Notes: - N/A --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Nate Butler and Mikayla Maki created
02204de
git: Don't consider $HOME as containing git repository unless it's opened directly (cherry-pick #25948) (#25952)
Cherry-picked git: Don't consider $HOME as containing git repository unless it's opened directly (#25948) When a worktree is created, we walk up the ancestors of the root path trying to find a git repository. In particular, if your `$HOME` is a git repository and you open some subdirectory of `$HOME` that's *not* a git repository, we end up scanning `$HOME` and everything under it looking for changed and untracked files, which is often pretty slow. Consistency here is not very useful and leads to a bad experience. This PR adds a special case to not consider `$HOME` as a containing git repository, unless you ask for it by doing the equivalent of `zed ~`. Release Notes: - Changed the behavior of git features to not treat `$HOME` as a git repository unless opened directly Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created
a1e6138
Add some logging to debug missing parent git repositories (cherry-pick #25943) (#25946)
Cherry-picked Add some logging to debug missing parent git repositories (#25943) We've had some issues reported with git repositories not getting detected when they're a strict parent of the worktree root. Add a bit more logging to understand what's going on here. Release Notes: - N/A Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created
5852f2e
Fix missing hunks in project diff after revert (cherry-pick #25906) (#25947)
Cherry-picked Fix missing hunks in project diff after revert (#25906) Release Notes: - N/A Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created
3130b46
v0.177.x preview
Joseph T. Lyons created
669082d
assistant2: Fix keyboard navigation issues when a picker is open (#25928)
This fixes: - Bug: Using "up" in model selector triggers assistant2::FocusUp not menu::SelectPrev - Bug: Pressing arrow up/down in the model selector opened in the inline assistant doesn't work - Bug: Dismissing the model selector with Esc is not working - Bug: Dismissing context pickers with Esc no longer working Release Notes: - N/A
Bennet Bo Fenner created
d5bc7b9
extension_cli: Make use of `scrollbar_thumb.background` a hard error (#25932)
This PR updates the extension CLI to make the use of `scrollbar_thumb.background` in a theme a hard error. We're working to eradicate usage of this theme property, so this will prevent new extensions from being published that use it. Release Notes: - N/A
Marshall Bowers created
8bb2739
keymap: Update `Prev` to `Previous` follow-up (#25931)
Follow-up for https://github.com/zed-industries/zed/pull/25909 Add three more action replacements: ``` 1. "pane::ActivatePrevItem" -> "pane::ActivatePreviousItem" 2. "vim::MoveToPrev" -> "vim::MoveToPrevious" 3. "vim:MoveToPrevMatch" -> "vim:MoveToPreviousMatch" ``` Release Notes: - N/A
smit created
466be14
Revert "Use multi-line regex for '\s'" (#25926)
Reverts zed-industries/zed#19241 Closes: https://github.com/zed-industries/zed/issues/25901 Although `\s` contains `\n` it is widely used in non-multiline regexes (unlike `\n`).
Peter Tripp created
9544619
Skip .git/lfs FS events (#25927)
Closes https://github.com/zed-industries/zed/issues/25865 Closes https://github.com/zed-industries/zed/pull/25915 In the issue, Zed had caused `.git/lfs/tmp/466102258`-like files to appear in the directory, which lead to background FS event listener to handle this as an update, incrementing snapshot's `scan_id`, which lead to git status rescan, which caused another increment to `status_scan_id` — incrementing either of the IDs causes the related repo data to be considered "changed: https://github.com/zed-industries/zed/blob/41b45eaba798a56e596857fa497c862050788bc7/crates/worktree/src/worktree.rs#L1590-L1605 hence propagating events to the other parts of the system (e.g. git blame, which was also active in the issue's case) ``` [2025-03-01T20:01:08+01:00 DEBUG worktree] ignoring event ".git/lfs/tmp/466102258" within unloaded directory [2025-03-01T20:01:08+01:00 DEBUG worktree] received fs events [] [2025-03-01T20:01:08+01:00 DEBUG worktree] reloading repositories: ["/Users/alex/dev/monorepo/.git"] [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... ``` Due to repo update events sent, another `.git/lfs/tmp/` entry is created, things start over... The PR fixes this by ignoring any `.git/lfs/` directory-related FS events, as needed for the current git status update heuristics. https://github.com/zed-industries/zed/pull/25915 tried to follow further and `scan_id` and `status_scan_id` but we do not store all git state in memory, e.g. head https://github.com/zed-industries/zed/blob/e0060b92cc862c4d926652e1a01f0991ccb3a805/crates/editor/src/editor_tests.rs#L13686 as [tests](https://github.com/zed-industries/zed/actions/runs/13631960559/job/38101504549?pr=25915) show. Release Notes: - Improved `.git` scan heuristics
Kirill Bulatov created
b34c0fd
git_ui: Fix item heights in git panel (#25833)
- Fixes items slightly overlapping in the git panel - Fixes commit button in the project diff not opening modal Release Notes: - N/A --------- Co-authored-by: Nate Butler <iamnbutler@gmail.com> Co-authored-by: Cole Miller <m@cole-miller.net>
Max Brunsfeld , Nate Butler , and Cole Miller created
e0060b9
assistant: Adjust slash command picker (#25920)
Mostly just fine-tuning its positioning. Other changes are mainly using the Label's `buffer_font` method instead of using a div for that. Release Notes: - N/A
Danilo Leal created
06bcc42
Revert "assistant_context_editor: Close menus on send (#25440)" (#25916)
Reverting https://github.com/zed-industries/zed/pull/25440 This is a good change, but given the PR was open for a while, I guess it didn't catch conflicts with main, and so it broke it. Will revert it for now, to keep main fresh, but will look into adding this behavior back again. Release Notes: - N/A
Danilo Leal created
f24c226
assistant_context_editor: Close menus on send (#25440)
Closes #ISSUE Before: https://github.com/user-attachments/assets/e63b6207-0c80-4fd6-99c0-febe3d639ba1 After: https://github.com/user-attachments/assets/870f2c6d-9b7f-456d-a1e3-26e1c31b129d Release Notes: - N/A
brian tan created
593f3dc
keymap: Update `Prev` to `Previous` for consistency (#25909)
Closes #10167
This is take 2 on https://github.com/zed-industries/zed/pull/2341 which
was closed due to lack of migrator.
This PR contains rename of following keymap actions:
```sh
1. ["editor::GoToPrevHunk", { "center_cursor": true }] -> ["editor::GoToPreviousHunk", { "center_cursor": true }]
2. "editor::GoToPrevDiagnostic" -> "editor::GoToPreviousDiagnostic"
3. "editor::ContextMenuPrev" -> "editor::ContextMenuPrevious"
4. "search::SelectPrevMatch" -> "search::SelectPreviousMatch"
5. "file_finder::SelectPrev" -> "file_finder::SelectPrevious"
6. "menu::SelectPrev" -> "menu::SelectPrevious"
7. "editor::TabPrev" -> "editor::Backtab"
```
Release Notes:
- Renamed several keymap actions for consistency (e.g., `GoToPrevHunk` →
`GoToPreviousHunk`, `TabPrev` → `Backtab`). Your existing configured
keybindings will still work. You can click **"Backup and Update"** at
the top of your keymap file to easily update to the new actions.
Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
smit and Joseph T. Lyons created
61d584d
context menu: Adjust item disabled state when there is docs aside (#25860)
When a context menu item has a documentation aside element attached to it, we're now hiding the keybinding (which wouldn't trigger anything anyway) to make room for displaying an info icon, with the purpose of indicating the existence of the docs aside, which will typically explain the reason why the item’s disabled in the first place. Also, changed the label color to use the `Disabled` token; more appropriate for this, and just slightly darker, which is great! <img src="https://github.com/user-attachments/assets/a7f9f022-16d1-41d5-b1b5-3cbcc9630cc8" width="500px"/> Release Notes: - N/A
Danilo Leal created
c37f616
gpui: Maintain `img` aspect ratio when `max_width` is set (#25632)
Release Notes: - Fixed Markdown preview to display image with max width 100%. ## Before <img width="1202" alt="image" src="https://github.com/user-attachments/assets/359628df-8746-456f-a768-b3428923c937" /> <img width="750" alt="SCR-20250226-napv" src="https://github.com/user-attachments/assets/f6154516-470e-41b2-84f5-ef0612c447ad" /> ## After <img width="1149" alt="image" src="https://github.com/user-attachments/assets/2279347d-9c69-4a47-bb62-ccc8e55a98f6" /> <img width="520" alt="SCR-20250226-ngyz" src="https://github.com/user-attachments/assets/03af5f14-1935-472e-822f-4c7f62630780" />
Jason Lee created
73ac199
Add user-visible output for remote operations (#25849)
This PR adds toasts for reporting success and errors from remote git operations. This PR also adds a focus handle to notifications, in anticipation of making them keyboard accessible. Release Notes: - N/A --------- Co-authored-by: julia <julia@zed.dev>
Mikayla Maki and julia created
508b9d3
Add an informative tooltip to commit button when unable to commit (#25912)
Release Notes: - N/A
Mikayla Maki created
0a4ff2f
tab: Add setting to hide the close button entirely (#23880)
Closes #23744 Release Notes: - Changed the `always_show_close_button` key to `show_close_button` and introduced a new `hidden` value, that allows never displaying the close button. --------- Co-authored-by: Peter Tripp <peter@zed.dev> Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: smit <0xtimsb@gmail.com>
Morgan Metz , Peter Tripp , Danilo Leal , and smit created
ae6d350
Use system-installed git binary for push/pull/fetch (#25900)
### Problem When using HTTPS remotes, users are getting errors when trying to push or pull via the git panel. On macOS, Zed bundles a `git` binary that's part of [`dugite-native`](https://github.com/desktop/dugite-native). But we don't include the entire package. Additional binaries from `dugite-native` are needed for pulling and pushing over HTTPS. ### Solution Rather than bundling those additional binaries, I've changed the `push`, `pull`, and `fetch` actions to rely on the *system-installed* `git` binary. The downside of this is that, if the user does not have Git installed, they wont' be able to push, pull, or fetch from within Zed. But we believe that the vast majority of users will have Git installed. Also, unlike `diff` and `status`, which Zed needs to call in the background without any user interaction, `push`/`pull` and `fetch` are explicit actions that the user takes in Zed, so there is an opportunity to prompt them to install Git if they haven't. ### Background There are three ways (that I know of) that users might authenticate when pushing, pulling, or fetching over HTTPS. 1. Via a built-in [Git `credential.helper`](https://git-scm.com/docs/gitcredentials). On macOS, Git ships with a helper called `credential-osxkeychain` that stores internet passwords in the OS Keychain. You can opt into this globally with the command `git config --global credential.helper osxkeychain`, which writes to your `~/.gitconfig`. 2. Via [`Git Credential Manager` (GCM)](https://github.com/git-ecosystem/git-credential-manager), which is a different `credential.helper`, [built by GitHub](https://github.blog/security/application-security/git-credential-manager-authentication-for-everyone/), which must be installed manually, and integrates with specific Git hosting providers like GitHub and Azure. 3. By typing their Username and Password/Access-token interactively when pushing/pulling/fetching. ### Testing Status * [ ] 🚫 Interactive password auth - not yet supported, requires https://github.com/zed-industries/zed/pull/25848 * [x] **credential-osxkeychain** - when using the built-in credential helper, and the credentials are already stored in the keychain, push/pull/fetch now work fine . * [ ] **GCM** - still testing. * Right now, I'm seeing `git-credential-manager` just hang indefinitely when pushing from Zed, even though it works when pushing from a terminal. Release Notes: - N/A
Max Brunsfeld created
0e44f93
lsp: Do not add trailing slash to workspace folders (#25903)
Closes #25390 Release Notes: - Fixed issues with ansible-language-server sending phantom diagnostic updates
Piotr Osiewicz created
65d92d7
Make more log files read only (#25887)
Closes https://github.com/zed-industries/zed/issues/5105 Makes the following logs read only - Zed error / warning log - Zed telemetry log Release Notes: - N/A
Joseph T. Lyons created