When did Git become terrible? Let's track down the specific commit...
-
All the world’s a stage,
And all the files and folders merely players;
They have their exits and their entrances,
And one file takes much time to play its part...
-
Yeah, pretty much. I don't particularly want to go into software development again. I'd consider it for the right position. Any place that uses git is the wrong position.
And I say that as someone who uses git on a daily basis and is sort of kind of starting to get it and still hate it. Fuck you, detached heads!
-
@captain said in When did Git become terrible? Let's track down the specific commit...:
And I say that as someone who uses git on a daily basis and is sort of kind of starting to get it and still hate it. Fuck you, detached heads!
I had people telling me for ages that detached heads were my fault, then there was some Git update that had a fix for their file locking code in Windows, and all of a sudden I virtually never get them anymore. I mean was it possible that this holy software blessed by Linus Torvalds himself had... a bug!?
-
@captain said in When did Git become terrible? Let's track down the specific commit...:
detached heads
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
How many times have you selected a menu item and it gave you an error saying "you can't do that now."
Never in several years of daily use.
I'm also shocked you're not pointing out how fucking SLOW it is at everything:
Now that one I'd agree with. Thing is, it didn't always used to be slow. It was pretty speedy before they remodelled the interface to look Win10-ish with multiple rounds of tweaking the icons. By the last 1.9 releases it was unusable and you frequently had to start it as an Administrator to get it to run at usable if not sane speeds. Don't know why run as Admin made it faster but it did.
With the 2.0 releases, it's almost but not quite back to being the usable speed it was. But compared to 1.9 it's fucking lightning.
Fun fact: the 1.9 update checker doesn't know how to check for 2.0 updates. That's some real incompetence there - the only reason I knew there was a 2.0 release was because there was a security bulletin for 2.0.19... I'm like... I'm up to date, how dafuq you get to 2.0.19 without me even knowing about it when I'm on 1.9.2 or something.
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
I mean was it possible that this holy software blessed by Linus Torvalds himself had... a bug!?
They don't even have a bug tracker, the site tells you to send bugs to a mailing list.
Anyone that thinks a mailing list is a good way to track bugs is a moron.
-
@arantor said in When did Git become terrible? Let's track down the specific commit...:
With the 2.0 releases, it's
- no longer respecting the "clone in sourcetree" button randomly
- never remembering what repositories I had open
- forgetting all my repository locations as soon as I take an update
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
GUI-wise I have no problems with it.
You are incorrect.
Even simple UI concepts like "dim menu items that aren't applicable" it utterly fails to do.
How many times have you selected a menu item and it gave you an error saying "you can't do that now." When they were writing the error, didn't they step back and say, "wait a minute... if we have to write this error we must have done something wrong!"? Because we're talking serious incompetence here.
None that I can recall. Or, too few enough to care. If it happened as often as you suggest then I'd definitely be bothered by it.
Basically, you're saying "I have incredibly low standards of software quality and frequently gloss-over or don't even notice blatantly obvious bugs".
No, I'm simply saying it's better than using source control (of any kind) on the command line and it's better than other git GUIs. Originally I said it was "fine", not "good" or "great". Meaning I find it satisfactory even with its problems. And, whatever annoyances and quirks and bugs it has don't annoy me enough to drive me away. I could try the VS integrated but I really dislike integrated source control in an IDE (including IntelliJ and Eclipse too). Even when I did use it at a previous job it always seemed like I was popping over to a "real" source control tool often enough that it's just easier to always start there. Although integrated source control, depending on how it's implemented, can be nice for switching branches.
I'm also shocked you're not pointing out how fucking SLOW it is at everything:
- Push commit
- Wait for stage to update
- Wait
- Wait
- Ok a couple files were removed from the stage list
- Wait
- Wait
- Wait
- Keep waiting
- Ok now you're ready to start staging new files
- Oops you went too fast, wait some more
If I get impatient waiting for the staging area to update, I just hit F5. Seems to help most of the time. Agree it kind of sucks, but honestly I'm usually not flipping between an editing tool and SourceTree that often. Usually by the time I'm over to SourceTree my edit has been saved long enough for it to be detected and displayed. I've not noticed any performance problems besides the staging display.
-
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
it's better than other git GUIs.
I very much doubt that, having worked with Github for Desktop, GitKraken, Visual Studio, and IntelliJ's built-in Git clients. I think SourceTree is at the bottom of that list...
-
@sloosecannon said in When did Git become terrible? Let's track down the specific commit...:
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
it's better than other git GUIs.
I very much doubt that, having worked with Github for Desktop, GitKraken, Visual Studio, and IntelliJ's built-in Git clients. I think SourceTree is at the bottom of that list...
A year or two ago I tried Github Desktop and it seemed too limited. Maybe it's gotten better? I don't remember what I couldn't do that seemed pretty straightforward. Never heard of GitKraken until this thread.
The others are all integrated into IDEs, which as I've said before I don't like using. If you like that integration, I'm sure those work just fine. As far as I'm concerned that's totally a personal preference.
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
I mean was it possible that this holy software blessed by Linus Torvalds himself had... a bug!?
Of course not!
They just implemented a new feature.
-
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
The others are all integrated into IDEs, which as I've said before I don't like using. If you like that integration, I'm sure those work just fine. As far as I'm concerned that's totally a personal preference.
"Man I hate labor saving devices! Well, off to churn my butter for 3 hours."
-
@yamikuronue said in When did Git become terrible? Let's track down the specific commit...:
@arantor said in When did Git become terrible? Let's track down the specific commit...:
With the 2.0 releases, it's
- no longer respecting the "clone in sourcetree" button randomly
- never remembering what repositories I had open
- forgetting all my repository locations as soon as I take an update
The first two have not happened to me in 2.0 and I frequently have multiple repos open. The last one has but only in weird, specific ways. For example, if I go to make a PR that should end up on GitHub, it will have forgotten immediately after an update. But not permanently forgotten - I can go to the repo settings which are, as far as I'm concerned, as I left them, and do nothing more than hit OK again, and it will work thereafter.
-
@arantor yeah, every time I open sourcetree it has some random set of repositories open in tabs which has nothing to do with what it had when I closed it or shut down last.
-
@onyx That looks really nice, but I can't run it on the WSL while emulating X.
-
@yamikuronue WOMM...?
-
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
A year or two ago I tried Github Desktop and it seemed too limited. Maybe it's gotten better?
I doubt it, since the Github guys are rewriting it in Electron.
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
The others are all integrated into IDEs, which as I've said before I don't like using. If you like that integration, I'm sure those work just fine. As far as I'm concerned that's totally a personal preference.
"Man I hate labor saving devices! Well, off to churn my butter for 3 hours."
If you say so. Alt+tab or clicking a task bar icon is super hard. I've never considered integrated source control much of a convenience. I've used it a bit in VS 2015 for diffs and contextual history when investigating something and I don't like all the extra tabs it opens, mixing with my source tabs. Ick.
-
@mikehurley Let me guess, your debugger is
printf("reached line 27!");
?
-
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
I really don't like command line for source control. To me anyway, seeing the commit graph without much effort is part of the point of source control. And easy access to visually see what you're committing is really useful (you shouldn't just blindly commit all detected changes).
Hmm...I find it easier to see this from the command line.
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
Plus typing commit comments feels odd on the command line, and having an editor get started to enter them is even odder.
That's...odd. Like, it's odder than having something pop up where you enter your comment? Oh, you're on Windows so you get Notepad or something?
export EDITOR=nano
FTW.
-
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
I think my favorite source control tool I've used was the TortoiseHg Workbench.
hg
is the best.
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
@mikehurley Let me guess, your debugger is
printf("reached line 27!");
?Only when writing Spark jobs.
Debuggers work perfectly fine within IDEs. I'm not saying I want IDEs to only edit source code. I'm saying that source control specifically doesn't work well in IDEs.
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
The others are all integrated into IDEs, which as I've said before I don't like using. If you like that integration, I'm sure those work just fine. As far as I'm concerned that's totally a personal preference.
"Man I hate labor saving devices! Well, off to churn my butter for 3 hours."
That's how I feel when I use source control that's part of an IDE. It makes me fell dirty, like a mouse typer.
-
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
Debuggers work perfectly fine within IDEs. I'm not saying I want IDEs to only edit source code. I'm saying that source control specifically doesn't work well in IDEs.
... you could just tear off the source control UI and place it somewhere else on the monitor so it looks like a different app? Would that make satisfy your strange and inexplicable prejudices?
-
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
Plus typing commit comments feels odd on the command line, and having an editor get started to enter them is even odder.
That's...odd. Like, it's odder than having something pop up where you enter your comment? Oh, you're on Windows so you get Notepad or something?
export EDITOR=nano
FTW.I forget if I had that happen with git or hg, but it popped open vim for me to type my commit message. Very weird. It wasn't that it was out of band that was weird, it was that it popped open a full editor for it instead of just prompting me. At least with some sort of GUI solution that's kind of expected, especially if it's on the same screen you pick your changes to stage/commit.
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
Debuggers work perfectly fine within IDEs. I'm not saying I want IDEs to only edit source code. I'm saying that source control specifically doesn't work well in IDEs.
... you could just tear off the source control UI and place it somewhere else on the monitor so it looks like a different app? Would that make satisfy your strange and inexplicable prejudices?
Or I could just use an app made to do source control. I don't like integrated source control, you do. That means you should use it and I should use something else. I'm not sure why this is a big deal to you. Why do you care how I do this? In case I wasn't clear: how either of us choose to do this is not objectively better. What is objectively better is each of us does what works better for us. I'd rather deal with a sometimes annoying source control tool than having source control stuff mixed in with my coding stuff.
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
@mikehurley Let me guess, your debugger is
printf("reached line 27!");
?More like
printf("reached line %d!", __LINE__);
I personally prefer
putc
if embedded, attached to serial console
-
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
Or I could just use an app made to do source control. I don't like integrated source control, you do.
I just don't see the difference between those two things, is really my problem.
Like if you open Visual Studio and pop out the source control pane into a new window, then close the code editor window, how is that different from "an app made to do source control"?
-
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
It wasn't that it was out of band that was weird, it was that it popped open a full editor for it instead of just prompting me. At least with some sort of GUI solution that's kind of expected, especially if it's on the same screen you pick your changes to stage/commit.
It probably prompted you before, otherwise it wouldn't have known about vim. Or maybe the Windows installer you used set that up. I have no Windows git experience so I have no idea.
-
The only things I use SourceTree for is looking at history, diffing my current changes, and selecting individual files to index when needed; which it is terrible at. Having to hit F5 every time you run a git command holy shit. I just haven't taken to find to download a better tool.
For merging, I use Perforce's merge tool because it's free and works well. Having to Cmd-Q it for
git mergetool
to move to the next file instead of just closing it like you can on Windows is annoying though.
-
@boomzilla said in When did Git become terrible? Let's track down the specific commit...:
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
It wasn't that it was out of band that was weird, it was that it popped open a full editor for it instead of just prompting me. At least with some sort of GUI solution that's kind of expected, especially if it's on the same screen you pick your changes to stage/commit.
It probably prompted you before, otherwise it wouldn't have known about vim. Or maybe the Windows installer you used set that up. I have no Windows git experience so I have no idea.
Mhh, it was some installer default (or implicit in one of three 'big instalation flavors selection") in old git for windows. No explict "fancy a VI ?", thats for sure.
I remember droping to vi (vim?) and not knowing how to quit.
Also, at some version, you will get (somewhat unexpectedly) the cmd console styled system wide at the packagers taste (size, font, colors and all) ...
-
@boomzilla The current installer sets up an environment with vim, and therefore with
vimdiff
being the only diff tool it knows about, it usesvimdiff
-
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
so if kdiff can figure it out I don't even see its GUI.
Branch A removes an unused variable, branch B references that variable in a different file. Separately both branches compile. All automatic merges in all source control software will accept that as if nothing is wrong, but the resulting merge won't compile. I always use
git merge --no-ff --no-commit
and manually compile the project and fix these issues before completing the merge - it still lets the automatic merge do its dirty work but then lets me fine tune it. I test every commit anyway, may as well make sure merge commits compile too.
-
@wharrgarbl said in When did Git become terrible? Let's track down the specific commit...:
They don't even have a bug tracker, the site tells you to send bugs to a mailing list.
Anyone that thinks a mailing list is a good way to track bugs is a moron.
QFT. And yet, there are a lot of morons out there.
Something that happens quite regularly on the SDL mailing list is for someone to post a bug report, or even a patch, and then someone replies, "you better put this on the bug tracker or it's likely to never get acted on." And yet they keep coming, on the mailing list...
-
@lb_ said in When did Git become terrible? Let's track down the specific commit...:
@mikehurley said in When did Git become terrible? Let's track down the specific commit...:
so if kdiff can figure it out I don't even see its GUI.
Branch A removes an unused variable, branch B references that variable in a different file. Separately both branches compile. All automatic merges in all source control software will accept that as if nothing is wrong, but the resulting merge won't compile. I always use
git merge --no-ff --no-commit
and manually compile the project and fix these issues before completing the merge - it still lets the automatic merge do its dirty work but then lets me fine tune it. I test every commit anyway, may as well make sure merge commits compile too.Sure. I'm not aware of a merge tool that fully comprehends a full code project. You should always compile a merge before pushing it up. However, a lot of stuff git misses I know hg merged just fine when I was using that. I've never had a build problem in the conflicted file because kdiff (or hg) was able to figure out everything in a conflicted file. Git's merge logic seems over cautious. I seem to remember StarTeam's auto merge being a bit iffy, so I know auto merge wildly varies between apps.
-
@lb_ said in When did Git become terrible? Let's track down the specific commit...:
I always use git merge --no-ff --no-commit
And why not
git squash
-
@dse said in When did Git become terrible? Let's track down the specific commit...:
And why not
git squash
???
-
@masonwheeler
git merge --squash
-
@dse
svn merge --pumpkin
So there!
-
@dse said in When did Git become terrible? Let's track down the specific commit...:
@lb_ said in When did Git become terrible? Let's track down the specific commit...:
I always use git merge --no-ff --no-commit
And why not
git squash
I intentionally never squash commits. I prefer to preserve history rather than making the DAG look pretty. That way you can easily look back at commit messages and understand why changes were made without having to go do detective work to find the original commits, if they even exist anymore.
-
@lb_ said in When did Git become terrible? Let's track down the specific commit...:
That way you can easily look back at commit messages and understand why changes were made without having to go do detective work to find the original commits, if they even exist anymore.
You're assuming the original commits have sensible size and names. From my experience, the commits from a bugfix branch usually have the following names: "trying to fix x", "trying to fix x again", "fix", "argh", "last try", "prepare for review", "implement review suggestions", "code style fix", "fix build" etc. A single "fixed x" commit would be way more helpful.
-
@asdf I'd argue that's an incorrect use of commits. I've done that myself and realized pretty quickly how useless the commits are. If I ever need to keep triggering a CI to see if I fixed the CI's issues, I'll
git commit --amend
andgit push --force
since it's my personal branch anyway.
-
@lb_ While you're still fixing the issue, you might want to go back and forth between your different attempts, though, so it makes sense to make several commits that you'll later rewrite. And once you've created the code review, it only confuses the reviewers if you rewrite existing commits.
-
@blakeyrat said in When did Git become terrible? Let's track down the specific commit...:
Like if you open Visual Studio and pop out the source control pane into a new window, then close the code editor window, how is that different from "an app made to do source control"?
Well, probably because it takes like 5 minutes to launch.
(Yeah, hyperbole. It does take at least a minute for me though)
Not that I'm dissing integrated IDE source control though - it's very good to have and if you're using the IDE already, you should use its source control plugin too.
-
@sloosecannon said in When did Git become terrible? Let's track down the specific commit...:
(Yeah, hyperbole. It does take at least a minute for me though)
Sounds like you need a better computer / IDE / OS.
Once again:
nano
FTW!@sloosecannon said in When did Git become terrible? Let's track down the specific commit...:
Not that I'm dissing integrated IDE source control though - it's very good to have and if you're using the IDE already, you should use its source control plugin too.
-
@boomzilla said in When did Git become terrible? Let's track down the specific commit...:
@sloosecannon said in When did Git become terrible? Let's track down the specific commit...:
(Yeah, hyperbole. It does take at least a minute for me though)
Sounds like you need a better computer / IDE / OS.
Once again:
nano
FTW!@sloosecannon said in When did Git become terrible? Let's track down the specific commit...:
Not that I'm dissing integrated IDE source control though - it's very good to have and if you're using the IDE already, you should use its source control plugin too.
Hey, I don't use Eclipse, so my advise only applies to good IDEs.
Visual Studio is famous for taking a while to load. IntelliJ is better, but IDEs are big, they take a while. Using an IDE only for source control is probably also
-
@sloosecannon said in When did Git become terrible? Let's track down the specific commit...:
Hey, I don't use Eclipse, so my advise only applies to good IDEs.
I do use Eclipse and I'm horrified by your post.
-
@boomzilla said in When did Git become terrible? Let's track down the specific commit...:
@sloosecannon said in When did Git become terrible? Let's track down the specific commit...:
Hey, I don't use Eclipse, so my advise only applies to good IDEs.
I do use Eclipse and I'm horrified by your post.
I mean, the VS one and the IntelliJ one are great at their jobs (IntelliJ moreso than VS, because the VS one is... A little feature-lacking)
Plus you get integration with stuff like merges and other built-in features, stuff you can't get outside of the IDE. So if you're using a (not terrible) IDE, there's no reason not to use the UI that comes with it (again, assuming it's not terrible)...
-
@lb_ said in When did Git become terrible? Let's track down the specific commit...:
@asdf I'd argue that's an incorrect use of commits. I've done that myself and realized pretty quickly how useless the commits are. If I ever need to keep triggering a CI to see if I fixed the CI's issues, I'll git commit --amend and git push --force since it's my personal branch anyway.
But since with Git you need to actually push code to place it on the server (with its lack of server-side stashes and most companies not allowing server-side private branches), you do have unavoidable commits named stuff like "not finished yet, checkpoint commit".
This is because Git is broken useless garbage. Apparently broken useless garbage designed by people who put a lot of faith in their HDs.
-
@sloosecannon said in When did Git become terrible? Let's track down the specific commit...:
Plus you get integration with stuff like merges and other built-in features, stuff you can't get outside of the IDE. So if you're using a (not terrible) IDE, there's no reason not to use the UI that comes with it (again, assuming it's not terrible)...
A major beef I have with GUI source control is trees. They are a PITA, graphically. Easier to deal with on a CLI with decent autocomplete, because I don't need to click everywhere to open / close stuff to get around a deal with stuff. Yuck.