Trunk Based Development or GitHub Flow

Wait? these aren’t the same? They sure look very familiar!!!

they are very similar but there is one subtle difference, where the release originates

 

 

 

 

 

Using GitHub Flow you release from the branch

 

 

 

 

 

 

 

While with Trunk Based Development you release from master/trunk.

This subtle difference theoretically reduces the chances of regression.

However: if your department is successful in getting the longevity of branches to an absolute minimum: then this discussion will be a lot less important.

 

Source: https://trunkbaseddevelopment.com/alternative-branching-models/

Monolithic Source Control at Google

While you may wonder/think that Google uses git and various fashionable methods interacting with a distributed version control system, they do not!

Here is a great explanation of what Google does regarding source control and more importantly: why they do it this way

Source: https://trunkbaseddevelopment.com/game-changers/

Continuing on this train of thought: What would you use when you want to centralize all the code into 1 repo? Google ditched Perforce over something they developed themselves. While fun and challenging: not an option for us mere mortals.

Perhaps Microsoft comes to the rescue? The ‘New Microsoft’ says they are very pro-open-source and they tried to solve some of the problems with massive git repos by developing GVFS

Introducing GVFS

Soure: https://gvfs.io/ and https://blogs.msdn.microsoft.com/bharry/2017/02/07/more-on-gvfs/

With this implemented essentially you are centralizing the massive repo and only have a ‘sparse repo’ or view on the central repo.

If used right: perhaps this will be beneficial for making a step to Trunk Based Development.

Let’s give this a try!