Live data from Hacker News

Facebook's git repo is 54GB

twitter.com

171–180 of 245 posts

Re: Facebook's git repo is 54GB

#171
post #120
post #108

Earlier quoted context omitted.

They built their own build system because once you are dealing with top engineers NIH sets in quickly and you write your own everything.

They have their own in-house version of just about every dev tool. http://phabricator.org/

This might be right in spirit, but Phabricator is maintained by Phacility (some ex-FB people) and used by at least 6 other companies outside of FB.

Re: Facebook's git repo is 54GB

#172
post #170

Earlier quoted context omitted.

FWIW: Every time you modify a file in git, it adds a completely new copy of the file. 100mb text file, 100mb binary file - makes no difference. Modify one line, it's a new 100mb entry in your git repo.

No, git has delta compression. It only saves the changes.

Only when git repack operations run.

Re: Facebook's git repo is 54GB

#173
post #108

Earlier quoted context omitted.

They built their own build system because once you are dealing with top engineers NIH sets in quickly and you write your own everything.

To be fair once you are over 1000 engineers, a 1% improvement in productivity is worth a lot of development time.

Somehow Netflix never got that memo and they seem to be doing just fine.

Re: Facebook's git repo is 54GB

#174
post #120
post #108

Earlier quoted context omitted.

They built their own build system because once you are dealing with top engineers NIH sets in quickly and you write your own everything.

They have their own in-house version of just about every dev tool. http://phabricator.org/

That's one way to keep your talent from being poached :)

Re: Facebook's git repo is 54GB

#175
post #120
post #108

Earlier quoted context omitted.

They built their own build system because once you are dealing with top engineers NIH sets in quickly and you write your own everything.

They have their own in-house version of just about every dev tool. http://phabricator.org/

FYI phabricator originated at Facebook, but the guys who wrote it left and founded Phalicity, who supports it full time now. Facebook did the world a service by open sourcing phabricator.

Review board and Gerrit are both awful in comparison

Re: Facebook's git repo is 54GB

#176

Earlier quoted context omitted.

I'm a bit confused. Whenever I've used git on my projects, I'd make sure the binaries were excluded, using .gitignore Don't other people do that, too? What's the benefit of having binaries stored? I've never needed that; I've never worked on any huge projects, so I might be missing something crucial.

Well, it depends. Images are for instance binaries where a text diff makes little sense, so you have a copy of each version of the image ever used. And many projects use programs where the files are binaries. For instance, I've been on a project where Flash were used and the files checked in. Or PhotoShop PSD files, .ai files etc.

I usually keep a separate repo for PSD/AI files (completely neglected to consider them as binary files).

As for images, icons, fonts and similar, I just have a build script that copies/generates them, if it's needed.

I guess I've always been a little bit "obsessed" about the tidiness of my repositories.

Re: Facebook's git repo is 54GB

#177
post #144
post #91

Earlier quoted context omitted.

But they surely don't use git for that, right? In scenarios like this a versioning system that does not track all history locally would be a better fit.

It could use git-annex[1]? [1] https://git-annex.branchable.com/

Strange as it sounds, git-annex doesn't really do file versioning very well.

Re: Facebook's git repo is 54GB

#178
post #124

Earlier quoted context omitted.

I don't see how this is an Ant-specific issue. Ant is just calling into javac with a classpath parameter. The actual execution time spent in Ant should be minimal.

With Android, ant makes naive assumptions. For example, most open source library projects that you include in a project don't change from build to build, but ant dutifully recompiles them each time instead of caching the output until the files in that project are changed or I manually clean the build output.

That surely means Ant is make, only worse.

Re: Facebook's git repo is 54GB

#179
post #74

Earlier quoted context omitted.

Hello there, have you heard of service oriented architecture? You must be joking to justify a single repository with "easier to change". Your problem is that the code base must be tightly coupled if splitting the services out to different repos is not possible and you need to contribute to multiple repositories to get something done. I would say, the biggest change in Amazon's architecture was moving over to the serv…

SOA isn't a magic bullet. What if multiple services are utilizing a shared library? For each service to be independent in the way I think you are advocating for, you would need multiple copies of that shared library (either via separate copies in separate repos or a shared copy via something like subrepos). Multiple copies leads to copies getting out of sync. You (likely) lose the ability to perform a single atomic c…

Whilst not arguing against your other points which I think are interesting, git has the submodule system which we use for shared libraries.

Re: Facebook's git repo is 54GB

#180
post #175
post #120

Earlier quoted context omitted.

They have their own in-house version of just about every dev tool. http://phabricator.org/

FYI phabricator originated at Facebook, but the guys who wrote it left and founded Phalicity, who supports it full time now. Facebook did the world a service by open sourcing phabricator. Review board and Gerrit are both awful in comparison

I've been using Phabricator for a few months now, and I used Gerrit for over 2 years at my last job.

They each have their strengths, but both of them are infinitely preferable to not doing code review. Neither is awful.

Post reply on HN