klodolph
10 hours 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
9 hours 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
3 hours 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
hinkley
9 hours 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
9 hours 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
8 hours 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 source
klodolph
5 hours 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.
strken
5 hours 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.
BrenBarn
9 hours ago
It's an emacs package. That doesn't suggest "casual user" to me.
hinkley
9 hours ago
TFA does not mention that at all. I kinda feel like the downvotes are unwarranted.
lanstin
8 hours 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
7 hours 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
2 hours ago
It is pretty weird that it doesn't mention it.
wara23arish
an hour ago
where do you work where everyone uses magit! jealous :(
facundo_olano
7 hours ago
> I’ve been using Magit at work because it’s what everyone uses.
Where do you work?
klodolph
5 hours 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 hours ago
so other than that what's heaven like