12 Factor App: Codebase

Codebase:

One codebase tracked in revision control, many deploys

As a developer you might have already come across the version control system like Git, Mercurial and Subversion. What these version control system does is, provide developers to have a centralized code repository for a project. That means if you are developing a web-app project, your code will be in any version control system like Git and keeping a track for each of the features as a separate branches for each developers who are working on it. There might not be sync between the each branch for example master branch won't be same as develop and develop won't have the same code as a developer 1 has. But, still the whole project is under one codebase and they can be merged at some point.

One codebase for an app is a must in 12 Factor App concept.

Deploys means the several branches for a specific codebase. Each developers have assigned to different features implementation. But the codebase is still remains same. Therefore, the first principle is a reasonably straight forward which illustrate the developers to have a tracked centralized version control system with many deploys (branches).