vscode-gitlens
vscode-gitlens copied to clipboard
Changelists support
First of all Id like to say that GitLense matured to a very impressive extensions! Thank you for keeping it free.
The features Im missing are changelists, like in IntellijJ. This means you can group your changes into several lists, eg to separate local only changes to configs to prevent committing them.
Do you accept bounties? Thanks!
By chance, any news about if this is going to be implemented on some point? These is one of key features preventing me to switch from Jetbrains products to VSCode.
Changelist parity with IntelliJ is not currently on the roadmap, but we are adding Git worktree support in the next version. While they aren't the same thing (at least from my very limited understanding of IntelliJ changelists), worktrees allow for working on multiple things simultaneously. So, depending on your needs it might be somewhat helpful on addressing some changelist use-cases.
We will look more into changelists and see how they can map into our plans going forward.
/cc @justinrobots
@eamodio Let me try to explain my use case, maybe you could give me a hint about any other existing solutions/extensions that are already in place in VSCode?
Usually, when I'm working in a project, I have 2 changelists: default one and another that I usually call "do not submit" changelist. Something very similar to what @TobiaszCudnik said. Sometimes I want to do some changes which will always be present in my local environment that I don't want to submit. A couple of examples I'm looking at right away are:
- Modified
package.jsonfile. Adding--inspectflag to thestartscript in my local env in order to be able to debug code. I want it always be in my dev environment but not commit. - I'm mocking the response of some services in the code making them always return same values. Useful when it's difficult to set up this service in your local or when this logic takes long time. I want it to be mocked in my local environment but never commit.
- Modifying the configuration files with your personal tokens/secrets to test something in your dev environment.
The beauty of changelists is that you don't store the modified files in them, you store the changes themselves. I can modify package.json and store this change in one changelist. But then, I can modify package.json again in the default changelist and these changes will be stored separately. I can always can commit changes from the default changelist and leave the "do not submit" changelist as it is.
My problem with VSCode is that all changes are stored together.
- My file changes is a mix of files that I need to commit and which I should not commit. Every time I commit my development I need to carefully select files that should be pushed and leave the others.
- Problems when I need to commit changes in some file which also contains changes that should not be commited. Have to revert the "local environment changes", commit the actual changes, then put the local changes back.
This is the one killer IntelliJ feature missing from VSCode, would love to see it implemented in GitLens.
same! I came in thinking that Gitlens was the best , but as I started using IntelliJ, their merge, branch, and changelist features are just superior.
worktrees allow for working on multiple things simultaneously
Changelists is something different. It allows gathering "change blocks" (blocks of unstaged modified lines). Different change blocks from the same file can belong to different changelists. I share the "do not commit/submit" use case described by doojin above: I select the modified block, and I choose to move it to the "do not commit" changelist (by default it has been put in the "default" changelist). Later when I commit the "default" changelist, that particular modification will not be included in my commit.
Maybe we can also see changelists as a kind of multiple virtual indexes, with a default one (the default changelist gathers all changes that were not put explicitly in a particular changelist).
+1
I agree. Maintaining change-lists is an essential feature that I have got used to in IntelliJ's PHP Storm. I would be multi-tasking on a daily basis, multiple JIRA tickets. To easily organize my changes, I would create a separate change-list for each JIRA ticket.
I'm exploring the possibility to move from PHP Storm to VS Code in my company, and I've not found anything similar in VS Code. That would be really helpful. Hope it get's delivered soon 👍