130
  • Facebook does not use Git due to scale issues with their large monorepo, instead opting for Mercurial.
  • Mercurial may be a better option for large monorepos, but Git has made improvements to support them better.
  • Despite some drawbacks, Git usage remains dominant with 93.87% share, due to familiarity, additional tools, and industry trends.
you are viewing a single comment's thread
view the rest of the comments
[-] ace@lemmy.ananace.dev 10 points 4 months ago

Mercurial does have a few things going for it, though for most use-cases it's behind Git in almost all metrics.

I really do like the fact that it keeps a commit number counter, it's a lot easier to know if "commit 405572" is newer than "commit 405488" after all, instead of Git's "commit ea43f56" vs "commit ab446f1". (Though Git does have the describe format, which helps somewhat in this regard. E.g. "0.95b-4204-g1e97859fb" being the 4204th commit after tag 0.95b)

[-] SkyNTP@lemmy.ml 14 points 4 months ago

I suspect rebasing makes sequential commit IDs not really work in practice.

[-] wewbull@feddit.uk 8 points 4 months ago

Rebasing updates the commit ids. It's fine. Commit IDs are only local anyway.

One thing that makes mercurial better for rebase based flows is obsolescence markers. The old version of the commits still exist after a rebases and are marked as being made obsolete by the new commits. This means somebody you've shared those old commits with isn't left in hyperspace when they fetch your new commits. There's history about what happened being shared.

[-] FizzyOrange@programming.dev 2 points 4 months ago

That's exactly the same in git. The old commits are still there, they just don't show up in git log because nothing points to them.

[-] aport@programming.dev 1 points 4 months ago

Old, unreachable commits will be garbage collected.

[-] FizzyOrange@programming.dev 2 points 4 months ago

Does that not happen with Mercurial? If not that seems like a point against it.

[-] aport@programming.dev 1 points 4 months ago

I'm confused, the behavior you just said was "exactly the same in git" is now a problem for Mercurial?

[-] FizzyOrange@programming.dev 1 points 4 months ago

I thought it was exactly the same based on the description.

[-] wewbull@feddit.uk 1 points 4 months ago* (last edited 4 months ago)

No the old commit is always there, marked as obsolete with the information of what it became. No holes in history. (Assuming you use the obsolecense markers)

load more comments (8 replies)
load more comments (8 replies)
load more comments (8 replies)
this post was submitted on 18 Jul 2024
130 points (97.1% liked)

Programming

17314 readers
70 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS