10,725 karma · joined October 7, 2007
Here's what it says:
"Long Nguyen has nearly 10 years experience as an enterprise build and software configuration management consultant and remembers having to install his first Linux server from floppy images that were downloaded using a 14.4K modem in his Harvard dorm.
Long has a PhD in Physics from The University of Chicago and got a crash course in the world of startups as part of the YC W08 session."
(And if you look through the install output, you'll also see where they get stored on your server if you want to review anything that's being done.)
I'm just better at building things than trying to write marketing collateral.
Feel free to email me directly at long at rayburst.com
It's mostly to fix any build dependencies that have to be installed as distribution packages have name updates. There were a handful between 10.04 and 11.10.
All in all the current design is to get things installed on a new server and then get out of your way.
The best thing to do is create some "play" git repositories and see what happens when you run any command. You can also run "git clone" on local directories to mimic actual remote repositories without having to set anything up. Don't worry about screwing anything up as you can just delete the directory and start over.
Based on what you've posted,you'd have a hard time calling anything that. And I'm including AIX, SunOS/Solaris, HP-UX, etc.
What you want is a UNIX or UNIX-like OS that comes pre-installed with GNU-based development tools. This is a choice in configuration, not a definition of what UNIX is or isn't.
The main issue is that Mac is probably not the usual target system for these builds (in comparison to a mainstream Linux distro). And as such differences in the version of the compiler, the set of libraries, installed dev tools, etc. may lead to build issues. You might have to download a few more things or know to add or override compiler or link flags.
Even with the latest Ubuntu or Fedora distro, you still run into having to know that you might need to install dev files to get a build from source to work (recent example for me is pcre libs for nginx).
Throwing in the additional information that exists outside their system can lead to even better and timely recommendations.
Also be aware of the original licensing for the code. If it's any more than attribution you'll need to determine how it affects the rest of your code and if you might need to reimplement.
In many cases, the end results appear identical. However, I'd rather the upcoming engineers, scientists and mathematicians be banned from using calculators for anything more than basic arithmetic until they prove they do understand the concepts.
And as much as I'd like being truly open as an ideal, it falls apart when you're dealing with competition (not cooperation) and money. At best you try to keep things open enough.
You tend to split repositories based on team responsibilities. I doubt that every developer needs access to update all million+ files.
What this comes down to is that they've made certain architecture decisions that ideally would be changed but it's not possible to do so at this time.
You don't spill internal processes and configurations without some kind of disclosure agreements and certainly not in a public forum.
Since "status" and "commit" perform fairly well after the OS file cache has been warmed up, that probably can be resolved by having background processes that keep it warm. (Also, how long would it take to just simply stat that number of files? )
The issue of "blame" still taking over 10 minutes: We need to know far back in the repository they're searching. What happen if there's one line that hasn't been changed since the initial commit? Are you being forced to go back to through the whole commit history?
How old is the repository? Years? Months? I'm probably guessing in the at least years range based on the number of commits (unless the developers are extremely commit-happy).
At a certain point, you're going to be better off taking the tip revisions off a branch and starting a fresh repository. It doesn't matter what SCM/VCS tool you're using (I've been the architect and admin on the implementation of a number of commercial tools). Keep the old repository live for a while and then archive it.
You'll find that while everyone wants to say that they absolutely need the full revision history of every project, you rarely go back very far (aka the last major release or two). And if you do need that history, you can pull it from the archives.
If you're trying to just simply take someone else's IP and make money off their work without their consent, that's something else. Negotiate a license and get out of the grey zone.