klodolph
4 months ago
I agree but the article doesn’t explain why.
I’ve been using Magit at work because it’s what everyone uses, and it just does useful shit I need to do, like help me revert specific chunks from an old commit, or migrate chunks to a different branch, or whatever. Stuff that I know how to do in Git, but I’m tired and it turns out Magit is just a lot faster and more interactive.
I have a long history of hating Git UIs but somehow Magit is the one exception. I’ve done a lot of surgery on Git repos in the past so I’m no slouch on the command-line, Magit just lets me do it all faster.
ElevenLathe
4 months ago
I think they key to me is that it is really just helping you write git command lines. The menus are laid out exactly like the options of the relevant git sub-command, so that using Magit makes you more proficient at the CLI and vice versa. Other GUIs (including the awful ones that tend to be built into editors and IDEs) are instead hiding these details from you, so that if you are proficient at git on the CLI, you are still starting nearly from zero with the new interface and vice versa.
exclipy
4 months ago
Idea: a general tool that helps you write command lines. It reads the help or man page and generates a GUI or TUI to present all the options in a logical way. You just fill out the form and it does the thing
thfuran
4 months ago
I believe fish shell has a tool for autogenerating completions from man pages, which is like halfway there.
hinkley
4 months ago
Your comment caught my eye because as the de facto neurosurgeon, I’ve watched way, way too many UIs glitch a coworker into an impossible or unpleasant state and been the only one who didn’t immediately break eye contact. And remember they had someplace else to be. From CVS to SortaSafe to P4 to SVN. By the time I got to svn and saw the same issues I started spending political capital on convincing people to only use the CLI or maybe, maybe, JetBrains.
Usually the upvotes come from the casual users and the muttering from the heavy ones. In light of what I said, would you still recommend magit?
klodolph
4 months ago
I’ve never met a casual Magit user. They’re usually people who have decided to invest time in learning Emacs or Spacemacs, at the very least. Some of them have massive .emacs files and take notes in org-mode. The casual users would probably be using VS Code or Jetbrains instead.
If anything, Magit has helped me AVOID getting in a bad state, because it automatically shows me more information and context than what I get from the Git command line (despite all this fancy Git stuff I put in my prompt). When I’m committing in Magit, I see some weird hunk I didn’t mean to commit, and I can seamlessly edit it, because I’m already in the editor.
agumonkey
4 months ago
I beg to differ. I wouldn't praise magit if it was just another power user UI that required to become a black belt to do anything.
magit is a (somehow) thin layer on top of git output, and the brilliance comes from
- keeps the information similar to git cli
- depending on the context it allows to use indirect features (chunk staging) live from the diff
- for most use cases it will infer obvious flags/parameters from where you're at.
e.g: if you're on branch and start rebasing, it will soft-infer the source and target branch.
another one, in the log view, selecting a few commits and diff will get you the diff for that range
it basically reify the informations from the output transparently for you and reuse it where useful, saving you input and efforts multiple times per day
- lastly very low complexity so it's quick and out of your way. every time I have to pair, my colleagues say they couldn't follow what I did because by the time I started talking about staging/pushing, I'm already finished and back to sourceklodolph
4 months ago
When I say “casual magit user”, I mean “magit user who is a casual user”, not “somebody who is a casual user of magit”. I just mean that I haven’t met people who use magit who don’t already know how to use git on the command line.
The inference of flags and parameters is also helpful, yeah. I’m remembering times where I’ve done something in magit and it’s auto-populated some commit or branch name, and I’m like, “Yup, that’s the right one” which saves me fifteen seconds of looking up the right name. It makes sense that the command-line interface to Git would expect me to be more explicit.
jasonm23
4 months ago
edamagit for vs-code is a faithful rendition of Magit as a .vsix
BrenBarn
4 months ago
It's an emacs package. That doesn't suggest "casual user" to me.
jasonm23
4 months ago
It's runable as a standalone https://github.com/maio/smagit
there's a faithful conversion as edamagit for vs-code.
It's way more casual than having to know Emacs.
hinkley
4 months ago
TFA does not mention that at all. I kinda feel like the downvotes are unwarranted.
lanstin
4 months ago
To emacs user, not knowing that magit is emacs is worth a down vote prima facie :)
I share your horror for GUIs ineffectively hiding the version control reality; but then, despite being an emacs and casual magit user, I still mostly git add files one by one, having git diff the files one by one, and assembling the changed files into coherent groups.
hinkley
4 months ago
I have a keyboard dance that feels like choreography or maybe, at this point, ritual prayer.
There are definitely shortcuts I could take in some scenarios but walking the safe path even though it's a little longer is the sane response especially when you can type as fast as most of us and you've been using a bourne shell as long as I have.
Or if I'm being more charitable, it's about staying outside the yellow tape lines on the factory floor. No exceptions.
BrenBarn
4 months ago
It is pretty weird that it doesn't mention it.
strken
4 months ago
The only downside I've found to magit is that the UI refresh can be slow with very large commits: when you're adding a thousand generated files, doing a big find/replace, etc. In the shell you'd just be running `git status` or `git diff src/foo/` or some such targeted command and would get near-instant results.
The flip side is that I've never seen magit end up in an inconsistent state, which is probably for the same reason it's slow: it's not doing anything "clever," just directly showing you the information it got from git.
hinkley
4 months ago
> UI refresh can be slow with very large commits
That sounds like a feature.
The heart of Continuous is: if it hurts, either do it until it doesn’t hurt or stop doing it altogether.
Sounds like option B to me.
facundo_olano
4 months ago
> I’ve been using Magit at work because it’s what everyone uses.
Where do you work?
klodolph
4 months ago
I don’t share work details. But everybody on my team uses either Emacs or Spacemacs. There are people at work who use other tools, like VS Code for sure, but Emacs and Spacemacs usage are widespread.
When I say “everyone” uses Magit, I want to clarify that I’m being hyperbolic.
dingnuts
4 months ago
so other than that what's heaven like
klodolph
4 months ago
A lot of consensus building with technical people who ask hard questions.
Code review is kind of brutal.
A lot of time spent dealing with custom systems that should have been replaced with off-the-shelf, open-source alternatives like five or ten years ago.
wara23arish
4 months ago
where do you work where everyone uses magit! jealous :(