Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Source control view panel #4367

Open
1 task done
aarroisi opened this issue Nov 8, 2023 · 68 comments
Open
1 task done

Source control view panel #4367

aarroisi opened this issue Nov 8, 2023 · 68 comments
Labels
enhancement [core label] git Git integration feedback panel Feedback for panels. Panels are the content that fills the docks. priority request A request from a stakeholder or influential user

Comments

@aarroisi
Copy link

aarroisi commented Nov 8, 2023

Check for existing issues

  • Completed

Describe the feature

I would like to request a Source Control View, like the one in VSCode where I can see all the changes and staged changes I made in the project. This is very useful for me to review my work before submitting a PR. Maybe you can add a button to open a tab consisting of this information at the bottom left of the screen, right next to the button to open Project Diagnostic. That would be very helpful.

If applicable, add mockups / screenshots to help present your vision of the feature

Screenshot 2023-11-08 at 10 12 53
@aarroisi aarroisi added admin read Pending admin review enhancement [core label] triage Maintainer needs to classify the issue labels Nov 8, 2023
@Otterpocket
Copy link
Contributor

Hi, I came from Vscode and heavily relied on the above feature. Since using zed I switched to github desktop and honestly, I feel like my workflow/productivity has improved. Sure the inline diff is essential and some kind of inline blame would be nice.
But is version control really the responsibility of the editor? My personal opinion is that I would rather see energy put into things that are clearly the responsibility of the editor.

@JosephTLyons JosephTLyons added git Git integration feedback panel Feedback for panels. Panels are the content that fills the docks. and removed triage Maintainer needs to classify the issue admin read Pending admin review labels Nov 10, 2023
@JosephTLyons
Copy link
Collaborator

Yes! It makes sense we would build out a new panel (a git panel) that lives in one of the docks. We definitely want to support git operations! :)

@JosephTLyons JosephTLyons changed the title Source Control View Source control view panel Nov 10, 2023
@JosephTLyons JosephTLyons transferred this issue from zed-industries/community Jan 24, 2024
@luwes
Copy link

luwes commented Jan 25, 2024

Please have a look at https://github.com/timbrel/GitSavvy for inspiration if this feature gets implemented.
It's the reason I'm still using Sublime Text

@coolemur
Copy link

Hi, I came from Vscode and heavily relied on the above feature. Since using zed I switched to github desktop and honestly, I feel like my workflow/productivity has improved. Sure the inline diff is essential and some kind of inline blame would be nice. But is version control really the responsibility of the editor? My personal opinion is that I would rather see energy put into things that are clearly the responsibility of the editor.

Git changes view / diff / cancel, etc operations are definitely something that would prevent me from using Zed.

VScode for example, has decent way to compare / merge changes. Not everything works well there tho, but it greatly improves productivity.
(I'm using both Git Desktop + Built in code editor git features just because VSCode Git features isn't enough)

I think this could be selling point of Zed, if Git features would work better than in VSCode, then use of Github Desktop wouldn't be necessary.

@vitalics
Copy link

As an extended feature - it would be nice to have a git graph - This is vscode extension but a real game changer and I moved from others git UI's. Simple, intuitive, and powerful.

Graph tree:
image

Context menu:
image

Commit changes:
image

@shinebayar-g
Copy link

shinebayar-g commented Feb 7, 2024

It looks like Zed already has a partial support for Git.

image

In the editor window, I see a yellow vertical bar for changed lines. In VSCode, this bar is clickable and I could undo or see the exact changes. But in Zed it's non functional.

In the file explorer window, untracked git files appear in green, modified files appear in yellow.

This is my №1 request from Zed editor. Currently using VSCode's Source Control view for reviewing changes.

@jasongitmail
Copy link

jasongitmail commented Feb 9, 2024

+ "Stage selected" and "Unstaged selected" commands

@jyavorska
Copy link

Curious what others are using in the meantime to have a nice commit review/diff workflow? This is really the one thing preventing me from using Zed as my primary editor, the ability to review diffs in my change, switch branches, make commits, push, etc. is so useful when editing code that it's hard to live without it. Are you just doing everything in the terminal for now?

@jasongitmail
Copy link

Curious what others are using in the meantime to have a nice commit review/diff workflow?

I'm keeping the project open in Cursor/VSCode too showing the Source Control view. zed + old IDE. 😆

@coolemur
Copy link

Curious what others are using in the meantime to have a nice commit review/diff workflow?

I'm keeping the project open in Cursor/VSCode too showing the Source Control view. zed + old IDE. 😆

Sounds like working on VSCode with extra steps

@Otterpocket
Copy link
Contributor

Curious what others are using in the meantime to have a nice commit review/diff workflow? This is really the one thing preventing me from using Zed as my primary editor, the ability to review diffs in my change, switch branches, make commits, push, etc. is so useful when editing code that it's hard to live without it. Are you just doing everything in the terminal for now?

Github desktop, highly recommend giving it a go

@jasongitmail
Copy link

Showing an AI suggested commit message based on contents of the git stage, would be a nice time saver too.

@benswift
Copy link

I'm not sure how many Emacs -> Zed converts there are out there, but if Zed had something like Magit I'd jettison my 20 years of dotfiles and muscle memory (well, pinky RSI) in a hot second.

@emersonjds
Copy link

@jyavorska yeap, only integrated terminal :S

@etiennelacoursiere
Copy link
Contributor

Never liked the git panel in vscode and was running lazygit in the vscode terminal for a better experience. Doing the same in zed.

@jacobtt21
Copy link

I personally like the git panel, especially the diff view in VSCode. I think adding it to Zed will make it all the more better, just my personal opinion though.

@Moshyfawn Moshyfawn mentioned this issue Feb 28, 2024
1 task
@Chimpaya
Copy link

Chimpaya commented Mar 1, 2024

This is the only thing preventing me from leaving VSCode. The lack of Git Panel is a deal breaker. Would love to have it.

@Princesseuh
Copy link

Everytime someone posts a comment "when can we expect this", "please add this!" etc, the Zed team delays it by a month.

@coolemur

This comment was marked as off-topic.

@bersace
Copy link

bersace commented Jul 16, 2024

lazygit is broken when signing GPG, I guess that's based on using libgit rather than gpg commands like magit does. lazygit lacks behing magit.

@coolemur
Copy link

lazygit is broken when signing GPG, I guess that's based on using libgit rather than gpg commands like magit does. lazygit lacks behing magit.

This is not about alternatives tho, but about separate panel for source control (integrated solution)

For example, using vscode you can open git panel, where you can select any file from a treeview there and see side-by-side diffs for that file where you can modify those changes, copy changes left-right.

Furthermore, with gitlense plugin you can see history of PRs, this is very useful for restoring parts of changes from history or finding out in which PR things were broken.

Of course we can use third party tools for that, there are plenty. But that is not convenient.
I usually open vscode just to check PR history. 🤷‍♂️ If third party tools are ok, then VSCode is also OK for this.

@Angelk90
Copy link

@coolemur : I usually open vscode just to check PR history, what do you use some library or via access to github with vscode?

@coolemur
Copy link

coolemur commented Jul 16, 2024

@coolemur : I usually open vscode just to check PR history, what do you use some library or via access to github with vscode?

Access to github with vscode using VSCode Gitlens plugin. Feature called "Gitlens: File History" (youtube has some vids about this for sure)

So for example, if I want previous version of one file, I just click on gitlense and pick previous commit of that file to see highlighted changes. Very helpful when debugging previous commits

@Angelk90
Copy link

@coolemur : but Gitlens is not paid I think?

@coolemur
Copy link

@coolemur : but Gitlens is not paid I think?

It has free plan + other plans. Never used paid one

@Angelk90
Copy link

@coolemur : I see this at the moment, do you too?
Screenshot 2024-07-16 alle 14 55 29

@coolemur
Copy link

coolemur commented Jul 16, 2024

@coolemur : I see this at the moment, do you too?

I just moved "File history" tab to separate icon (you can just drag it to your sidebar :D )

Open any file that has commit history. Then open this File history tab

@Angelk90
Copy link

@coolemur : However in my opinion vscode and zed should have all this by default.

For this reason, in my opinion, the best, even if it is paid, is Webstorm which offers a set of exceptional features.

@coolemur
Copy link

@coolemur : However in my opinion vscode and zed should have all this by default.

For this reason, in my opinion, the best, even if it is paid, is Webstorm which offers a set of exceptional features.

Again, can we just stop suggesting alternatives ? :D

How new user of Zed will know which one to pick? By reading github issues comments and finding this exact comment recommending to use Webstorm?

@Angelk90
Copy link

@coolemur : In fact, I hope that zed will implement this functionality soon.

@bersace
Copy link

bersace commented Jul 16, 2024

@coolemur I was just stressing how much this feature is missing. I'm wondering how does zed developers do their git plumbing. CLI ?

Another workaround: start magit in a task, like lazygit:

// tasks.json
  {
    "label": "magit",
    "command": "emacs -nw --eval '(magit-status)'"
  }

Then bind <space> g g:

      "space g g": [
        "task::Spawn",
        {
          "task_name": "magit"
        }
      ],

I've streamlined Doom Emacs init.el for this use case.

image

@erzz
Copy link

erzz commented Jul 16, 2024

Yeah to be honest - rather than worrying about a specific git client implementation (Lazy, magit, etc) and still having a bunch of users that want something else...

better to work on how we can plugin any tool to different kinds of UI components. Sidebar, tab, terminal etc are already implemented. The only thing missing for me is a floating window and split terminals! Both have their use in different workflows and I am totally happy with the tasks implementation.... just having it under a terminal tab that I need to navigate to every time is the pain point.

Let me target a split term or a float and I am totally happy - for my-git-client-of-choice-right-now but also other CLI tools too

@Angelk90
Copy link

I think that at the moment we need someone to start doing something and then little by little things will settle down.
But at the moment we need someone to at least implement the open git panel function, even if it doesn't show anything.

@langri-sha
Copy link

I think the Zed team already knows how to build the perfect git integration because they did it before with Atom!

I hope you take an inspiration from the outstanding work that was previously done and make an amazing integration!

I tend to do a lot of refactoring tasks on large codebases, and in Atom it was incredibly straightforward to focus on the Git panel and stage/unstage files/hunks using just the keyboard alone, and I can't state enough how much a productivity boost that was.

This feature is one of the reasons why I want to switch back to Zed from VS Code entirely.

@hallvardnmbu
Copy link

Something like JetBrain's solution would be amazing.

image

@matklad
Copy link
Contributor

matklad commented Jul 30, 2024

+1 for following text-centric magit here, rather than gui-heavy VS Code/IJ. I've recorded a 2 min demo showing some of the killer feature of this style of interface:

https://www.youtube.com/watch?v=kTAYEmbPsTM

@pasqui23
Copy link

pasqui23 commented Jul 30, 2024

All of magit features shown in @matklad 's video are present in vscode too

@matklad
Copy link
Contributor

matklad commented Jul 30, 2024

To clarify, it is VS Code in the video. The point is that with text-centric UI you get all those features you get with GUI UI, but you also get to use all familiar text manipulation commands.

@aayushchugh
Copy link

It would be great if git panel have support for conventional commit messages too

@Gallevy
Copy link

Gallevy commented Aug 3, 2024

A lot of opinions are but a view option to allow only visualizing git while still working with the terminal to allow for a cleaner ui would be nice as well 🙏🏼

@solidcode79
Copy link

I wonder why something like this is not already on the top enhancements list. It's the only reason I've haven't uninstalled VSCode yet.

@mrnugget
Copy link
Member

mrnugget commented Aug 6, 2024

We're very aware that this is highly-requested. It's #6 on our list of top-ranking issues: #5393

I'm going to lock the issue for now, since by now 45+ people get notified on every message.

@zed-industries zed-industries locked as off-topic and limited conversation to collaborators Aug 6, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement [core label] git Git integration feedback panel Feedback for panels. Panels are the content that fills the docks. priority request A request from a stakeholder or influential user
Projects
None yet
Development

No branches or pull requests