this post was submitted on 04 Apr 2024
1 points (100.0% liked)

Programmer Humor

19149 readers
1201 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
top 45 comments
sorted by: hot top controversial new old
[–] MargotRobbie@lemm.ee 2 points 5 months ago (4 children)

I think this is a fake quote that somebody made up for an Internet comedy bit, since it seems unlikely for Hollywood actress Sydney Sweeney to have such uncharacteristically strong opinion on software version control, of all things.

Because she of all people would know that there isn't anything wrong with using git merge, and it ultimately comes down to personal preference to what you are used to.

[–] archomrade@midwest.social 2 points 5 months ago (1 children)
[–] MargotRobbie@lemm.ee 1 points 5 months ago (1 children)

That's esteemed Academy Award nominated character actress Margot Robbie to you!

[–] errer@lemmy.world 1 points 5 months ago

She’s modest too!

[–] beeng@discuss.tchncs.de 2 points 5 months ago* (last edited 5 months ago) (1 children)

"Don't always trust what you read on the internet."

  • Benjamin Franklin
[–] ManniSturgis@lemmy.zip 1 points 5 months ago (1 children)

Wait a second, there wasn't even any social media sites back when Benjamin Franklin lived. Did he write that in his newsletter or something?

[–] masterofn001@lemmy.ca 2 points 5 months ago (1 children)

I think he was a senior contributor for the underground cracker mag 1600 back in the late 80s.

They called em zines.

[–] Klear@lemmy.world 1 points 5 months ago

Truly he was ahead of his time.

[–] hactar42@lemmy.world 1 points 5 months ago

I think this is a fake quote that somebody made up for an Internet comedy bit

You can tell by the pixels

[–] Artyom@lemm.ee 0 points 5 months ago (1 children)

Margot Robbie, I was about to agree with you and thought that was a very reasonable take, until you tried to argue that git merge is better than git rebase, then I simply had to disregard the whole thing.

[–] MargotRobbie@lemm.ee 1 points 5 months ago (1 children)

This is why Sydney Sweeney isn't on Lemmy.

[–] Klear@lemmy.world 1 points 5 months ago

She probably is, just anonymous. It would be crazy to expect anyone to post on lemmy under their real name.

[–] PP_BOY_@lemmy.world 1 points 5 months ago (2 children)

Why is anyone using X in 2024?

[–] hddsx@lemmy.ca 1 points 5 months ago

I do, I have yet to switch to Wayland

[–] Theharpyeagle@lemmy.world 0 points 5 months ago (1 children)

I tried it for a moment, made games stutter like hell, switched back. I know I need to go in and figure it out at some point, but it's hard to muster the energy when X, for the most part, works fine.

From what I've seen, it probably has to do with my Nvidia GPU.

[–] 30p87@feddit.de 0 points 5 months ago

I'm currently at the point where I blame everything that works on my Laptop but not on my PC on Nvidia, because that's literally the biggest difference between those two. Like currently my getty isn't displaying properly, which is surely NVidias fault.

[–] lightrush@lemmy.ca 0 points 5 months ago (1 children)
[–] SrTobi@feddit.de 0 points 5 months ago

git config --global merge.ff no

[–] passepartout@feddit.de 0 points 5 months ago

I like the idea of it and there were times i used it correctly, but most of the time i do it wrong i guess.

[–] JoYo@lemmy.ml 0 points 5 months ago (1 children)

Anyone mind explaining to me how git rebase is worth the effort?

git merge has it's own issues but I just don't see any benefit to rebase over it.

[–] Jesus_666@feddit.de 0 points 5 months ago* (last edited 5 months ago)

I use interactive rebases to clean up the history of messy branches so they can be reviewed commit by commit, with each commit representing one logical unit or type of change.

Mind you, getting those wrong is a quick way to making commits disappear into nothingness. Still useful if you're careful. (Or you can just create a second temporary branch you can fall back onto of you need up your first once.)

[–] cyborganism@lemmy.ca 0 points 5 months ago* (last edited 5 months ago) (1 children)

I prefer to rebase as well. But when you're working with a team of amateurs who don't know how to use a VCS properly and never update their branc with the parent branch, you end up with lots of conflicts.

I find that for managing conflicts, rebase is very difficult as you have to resolve conflicts for every commit. You can either use rerere to repeat the conflict resolution automatically, or you can squash everything. But when you're dealing with a team of Git-illiterate developers (which is VERY often the case) you can either spend the time to educate them and still risk having problems because they don't give a shit, or you can just do a regular merge and go on with your life.

Those are my two cents, speaking from experience.

[–] technom@programming.dev 0 points 5 months ago (1 children)

I agree that merge is the easier strategy with amateurs. By amateurs I mean those who cannot be bothered to learn about rebase. But what you really lose there is a nice commit history. It's good to have, even if your primary strategy is merging. And people tend to create horrendous commit histories when they don't know how to edit them.

[–] agressivelyPassive@feddit.de 0 points 5 months ago (2 children)

Honestly, I'm pretty sure 99.9% of git users never really bother with the git history in any way that would be hindered by merging.

Git has a ton of powerful features, but for most projects they don't matter at all. You want a distributed consensus, that's it. Bothering yourself with all those advanced features and trying to learn some esoteric commands is frankly just overhead. Yes, you can solve great problems with them, but these problems almost never occur, and if they do, using the stupid tools is faster overall.

[–] chamomile@furry.engineer 0 points 5 months ago* (last edited 5 months ago) (1 children)

@agressivelyPassive @technom That's a self-fulfilling prophecy, IMO. Well-structured commit histories with clear descriptions can be a godsend for spelunking through old code and trying to work out why a change was made. That is the actual point, after all - the Linux kernel project, which is what git was originally built to manage, is fastidious about this. Most projects don't need that level of hygiene, but they can still benefit from taking lessons from it.

To that end, sure, git can be arcane at the best of times and a lot of the tools aren't strictly necessary, but they're very useful for managing that history.

[–] agressivelyPassive@feddit.de 0 points 5 months ago (2 children)

I'd still argue, that the overhead is not worth it most of the time.

Linux is one of the largest single pieces of software in existence, of course it has different needs than the standard business crap the vast majority of us develop.

To keep your analogy: not every room is an operating room, you might have some theoretical advantages from keeping your kitchen as clean as an OR, but it's probably not worth the hassle.

[–] zalgotext@sh.itjust.works 0 points 5 months ago (1 children)

To keep your analogy, most people's git histories, when using a merge-based workflow, is the equivalent of never cleaning the kitchen, ever.

[–] agressivelyPassive@feddit.de 0 points 5 months ago

No, it's not. And you know that.

Seriously, ask yourself, how often did the need arise to look into old commits and if it did, wasn't the underlying issue caused by the processes around it? I've been in the industry for a few years now and I can literally count on one hand how often I had to actually look at commit history for more than maybe 10 commits back. And I spend maybe 10min per year on that on average, if at all.

I honestly don't see a use case that would justify the overhead. It's always just "but what if X, then you'd save hours!" But X never happens or X is caused by a fucked up process somewhere else and git is just the hammer to nail down every problem.

[–] chamomile@furry.engineer 0 points 5 months ago (1 children)

@agressivelyPassive You should still clean your kitchen though, that's my point.

[–] agressivelyPassive@feddit.de 0 points 5 months ago

Did I say anything otherwise?

[–] technom@programming.dev 0 points 5 months ago (1 children)

Only users who don't know rebasing and the advantages of a crafted history make statements like this. There are several projects that depend on clean commit history. You need it for conventional commit tools (like commitzen), pre-commit hook tools, git blame, git bisect, etc.

[–] agressivelyPassive@feddit.de 0 points 5 months ago

Uuuh, am I no true Scotsman?

Counter argument: why do you keep fucking up so bad you need these tools? Only users who are bad at programming need these. Makes about as much sense as your accusation.

You keep iterating the same arguments as the rest here, and I still adhere to my statement above: hardly anybody needs those tools. I literally never used pre-commit hooks or bisect in any semi-professional context. And I don't know a single project that uses them. And before you counter with another "well u stoopid then" comment: the projects I've been working on were with pretty reputable companies and handled literally billions of Euros every year. I can honestly say, that pretty much everyone living in Germany had his/her data pushed through code that I wrote.

[–] sirleonelle@sh.itjust.works 0 points 5 months ago (1 children)

I'll go one further: use git rebase --interactive

[–] natecox@programming.dev 0 points 5 months ago

I remember learning about how to use this back in the day and what a game changer it was for my workflow.

Today I like to do all of the commits as I’m working. Maybe dozens or more as I chug along, marking off waypoints rather than logging actual changes. When I’m done a quick interactive rebase cleans up the history to meaningful commits quite nicely.

The fun part is that I will work with people sometimes who both swear that “rewriting history” is evil and should never be done, but also tell me how useful my commit logs are and want to know how I take such good notes as I go.

[–] tatterdemalion@programming.dev 0 points 5 months ago (1 children)

Rebase feature branch, merge commit into main (NO SQUASH).

[–] cupcakezealot@lemmy.blahaj.zone 0 points 5 months ago (1 children)

make the commit message be "we’ve fixed bugs and improved performance. to experience the newest features and improvements, checkout the latest version of the branch."

[–] temmink@feddit.de 0 points 5 months ago* (last edited 5 months ago)

great new features

Jia Tan

[–] Crow@lemmy.blahaj.zone 0 points 5 months ago (1 children)

I've been using merge, and I hate that I don't even know what rebase really does

[–] andrew@lemmy.stuart.fun 0 points 5 months ago* (last edited 5 months ago) (2 children)

Merge takes two commits and smooshes them together at their current state, and may require one commit to reconcile changes. Rebase takes a whole branch and moves it, as if you started working on it from a more recent base commit, and will ask you to reconcile changes as it replays history.

[–] xilliah@beehaw.org 0 points 5 months ago (1 children)

I'm relatively new to git and rebase looks like a mess to me? Like it appears to be making duplicate commits and destroys the proper history?

If you use rebase to get a more readable history, isn't the issue the tool you use to view the history?

I guess I have to try it out a few times to get it.

[–] agressivelyPassive@feddit.de 0 points 5 months ago

The commits aren't duplicated, but applied to the main branch. Since git has commit ids, they won't be re-rebased either.

[–] Crow@lemmy.blahaj.zone 0 points 5 months ago (1 children)

That's pretty cool, might actually do that. Tho, we currently don't use the history as much anyways, we're just having a couple of small student projects with the biggest group being 6 people. I guess it's more useful if you're actually making a real product in a huge project that has a large team behind it

[–] ScreaminOctopus@sh.itjust.works 0 points 5 months ago (1 children)

I wouldn't recommend it. The Git documentation itself doesn't recommend rebase for more than moving a few unpushed commits to the front of a branch you are updating. Using it by default instead of merge requires you to use --force-push as part of your workflow which can lead to confusing situations when multiple developers end up commiting to the same branch, and at worst can lead to catastrophic data loss. The only benefit is a cleaner history graph, which is rarely used anyway, and you can always make the history graph easier to read with a gui without incuring any of the problems of rebase.

[–] surge_1@lemmy.world 0 points 5 months ago (1 children)

Bad take IMO,

At 10+ YOE, I use rebase almost exclusively. Branch from main, rebase to clean up commit history before putting up a PR. If commits are curated properly you don't run into conflicts very often. Branches really shouldn't be shared too often anyway, and the ones that are should be write protected.

Catastrophic data loss isn't really possible either with git since it's all preserved and you can git reflog even if you mess up.

The meme is right. Git good

[–] agressivelyPassive@feddit.de 0 points 5 months ago

Years of experience don't really matter here, that's just call to authority, in this case yourself. You might as well be the worst git user ever after 20 years of usage, or the best after 2. We don't know that.

Anyway, what you're saying basically requires a perfect world to be true. Feature branch flow is perfectly fine, but you do end up with merge conflicts constantly, unless you have cordoned off areas of the repo for certain users. Two people working on unrelated features, both change a signature of some helper/util method, merge conflict. Nothing serious, can be fixed in a minute, and rebasing or merging won't help for either.

Merge is perfectly fine. And arguing about which strategy to use is one of those autistic debates we as an industry seemingly love to have. It doesn't matter, but you'll find people screaming at each other about it. See Emacs vs. Vi. Same crap.