News for hackers. Stuff that matters.
Re:Debian Git Monorepo by dijit on Tuesday April 02, 2024 @05:36AM (#39903848)
I was always surprised that Perforce didn't have anything for open source, Git is basically eating their lunch because monorepo's suck so much with git; so people do things in a more fragmented and git-friendly way.

Not that I really want to see a proprietary product succeed, but it's somewhat surprising that:

A) We don't have anything better

B) Perforce isn't trying to gain adoption by giving its software for free to distro maintainers

C) People keep coming up with different paradigms that attempt to solve problems monorepos solve inherently.

Re:Debian Git Monorepo by maccard on Tuesday April 02, 2024 @05:42AM (#39903878)
Perforce doesn't need to because nothing really threatens it. They're not interested in becoming more known, because they don't need to be.

I can't imagine Debian of all projects using a proprietary VCS though.

Re:Debian Git Monorepo by codesnik on Tuesday April 02, 2024 @07:39AM (#39904576)
from what I've heard, git become much friendlier with monorepos in recent years because of microsoft involvement. Windows repo, pretty sizeable, is now using git, and it supposedly works even without strange things like vfs for git.
Re:Debian Git Monorepo by redleader55 on Tuesday April 02, 2024 @08:46AM (#39905099)
It's not only Windows that uses Git at Microsoft, but Sharepoint and Office (which includes the on-prem version of SharePoint). In terms of repo size Windows and Office are similar. I was part of the team that migrated Sharepoint from a Perforce clone to Git and helped build the tooling to allow Office to move as well. VFS for Git [1] and Scalar [2] are really good pieces of software.

[1] - https://github.com/microsoft/VFSForGit

[2] - https://github.com/microsoft/scalar

Re:Debian Git Monorepo by silverwind on Tuesday April 02, 2024 @10:22AM (#39906062)
I hope one of these "large file/many files" extensions becomes part of git core eventually. They are too much of a hassle to deal with and many servers don't even support them.
Re:Debian Git Monorepo by 4ad on Tuesday April 02, 2024 @07:46AM (#39904647)
> Perforce isn't trying to gain adoption by giving its software for free to distro maintainers

Perforce has been giving its software for free to OSS projects since forever. FreeBSD used to use Perforce, for example.

OSS people and projects don't want Perforce, not the other way around.

Re:Debian Git Monorepo by bluGill on Tuesday April 02, 2024 @07:56AM (#39904717)
Freebsd developers used perforce but the official repo was cvs and somehow the two synced.
Re:Debian Git Monorepo by xprn on Tuesday April 02, 2024 @06:10AM (#39904022)
I would actually think that monorepos suck with Github and others like that. Looking at the Linux kernel for example, that seems to me like a well executed monorepo outside of Github. From what I’ve heard and read, they specifically use Git and mailing lists instead of Github or others because Github wouldn’t work for what Linux is (aside from as a mirror).

There might very well be some context I’m missing, but that’s what I understand from that side at least.

Re:Debian Git Monorepo by jorvi on Tuesday April 02, 2024 @07:50AM (#39904681)
Github / Gitlab would work great and reduce friction for kernel contribution. The refusal to switch or provide the alternate path is mostly inertia.
Re:Debian Git Monorepo by skydhash on Tuesday April 02, 2024 @09:31AM (#39905550)
Sometimes friction is necessary for quality. More often than not, I’ve seen github repos where issue is treated as a project manager and there are lots of drive-by PRs.
Re:Debian Git Monorepo by zer00eyz on Tuesday April 02, 2024 @10:46AM (#39906327)
I think you have a story eyed view of github... You might want to go read Linus own thoughts on the matter in the linux GitHub backup repo

Git is a tool built for a project of the kernels scope, scale and organization.

Github is a thin web interface over top of that, it cuts some corners here and there and gets opinionated about how you should manage code (pull requests).

Think of it this way: most git hub projects end up with a monotonic output... the kernel isnt that. Between the current version someone is using, the next version that is being developed and the older versions getting back ports there's a lot going on there. Much more than GitHub and a pull request would cover.

Re:Debian Git Monorepo by jorvi on Tuesday April 02, 2024 @02:45PM (#39909421)
Likewise, I think you have a starry-eyed view on how much friction it creates which equals less contribution. People see a bit of code they want to improve, they improve it, and then instead of just opening a PR (and perhaps iterating on it), now they have to learn a weird ancient e-mail workflow and will probably get chewed out for messing it up.

No one is saying to take away mail-in patches but it is positively archaic.

Re:Debian Git Monorepo by zer00eyz on Wednesday April 03, 2024 @02:22AM (#39914211)
>> Likewise, I think you have a starry-eyed view on how much friction it creates which equals less contribution.

Is it friction? Or is it a filter?

You might remember being a kid and there was the sign in front of the ride that said "you must be at least this high to ride".... The kernel dev process isnt for casuals. It's designed that way.

There's a lot of folks out there who have popular projects on GitHub who are over the endless stream of BS from AI generated pull requests.

You should really dig in deep to what goes on with the kernel, the work flow, why it is that way and why GitHub is outright incapable of supporting kernel dev (there are reasons).... Your going to look at git in a very different way and many of githubs features are gonna feel on par with linkedin adding twitch style videos and zoom adding mail features...

Re:Debian Git Monorepo by jorvi on Wednesday April 03, 2024 @05:44AM (#39915285)
> Is it friction? Or is it a filter?

Friction.

> There's a lot of folks out there who have popular projects on GitHub who are over the endless stream of BS from AI generated pull requests.

So be stringent. First below-par PR get some guidance, pointers and perhaps a reprimand. Second time, a warning, third time a ban.

> You should really dig in deep to what goes on with the kernel, the work flow, why it is that way and why GitHub is outright incapable of supporting kernel dev (there are reasons)....

Code is code. If someone has an improvement, they can offer their new code.

I’m sure the kernel has a unique workflow, but it ultimately boils down to that, no?

Re:Debian Git Monorepo by mhh__ on Tuesday April 02, 2024 @11:23AM (#39906806)
Github and gitlab are both deeply, fundamentally, flawed because the unit of contribution is the branch rather than the commit.

Other than the UI not being very good, the code review experience is fundamentally hampered unless you enable squashing but that's a bit shit for different reasons.

On a purely UX level too the velocity of getting patches in is terrible. They're designed for ad-hoc open source contribution, not tight-loops of consistent work. People put up with the slowness because they know no difference but I promise its slow. You shouldn't need to go and get a coffee to wait for something to get merged and start coding again.

Re:Debian Git Monorepo by GuB-42 on Tuesday April 02, 2024 @12:15PM (#39907465)
A unit of contribution is always a branch, implicitly or explicitly. What you have in your local repository is a branch of what is in the central repository, which is a branch of what you have in your filesystem, which is a branch of what you have open in your editor. In the same way a contribution is always a merge, saving a file is merging the content of your editor in your filesystem, committing is merging your file in your local repository, and pushing is merging your local repository with the central repository.

That's git main insight, branching is everywhere, so it is designed with branching and merging as fundamental, explicit, and regular operations. Seeing how successful git is, it looks like it was a good choice.

GitHub and GitLab are built on top of git, and follow its principles, so that making the branch the unit of contribution is simply natural.

Of course, you can make single commit branches, in fact, that's what squashing is for. There is, of course, no obligation to wait before you have your change merged before you start working again, you can start from an earlier version and rebase later, merge back some changes, or do whatever you want really. You can tight-loop as much as you want, especially on your local machine.

Re:Debian Git Monorepo by mhh__ on Tuesday April 02, 2024 @12:25PM (#39907593)
The way (say) the kernel uses branches is not very similar to the way GitHub does it where you actually push a branch and then let the machine do the merge

It's the same ingredients but it's very hamfisted.

Squashing is like training wheels.

What I was hinting at with the loop concept is that it should be closer to phabricator that gitlab, let me stack.

Re:Debian Git Monorepo by fragmede on Tuesday April 02, 2024 @06:38AM (#39904207)
they (well, Linus) invented git for their purposes, and not the other way around. They use git and mailing lists because that's how they work, and that's how they worked before git existed. git was built for them.
Re:Debian Git Monorepo by wongarsu on Tuesday April 02, 2024 @09:19AM (#39905437)
For better or for worse, Perforce seems to see itself mainly in the niche of having binary or media files in source control. They are busy promoting themselves in game dev, automotive, etc, where this is a common pain point.

Maybe they should do more to highlight their strengths with regards to monorepos, but apparently their marketing hasn't identified that as a strength, or thinks it isn't a worthwhile market.

Re:Debian Git Monorepo by Xeamek on Tuesday April 02, 2024 @01:26PM (#39908424)
Games I understand, but what makes automotive a place that uses a lot of binary files?
Re:Debian Git Monorepo by francocalvo on Tuesday April 02, 2024 @02:45PM (#39909422)
Probably tons of 3D models