
Magit 2.13 released - signa11
https://emacsair.me/2018/06/02/magit-2.13/
======
MarcScott
My colleagues think I'm weird for using emacs, like i'm some 1980s retro
fanboy.

I can access my calendar (org-gcal), my email (mu4e), git (magit), edit files
on a remote server (tramp) and have a full code editor with pep8 syntax
checker and repl all from a single application.

That same application also encompasses my file manager, my todo list, my pdf
reader, my image viewer and if I really need it, a web-browser.

~~~
sakuronto
How does this fit in with the Unix philosophy?

~~~
saidajigumi
It doesn't, because "the Unix philosophy", in the meaning implied by your
question, is oversimplified nonsense. There is both utility and architectural
value to be found in integrated user experiences. To throw out just a few
small examples, such experiences done well may reduce context switching and/or
build on the user's deep skills in the integrated environment (esp. w/ Emacs'
and vim's text manipulation support). Likewise, there is immense utility in a
scriptable, user-programmable working environment, especially for developer's
tools.

Also note that Emacs and vim often comply with the oft-cited first bullet
point (there's more than one!) of "the Unix philosophy" by reusing powerful
yet single-purpose external tools under the hood. Case in point: git(this
thread!), ag/ack, and so forth.

So please forget the idea that bullet-point-one of the Unix philosophy is a
sacred tablet from some ridiculous Unixy religion. It's just an old,
occasionally useful, architectural rule of thumb that applies in relatively
narrow circumstances relative to the breadth of modern computing experiences
and implementations.

~~~
sakuronto
Haha, sorry, I know my question was begging for that response. But even if you
(and many others) appreciate tighter integration, others would appreciate the
flexibility of being able to pick and choose what they like from emacs without
being overwhelmed by what is an incredibly foreign environment.

~~~
philippejara
You can use emacs to run elisp the exact same way you'd use a python script,
emacs is pretty much an elisp shell. And there is no loss of flexibility,
emacs doesn't reimplement everything from the ground up and most features are
reliant on "shell programs". Dired for example is pretty much a sophisticated
skin over an ls call if i'm not mistaken.

------
ddavis
I started using magit about 3 months ago - it's definitely one of my favorite
parts of emacs now. I highly recommend it to anyone using emacs as a daily
driver.

~~~
agumonkey
how would you compare it to other git interfaces ? unless you used to use the
bare git program in a shell.

~~~
masklinn
It's the best git client I've used, comparing to git (CLI & gitk), PyCharm's
builtin (even with the recent improvements e.g. hunkwise selection), tig,
Sourcetree, gitx (various forks) and gitextensions.

The rebase and interactive stage/unstage are especially stellar.

It does get a tad slow on huge repositories, but that's the case of most git
clients.

Despite using pycharm for $dayjob, most of my interactions with git are
through magit. Basically the only ones which are not are annotations-browsing
(IDE integration is too convenient there) and branch-switching ($dayjob repo
being huge, switching major branches can take some time and magit completely
locks up emacs + has no feedback, so CLI is more convenient)

~~~
tptacek
I found my Magit was particularly slow on my OSX Aquamacs instance, and then
learned that it was a known performance regression that apparently stemmed
from Aquamacs not using vfork on OSX. A one-character source edit and a
rebuild, and my Magit was pretty zippy again.

~~~
sedachv
Emacs in particular, and a lot of Unix software in general, run very poorly in
Mac OS X compared to Linux or OpenBSD. I had to look up what _vfork_ was, and
learned that it was deprecated in POSIX 2008. Not surprising. Mac OS X seems
to be in perpetual beta mode, where it is always half-way behind on basic Unix
features, and the other half are proprietary interfaces that get
deprecated/broken/incompatible changes every major release. Switch to a better
operating system.

~~~
cpach
_”Switch to a better operating system”_

Even if better Operating Systems exists, there are no better Deskop
Environments ;-)

~~~
PuercoPop
I wouldn't consider a desktop environment that forces one to put up with
useless transition animations even a good desktop enviroment.

~~~
cpach
That doesn’t bother me but to each their own.

------
ww520
Magit is great. I found myself use the command line git less and less, and
just get things done with Magit.

One problem I have is Magit slowing down somehow. I found out that it's
because Magit spawns git and the Windows anti-virus kicks in, trying to verify
the files it touches. It doesn't seem to be a problem when running git on
command line.

~~~
fantispug
I'm not sure about antivirus, but magit forks git a ton of times which is
really slow on windows. You are often better off running it from inside a
linux VM.

------
gkya
Off topic and rather personal question: I prefer Mercurial for my own VCS
needs because (1) it's written in Python so I can hack on it or write
extensions using a proper Python library if needed and (2) I find the UI
better. But seeing how Git is becoming just as widespread as the English
language in the software world, would it be wiser for me to abandon Mercurial
for Git?

~~~
callahad
All of this is transient. Eventually someone will figure out a new paradigm
(Darcs/Pijul-style patch theory?) and we'll all move on, like we did from RCS,
and CVS, and Subversion. Or something will fall apart on the business side of
GitHub, and we'll all go elsewhere. Like we did with SourceForge, CodePlex,
and Google Code.

So, what are your goals? Switching to Git might give you access to more
tooling, but if you're not presently feeling hindered by Mercurial, it's
probably most wise to focus on making software, rather than chasing tools.

Similarly, if you're seeking feedback and patches from strangers online, then
going to GitHub is your best bet, which implies forfeiting Mercurial (though
maybe something like hg-git [[https://hg-git.github.io/](https://hg-
git.github.io/)] could give you the best of both worlds?)

~~~
gkya
Thanks! I already use hg-git for pushing some open-source projects to GitHub,
as it makes it easier for people to contribute patches and issues, and if I
was looking for a professional software job, that's what people look at, among
other things to evaluate you. That said, syncing up multiple branches can be
confusing (as git branches are mapped to bookmarks, and mercurial branches
don't have git equivalents, so if you have say a default and a dev branch in
hg and want equivalent branches in git, you need to manually juggle bookmarks
in hg).

My worry, more than my goals, is that would it be a major problem not having
mastered git should I look for professional jobs? I do know git to some
extent, but don't know common medium-advanced tasks.

WRT your first paragraph, there is a story on the front page of MS having
agreed to acquire GH:
[https://news.ycombinator.com/item?id=17221527](https://news.ycombinator.com/item?id=17221527)

------
globuous
Great !! I live magit, it's the reason I started mastering git. Finally I can
use the log tree and diffs efficiently !!

I haven't figured out how to vc-rename multiple files or a folder. Currently I
rename folders with dired or the command line. But I have to make sure to add
the renamed files from untracked manually. I wish that were automated !

