hbons,
@hbons@mastodon.social avatar

I want to shift focus to improving VS Code's version control flows soon. 🔀

what are some things you like/dislike currently? more importantly, what's frustrating you?

I'll start: I'm missing a visual git-log and feel disoriented because of it.

#vscode #VisualStudioCode #VisualStudio #ux #git #github #dev #coding #programming

MostlyBlindGamer,
@MostlyBlindGamer@dragonscave.space avatar

@hbons pulling changes and syncing them, including merging into an unclean working tree, feels… scary? I’m very comfortable with that workflow via the CLI, but the GUI - that I’d expect to make newbie’s lives easier - doesn’t inspire too much confidence.

On a related note, I’d appreciate more visual tools around stashing. Visual Studio is fairly intuitive at that, Rider isn’t necessarily intuitive, but it’s bet powerful.

hbons,
@hbons@mastodon.social avatar

@MostlyBlindGamer thanks! super useful!

lambdageek,
@lambdageek@mastodon.social avatar

@hbons I dont' want to sound too flippant, but uh... "make it be more like https://magit.vc/ "

in particular:

  1. make it possible to stage chunks
  2. just the whole interactive rebase flow in Magit is amazing and wonderful
  3. the UI that it presents for git's myriad command line arguments is amazing

also:
0. Make the commit dialog an editor, not a sidebar. I want to write 80 column markdown in my commit messages. With previews.

hbons, (edited )
@hbons@mastodon.social avatar

@lambdageek you’re lucky because chunk staging is in the works.

owzim,
@owzim@mastodon.social avatar

@hbons a dedicated view to the whole thing. Seems like forced into menus and sidebars last time I checked. Was looking into it when trying to find a cross platform way of handling git stuff. Found lazygit to be the best option for me. Not perfect but great.

hbons,
@hbons@mastodon.social avatar

@owzim you mean you want a panel that has almost all git actions in it?

hbons,
@hbons@mastodon.social avatar

@owzim or you're looking for a big picture overview of branches/commits?

owzim,
@owzim@mastodon.social avatar

@hbons i can't remember what exactly was lacking, I can say I like how lazygit does it. Great overview of everything but you can switch into spezialized views/modes for different actions. Everything ist just a keystroke away. Also I did not want to increase my dependence on vscode, it's big enough as it is already 🙂 https://www.youtube.com/watch?v=CPLdltN7wgE

ocornut,
@ocornut@mastodon.gamedev.place avatar

@hbons I gave it a quick look once and couldn’t find the git log and never looked at it again. That said, it’s only a symptom of the fact its not really a good idea to replicate git flow in more tools. Using one quality git client (eg: git fork) seems like a better idea than adding even more stuff to VS or VS Code imho.

matthegap,
@matthegap@chaos.social avatar

@hbons 1. The automatic detection of unstaged changes is sometimes very laggy (eapecially for large/largeish repositories)
2. Getting git blame infos in the UI is very unintuitive

hbons,
@hbons@mastodon.social avatar

@matthegap how do you get the git-blame info now?

garrett,
@garrett@mastodon.xyz avatar

@hbons For me, I'm not sure what will happen when syncing, as I work on a lot of branches with other people in different projects. Sometimes they might've added commits, other times, they might've reordered/dropped/squashed/etc. remotely and done a force push.

On my own projects, I sync, but otherwise I use a command line to run git pull --rebase --autostash (with rerere already turned on, in case there are conflicts so I don't have to repeat myself in).

hbons,
@hbons@mastodon.social avatar

@garrett thanks! I have the exact same thing. I don't trust "Sync".

naming it "Pull + Push" might help, but then there is all the other undefined behaviour that comes after pulling like you mention.

garrett,
@garrett@mastodon.xyz avatar

@hbons I hate to suggest it, but perhaps a dialog that says what the state of things are and what it will do?

At least if there are remote changes... especially if there are remote changes due to a force push or that might conflict with local changes.

(You could probably even completely skip it if there haven't been remote changes.)

I have no clue if you can check if there are remote changes without fetching them. But I guess fetch is harmless; it's the (implied) merge that's a problem.

hbons,
@hbons@mastodon.social avatar

@garrett there seems to be some opt-in auto fetching going on, but it's not utilised in many places...

garrett,
@garrett@mastodon.xyz avatar

@hbons FWIW, there was an excellent Git Tips talk at FOSDEM (which I streamed from home). The author how has a video, slides, and even a blog post based on it published @ https://blog.gitbutler.com/git-tips-and-tricks/

One was prefetching in the "large repos" section @ https://blog.gitbutler.com/git-tips-3-really-large-repositories/ via git maintenance.

The talk & blog post might also be useful to check out in general too.

Some of these from the talk & the config blog post might be good for VS Code to do itself? Not sure.

garrett,
@garrett@mastodon.xyz avatar

@hbons The huge problem is that everyone has to do all of their own manual configs (as seen in all these links) and anything you might want to try to do might conflict with any of the other settings or a workflow. That's the biggest danger.

Not everyone uses git:

  • manage their own local repos
  • in small teams
  • in huge teams
  • with monorepos
  • pushing to main directly
  • using PRs for approval
  • merging via rebasing
  • merging via merge commits
  • etc.

It's a monster to deal with, I'm sure! 😱

hbons,
@hbons@mastodon.social avatar

@garrett you could say all these features need to be octopus merged into a good UX. 😅

  • All
  • Subscribed
  • Moderated
  • Favorites
  • vscode
  • ngwrru68w68
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • anitta
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • provamag3
  • tester
  • Leos
  • megavids
  • JUstTest
  • All magazines