News for hackers. Stuff that matters.
Re:Software Engineering at Google (2017) by pjc50 on Friday January 04, 2019 @10:46AM (#18824796)
> The monorepo third-party system works well in practice.

It's worth noting that this is only viable at Google because they don't use git. Git's insistence on every client having a full copy of all history of every file in the repository makes monorepo much more expensive.

I see conflicting reports over whether google use Perforce or something proprietary called "piper"?

Re:Software Engineering at Google (2017) by sangnoir on Friday January 04, 2019 @11:07AM (#18824989)
> Git's insistence on every client having a full copy of all history of every file in the repository makes monorepo much more expensive.

You might be happy to know Microsoft created a Virtual File System for Git[1] [2] so you do not have to have every file checked out in your working directory. Microsoft uses Git in a monorepo (for Windows, and it's 2.5 million files/300GB[2])

1. https://github.com/Microsoft/VFSForGit

2. https://vfsforgit.org/

Re:Software Engineering at Google (2017) by alexhutcheson on Friday January 04, 2019 @10:49AM (#18824823)
This paper has details and history regarding Perforce and Piper: https://ai.google/research/pubs/pub45424
Re:Software Engineering at Google (2017) by jkaplowitz on Friday January 04, 2019 @12:01PM (#18825557)
They used to use Perforce and then actually outgrew it (!), implementing an initially backwards-compatible backend called Piper.

(It may still be backwards-compatible, but it's been years since they turned off the last real Perforce and I haven't worked there for years myself. So it may have diverged.)

Re:Software Engineering at Google (2017) by dekhn on Friday January 04, 2019 @11:28AM (#18825211)
I used a git wrapper for google3 repo. It wasn't great. There are a number of semantic differences between piper/perforce and git that made it awkward. Especially code review- git doesn't handle code review well (I still find this to be an issue with github and other sites that have code review). but it was not an officially supported solution and I believe the replacement for it is based on another DVCS, Mercurial, for some silly software engineering reasons I don't like.
Re:Software Engineering at Google (2017) by shereadsthenews on Friday January 04, 2019 @06:25PM (#18828736)
I used the git wrapper for a few days until I hit a day-ending `git gc`. That's when I knew git was terrible.
Re:Software Engineering at Google (2017) by anonymouzz on Friday January 04, 2019 @10:51AM (#18824836)
Afaik it's a custom system with download-and-cache-on-demand.

Note that there's nothing forbidding you from writing a virtual git filesystem that fetches objects from some centralized repo as files are open()ed. Git on cloud steroids.

Re:Software Engineering at Google (2017) by chokolad on Friday January 04, 2019 @11:30AM (#18825240)
Microsoft actually had done it and pushed the whole Windows repo into git.

https://github.com/Microsoft/VFSForGit

Re:Software Engineering at Google (2017) by detaro on Friday January 04, 2019 @10:49AM (#18824822)
AFAIK they used perforce in the past and then built their own later.
Re:Software Engineering at Google (2017) by pacala on Friday January 04, 2019 @10:55AM (#18824874)
FWIW, there is [used to be?] a git interface for the centralized monorepo. Really handy for managing multiple dev braches at the same time.
Re:Software Engineering at Google (2017) by monocasa on Friday January 04, 2019 @11:04AM (#18824961)
Vfsforgit let's you do that