Question

In: Computer Science

How do software companies use Git-based repositories like GitHub, GitLab, and other packages that handle version...

How do software companies use Git-based repositories like GitHub, GitLab, and other packages that handle version control?

Solutions

Expert Solution

At Microsoft, there's a movement to get onto Git from our ancient proprietary centralized version control system, and my impression is we're slowly but surely getting there. Open Source projects are hosted on Github, and proprietary projects are hosted in Git repos in Visual Studio Team Services.

Part of the reason that the migration is taking a while is that some code bases are way too big for Git to handle without slowing to a crawl. To deal with that, the VSTS team made the Git Virtual File System. Awesomely, they made it open source!

(note: I'm also not trying to speak for the whole company in any official way :) )

I've read about Facebook's use of Mercurial, so as of the last I've read they don't even use git. But I'd guess all of these companies use GitHub on some level. FB, for example does all of that open source stuff with GitHub, so I'd be curious about where they draw lines and choose where to do what.

Amazon as an organization is pretty modular - they have teams working on lots of different projects and technologies. While I would expect the CodeCommit team to be using CodeCommit, it wouldn't surprise me if other teams used other CVS systems. You can further splice that by teams on projects under AWS, teams that work on devices, teams that work on their shopping, teams that work on physical distribution, etc.

Google doesn't use GitHub, or Git. Instead they have their own, pretty insane system called Piper. There is only one Piper repository. Different projects are different subdirectories within the same massive repository.

As a result, there's no way to clone the entire repository to your computer. The standard way to handle this is something called Clients in the Cloud, or CitC. Basically the entire repository is mounted as a virtual filesystem, and you can do whatever you want with it.

It's not sane to try to fix merge conflicts in such a big repo. That problem is solved by (almost) eliminating branching or merging. Piper's branching support is very limited, and the only time it's used is for releases. Generally, there's only one branch.

There's also only one version of everything: the latest version. There's no old versions kept around for things that haven't updated to the new versions. If you make a backwards incompatible change to an API, you have to then go and update everything that uses your API. Which you can do, since everything's in the same repository. There are even automated tools you can use for this.

Version control is important for documents that undergo a lot of revision and redrafting and is particularly important for electronic documents because they can easily be changed by a number of different users. These changes may not be immediately apparent.


Related Solutions

Q. Two rival companies sell software packages that are perfect substitutes. The software is sold over...
Q. Two rival companies sell software packages that are perfect substitutes. The software is sold over the web as a download, so the marginal cost is zero. The demand for the software is Q = 900 – P. Assume that these firms are Cournot duopolists. Derive the reaction functions for the two firms, the quantity each will produce, and the market price that will be charged
Research the Disney Network. What other stations do they own? How do parent companies (like Disney)...
Research the Disney Network. What other stations do they own? How do parent companies (like Disney) influence the content (and advertising) seen on the networks they own? In your opinion, does the type of programming we watch affect our behavior or interactions with each other? Ethically, do networks have an obligation to provide a morally acceptable standard of programs? Why/Why not?
Piracy and counterfeiting of software, videos, and other products is a concern of many companies. How...
Piracy and counterfeiting of software, videos, and other products is a concern of many companies. How are businesses and consumers affected by this illegal activity? ( typing please.thank you.)
What ways do you think companies use customer-generated data do you think other companies use to...
What ways do you think companies use customer-generated data do you think other companies use to enhance decision-making? What are some of the ethical considerations that should be considered when using customer-generated data? Provide specific examples for each.
Use computer software packages, such as Minitab or Excel, to solve this problem. The owner of...
Use computer software packages, such as Minitab or Excel, to solve this problem. The owner of Showtime Movie Theaters, Inc., would like to predict weekly gross revenue as a function of advertising expenditures. Historical data for a sample of eight weeks follow. Weekly Television Newspaper Gross Revenue Advertising Advertising ($1,000s) ($1,000s) ($1,000s) 101 5.0 1.5 90 2.0 2.0 95 4.0 1.5 92 2.5 2.5 96 3.0 3.3 94 3.5 2.3 94 2.5 4.2 101 3.0 2.5 a. Develop an estimated...
Use computer software packages, such as Minitab or Excel, to solve this problem. The owner of...
Use computer software packages, such as Minitab or Excel, to solve this problem. The owner of Showtime Movie Theaters, Inc., used multiple regression analysis to predict gross revenue (y) as a function of television advertising (x1) and newspaper advertising (x2). Values of y, x1, and x2 are expressed in thousands of dollars. Weekly Gross Revenue ($1000s) Televison Advertising ($1000s) Newspaper Advertising ($1000s) 96 5 1.5 90 2 2    95 4 1.5 92    2.5 2.5 95 3 3.3 94    3.5 2.3...
Use computer software packages, such as Minitab or Excel, to solve this problem. The owner of...
Use computer software packages, such as Minitab or Excel, to solve this problem. The owner of Showtime Movie Theaters, Inc., would like to predict weekly gross revenue as a function of advertising expenditures. Historical data for a sample of eight weeks follow. Use computer software packages, such as Minitab or Excel, to solve this problem. The owner of Showtime Movie Theaters, Inc., would like to predict weekly gross revenue as a function of advertising expenditures. Historical data for a sample...
In order to compare two computer software packages, a manager has 15 individuals use each software...
In order to compare two computer software packages, a manager has 15 individuals use each software package to perform a standard set of tasks typical of those encountered in the office. Of course, in carrying out the comparison the manager was careful to use individuals who did not have an established preference of skill with either type of software, and 15 individuals were randomly selected to use software A first while the other 15 used software B first. The time...
In order to compare two computer software packages, a manager has 15 individuals use each software...
In order to compare two computer software packages, a manager has 15 individuals use each software package to perform a standard set of tasks typical of those encountered in the office. Of course, in carrying out the comparison the manager was careful to use individuals who did not have an established preference of skill with either type of software, and 15 individuals were randomly selected to use software A first while the other 15 used software B first. The time...
#1) Use computer software packages, such as Excel, to solve this problem. The owner of Showtime...
#1) Use computer software packages, such as Excel, to solve this problem. The owner of Showtime Movie Theaters, Inc., would like to predict weekly gross revenue as a function of advertising expenditures. Weekly Gross Revenue ($1,000s) Television Advertising ($1,000s) Newspaper Advertising ($1,000s) 105 5.0 1.5 90 2.0 2.0 95 4.0 1.5 92 2.5 2.5 93 3.0 3.3 94 3.5 2.3 94 2.5 4.2 a) Develop an estimated regression equation with the amount of television advertising as the independent variable (to...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT