When did Git become terrible? Let's track down the specific commit...
-
https://redfin.engineering/two-commits-that-wrecked-the-user-experience-of-git-f0075b77eab1
(Although Git was already terrible in 2005, it's interesting how in this specific case actually following the stupid "Unix philosophy" might have created a better end-product.)
Also it's nice to see, in contrast to the Git fans here, even (at least one) Git core developer acknowledges it was made with zero design and is difficult to use, and they can't fix it because since they didn't separate the machine interface from the user interface it'd break backwards compatibility.
Of course that interview was back in 2011 and since then they've done absolutely jack shit to fix any of these problems, but acknowledging them is something I guess.
-
Huh, this easygit looks like a good stepping stone for teaching my coworkers how to use the command-line version of git instead of SourceTree.
-
@yamikuronue Considering how fucking godawful SourceTree is, it's probably significantly better.
-
@blakeyrat They staged a rebellion and demanded my boss buy licenses for Git Kraken instead. I couldn't really argue with them, either. My boss' boss is now purchasing the licenses en masse for the whole team. I'm just worried they're going to be disappointed by that too, since every git gui I've tried has been its own unique brand of awful.
-
SourceTree is TRWTF.
-
@blakeyrat GitExtensions is good. It doesn't look as shitty as in the screenshots they posted on their page, they probably took it on the Linux version or something. It's written in C#
-
@yamikuronue said in When did Git become terrible? Let's track down the specific commit...:
They staged a rebellion
Good for them. I hope they tarred and feathered whoever suggested SourceTree in the first place, also.
@yamikuronue said in When did Git become terrible? Let's track down the specific commit...:
and demanded my boss buy licenses for Git Kraken instead.
I've never tried that, although they send me emails pretty frequently asking me too.
@yamikuronue said in When did Git become terrible? Let's track down the specific commit...:
I'm just worried they're going to be disappointed by that too, since every git gui I've tried has been its own unique brand of awful.
The one built into Visual Studio has been least-bad in my experience, mostly because they twisted and crammed the Git awfulness into the confines of the older TFS UI. TFS wasn't anything to write home about, either, but it's about 58 eons ahead of Git.
Of course right now it's fucking broken unless you use a preview release not intended for production, so thanks for that Microsoft.
-
@wharrgarbl said in When did Git become terrible? Let's track down the specific commit...:
GitExtensions is good.
Single installer installs MSysGit, GitExtensions and the mergetool KDiff3
If they think KDiff3 is anywhere approaching "good", no. No it is not good.
Where's the DailyWTF that used to joke about clown vomit? Because KDiff3's own website brags that it looks like this:
Just from that screenshot it's clear that no artist or UI designer has ever been within 4 ZIP codes of the people who developed that mess of shit.
Guys, Visual Studio Community Edition is free. It does Git and merging pretty well frankly. You need that to be your basis of comparison.
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
The one built into Visual Studio has been least-bad in my experience, mostly because they twisted and crammed the Git awfulness into the confines of the older TFS UI. TFS wasn't anything to write home about, either, but it's about 58 eons ahead of Git.
Of course right now it's fucking broken unless you use a preview release not intended for production, so thanks for that Microsoft.I haven't seen any brokenness, at least in VS 2015 or 2017. It's pretty good; the only thing I've had to go to the command line for has been
stash
.
-
@hungrier said in When did Git become terrible? Let's track down the specific commit...:
I haven't seen any brokenness, at least in VS 2015 or 2017.
Good for you, but it's there.
-
@blakeyrat it let you use other mergetools
-
@wharrgarbl said in When did Git become terrible? Let's track down the specific commit...:
it let you use other mergetools
I don't want to use any project by people who, when presented with (for example) ExamDiff, Visual Studio, WinMerge, picks KDiff3 as their default. That person does not know how to build a good GUI. There's tons of decent diff tools; they picked about the only terrible one.
-
@blakeyrat Good article.
I had no idea there were all these extra switches. I get everything done using several simple widely used commands.
Basically, "git: the good parts".
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
@wharrgarbl said in When did Git become terrible? Let's track down the specific commit...:
GitExtensions is good.
Single installer installs MSysGit, GitExtensions and the mergetool KDiff3
If they think KDiff3 is anywhere approaching "good", no. No it is not good.
Where's the DailyWTF that used to joke about clown vomit? Because KDiff3's own website brags that it looks like this:
Just from that screenshot it's clear that no artist or UI designer has ever been within 4 ZIP codes of the people who developed that mess of shit.
Guys, Visual Studio Community Edition is free. It does Git and merging pretty well frankly. You need that to be your basis of comparison.
But it isn't free as in speech, or free software. So it completely misses the point. :rms:
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
ExamDiff, Visual Studio, WinMerge, picks KDiff3 as their default
They can't distribute proprietary things they don't own, and winmerge doesn't perform 3-way merges AFAIK
-
@wharrgarbl Well ok. I've also had issues with msysgit (downloaded 500 MB of bullshit, failed to actually install anything, gave no useful error messages from its installer which was just a console window, etc).
Basically, if you're a good product but you're relying on Shit Product A and Shit Product B to make your good product work, I'm not interested.
-
@wharrgarbl said in When did Git become terrible? Let's track down the specific commit...:
@blakeyrat GitExtensions is good. It doesn't look as shitty as in the screenshots they posted on their page, they probably took it on the Linux version or something. It's written in C#
From their website:
Features:
Visual Studio (2010/2012/2013/2015) plugin for GitCome on guys, the RTM of VS2017 was released in March and there have been several betas.
Is that Windows fucking XP? With the Classic theme? And without using antialiasing and ClearType? Screenshots of software running on Windows XP, in two thousand fucking seventeen?
-
@alexmedia said in When did Git become terrible? Let's track down the specific commit...:
Is that Windows fucking XP? With the Classic theme?
To be fair: it could be Windows 2000 Pro. You don't know!
-
@blakeyrat OK, they suck at choosing components and doing screenshots. But it's better than git-bash, git-cola and the other shitty thing I tested before.
-
@wharrgarbl said in When did Git become terrible? Let's track down the specific commit...:
OK, they suck at choosing components and doing screenshots. But it's better than git-bash, git-cola and the other shitty thing I tested before.
Well they certainly have a fan, but like I said before as far as I'm concerned the minimum quality line has been set at Visual Studio.
-
I quite like TortoiseGit. It's ugly as hell, but it works pretty darn good.
Neither can be said about SourceTree.
-
@alexmedia said in When did Git become terrible? Let's track down the specific commit...:
I quite like TortoiseGit. It's ugly as hell, but it works pretty darn good.
Ok?
Why are you people giving me these recommendations? Did I at some point ask? WTF.
-
I wasn't recommending it to you, I just said that I like TortoiseGit.
-
@alexmedia I didn't ask about that, either, but ok thanks for the correction.
-
Eh, I have no complaints about SourceTree, it does the job I need it to do. But I don't do anything really complex or huge with PHP where something else would be a better tool.
-
@arantor said in When did Git become terrible? Let's track down the specific commit...:
Eh, I have no complaints about SourceTree, it does the job I need it to do. But I don't do anything really complex or huge with PHP where something else would be a better tool.
Hey, @blakeyrat didn't ask this about and it's his thread!
No one should post in @blakeyrat's thread. You can only post in his threads only when you want to say how great he is!
-
Wow, so many ugly diff programs!
Just use Beyond Compare, folks. It's hands-down the best diff/merge tool I've ever worked with. It's not free, but even the premium version with a bunch of advanced features isn't expensive. (Around $40 IIRC.)
Once you've used it for a few weeks, you'll wonder how you ever got by without it.
-
@masonwheeler said in When did Git become terrible? Let's track down the specific commit...:
Just use Beyond Compare, folks. It's hands-down the best diff/merge tool I've ever worked with. It's not free, but even the premium version with a bunch of advanced features isn't expensive. (Around $40 IIRC.)
We're stuck with BeyondCompare 2 (the standard version) at my workplace. But that registry compare makes me very interested in buying my own license of the current pro version...
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
Where's the DailyWTF that used to joke about clown vomit? Because KDiff3's own website brags that it looks like this:
We were mocking for getting rid of all contrasting colors in his interface. "Clown vomit"was his phrase.
-
It was never my intention to insult Git’s maintainer
Funny how the evidence does a pretty good job of that already.
-
@masonwheeler said in When did Git become terrible? Let's track down the specific commit...:
Wow, so many ugly diff programs!
Just use Beyond Compare, folks. It's hands-down the best diff/merge tool I've ever worked with. It's not free, but even the premium version with a bunch of advanced features isn't expensive. (Around $40 IIRC.)
Once you've used it for a few weeks, you'll wonder how you ever got by without it.
Beyond compare is ugly.
-
@kt_ But is it better than kdiff3?
I use KDiff3 daily BTW, I actually though Visual Studio to use it instead of its native compare. You can't be cheaper than free.
-
@alexmedia I like TortoiseGit, too. I configured the context menu to show only "Git Show log" and "Git Switch/Checkout..." because those are pretty much all that I use.
I use Eclipse for my Java coding, and I have the "Team Explorer Everywhere" extension, but I don't use it because it feels like it takes longer to switch branches with it than closing Eclipse, switching with TortoiseGit, and then reopening Eclipse.
I also use WinMerge for my own comparisons, and the built-ins TortoiseGitMerge and TortoiseGitUDiff for diffs within the repo.
While we're at it, I replaced the default Windows Notepad with Notepad2 and I use Notepad++ for quick code edits when I don't need a full-blown IDE (mainly due to its persistence feature if the program closes/computer crashes/Windows updates*/etc.).
* I am on Win7, so I can choose to delay updates until I'm ready.
-
@jbert said in When did Git become terrible? Let's track down the specific commit...:
@kt_ But is it better than kdiff3?
I use KDiff3 daily BTW, I actually though Visual Studio to use it instead of its native compare. You can't be cheaper than free.
I've never used kdedfif323 (what the fuck name is this, BTW?).
I definitely prefer the VS merge tool.
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
@wharrgarbl said in When did Git become terrible? Let's track down the specific commit...:
it let you use other mergetools
I don't want to use any project by people who, when presented with (for example) ExamDiff, Visual Studio, WinMerge, picks KDiff3 as their default. That person does not know how to build a good GUI. There's tons of decent diff tools; they picked about the only terrible one.
I pay for BeyondCompare (that and PyCharm are the only software i pay). It is the best for merging, 3way, directories, pictures,...
-
@djls45 said in When did Git become terrible? Let's track down the specific commit...:
I use Eclipse for my Java coding, and I have the "Team Explorer Everywhere" extension, but I don't use it because it feels like it takes longer to switch branches with it than closing Eclipse, switching with TortoiseGit, and then reopening Eclipse.
I use Eclipse and its (supplied-as-standard) Git plugin is reasonably fast. The only significant gripe I have is that repository view can't be restricted by working sets. I have a lot of git repositories (and quite a few working sets too). I don't want to change workspace though; I've got some cases with overlap.
I prefer to do merges by hand. Habit I got into years ago. ;)
-
@dkf Thankfully, I don't have to do any merges (for now).
-
@djls45 said in When did Git become terrible? Let's track down the specific commit...:
Thankfully, I don't have to do any merges (for now).
I do quite a few. Most work automagically. However, I'm also the main person on the team who takes on the “difficult” ones where the nature of the world has changed a lot and a merge is impractical (and a rebase no better). We then take a look at what I've recovered and see whether we want to keep it or throw it. The latter happens quite a bit, but not always.
-
@dkf IME with BeyondCompare, there are no "difficult" merges. There are easy ones, and the occasional impossible one (ie. something screwed up so badly that it just can't be reconciled) but no possible ones that are particularly hard to get right.
-
@masonwheeler I did buy BC (based on what I read here). The one thing I couldn't figure out the first time I tried a 3way was how to pull in parts of each side. (Fixing a git merge of a vcxproj - I need the text from both sides, plus an extra line) I gave up and went back to SmartGit's built in merger.
I was probably just missing something somewhere, but I didn't have the time to figure it out. Haven't tried plugging it back into my git setup yet...
-
@djls45 said in When did Git become terrible? Let's track down the specific commit...:
I use Eclipse for my Java coding, and I have the "Team Explorer Everywhere" extension, but I don't use it because it feels like it takes longer to switch branches with it than closing Eclipse, switching with TortoiseGit, and then reopening Eclipse.
Why?
The only reason I had that installed is because it interfaces with TFS in non-Git mode.
Eclipse itself already knows how to do Git. At least if you use a version released in the past 3-4 years.
-
@dcon said in When did Git become terrible? Let's track down the specific commit...:
@masonwheeler I did buy BC (based on what I read here). The one thing I couldn't figure out the first time I tried a 3way was how to pull in parts of each side. (Fixing a git merge of a vcxproj - I need the text from both sides, plus an extra line) I gave up and went back to SmartGit's built in merger.
It's in the context menu. Look for "Take Right Then Left" or "Take Left Then Right". The output is in the bottom pane and can be edited manually if needed.
-
@dse said in When did Git become terrible? Let's track down the specific commit...:
I pay for BeyondCompare (that and PyCharm are the only software i pay). It is the best for merging, 3way, directories, pictures,...
Now I'm curious. What does BeyondCompare do that PyCharm's merge tool cannot do?
-
@masonwheeler said in When did Git become terrible? Let's track down the specific commit...:
The output is in the bottom pane and can be edited manually if needed.
Ah - I think that's what I was missing... I was trying to edit the middle pane like I do in the smartgit window. And ended up doing something bad that I couldn't figure out how to undo. It didn't help that I was under a time pressure at the time...
-
@djls45 said in When did Git become terrible? Let's track down the specific commit...:
@alexmedia I like TortoiseGit, too. I configured the context menu to show only "Git Show log" and "Git Switch/Checkout..." because those are pretty much all that I use.
I use Eclipse for my Java coding, and I have the "Team Explorer Everywhere" extension, but I don't use it because it feels like it takes longer to switch branches with it than closing Eclipse, switching with TortoiseGit, and then reopening Eclipse.
Why do you need to close eclipse? I've never had a problem that a refresh couldn't solve.
+1 for TortoiseGit BTW.
-
@dangeruss I don't need to close it, but I don't like how Eclipse appears to hang while it refreshes the open files, and it seems like it takes longer to perform the refresh than to close down and reopen. I also just kind of like the idea of having a file accessed or changed by only one program at a time.
IIRC, it also seems to be more aggressive in detecting changed files or it's harder to do a forced switch, dropping all changes, or something like that. I don't want to commit any changes, because I just need the right versions of the rest of the code for the customizations that I actually work on.
-
@masonwheeler said in When did Git become terrible? Let's track down the specific commit...:
IME with BeyondCompare, there are no "difficult" merges. There are easy ones, and the occasional impossible one (ie. something screwed up so badly that it just can't be reconciled) but no possible ones that are particularly hard to get right.
What I label “difficult” might be what you label “impossible”.
The hardest merges that are still sort-of possible are those where the changes conflict in subtle ways , but where you can still apply the principle of the thing to the result. Often then the merge tool can't do very much to help because you've had to switch from merging at the level of source code as text to merging at the level of source code as abstract concept graph (and yes, there are an arbitrary number of levels of those, one for each level you can think about a program on). This can happen when you're merging forward a branch that has one class of change applied to it and the branch you're merging from has had a totally different category of change applied to it; the intent of the change is meaningful, but the merge itself just sits beyond what the computer will do for you. I don't really get upset about this sort of thing happening; I know I'm smarter than the computer.
My least favourite merges are the ones where the computer does it automatically for me… wrongly. Yay. :(
-
I accidentally chose kdiff as my merge tool. Quite nearly drove me to jump off the nearest bridge.
-
@dkf The nice thing about using Visual Studio for merges, at least for languages it speaks fluently, is that since it has some knowledge of the syntax it can take care of all the trivial shit for you and leave only the truly conflicting changes.
-
git
always sucked. I wishdarcs
had a few more features and was supported by Atlassian's stuff.