Branching Strategies Explained

Branching Strategies Explained

DevOps Toolkit

3 года назад

125,596 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@Muzyk89
@Muzyk89 - 20.11.2023 23:48

You know, it's funny how you dislike the two branching strategies that are probably the best for extremely serious production deployments.

Ответить
@abdelkaderkaouane1944
@abdelkaderkaouane1944 - 07.11.2023 17:01

hhhhhhhhhhhhhhhhhh.
You are amazing.

Ответить
@drmvh
@drmvh - 05.11.2023 20:00

Hahaha Gitflow = job security

Ответить
@vedadburgic7530
@vedadburgic7530 - 18.10.2023 11:09

Well done for summarizing and comparing all of them 👏👏👏

Ответить
@thosethere
@thosethere - 03.10.2023 04:18

you make the topic interesting, thank you.

Ответить
@user-xb8ri9eo5u
@user-xb8ri9eo5u - 27.09.2023 07:34

you're not very good at explaining git flow, too much of your own thought on this flow, and is wrong.

Ответить
@CC-ij3ky
@CC-ij3ky - 20.09.2023 01:06

That madness caused by git-flow, I am experiencing it in my veins these days as I switched to a team that uses git-flow. When I share my opinions with the more experienced engineers, they keep producing arguments against me which freaks me out.

Ответить
@ruess
@ruess - 07.09.2023 07:48

Best video on guy I’ve ever watched

Ответить
@WallyBricks
@WallyBricks - 23.08.2023 19:04

great explanation!

Ответить
@ulhaqanwaar1
@ulhaqanwaar1 - 20.08.2023 10:26

To be honest I don't see any difference between GitFlow and Feature Branch. They're actually the same except Feature Branch has no mechanism for Release management. In GitFlow the release branch is never merged with any branch except to master/main not to dev. You cannot merge anything into release either they are like disposable branches which can either be successful or failed.

Ответить
@dansplain2393
@dansplain2393 - 21.07.2023 16:41

Unexpectedly funny!

Ответить
@proprajyot
@proprajyot - 19.07.2023 22:07

This is a great video! We used to follow gitflow, but now swited to release based braching. But the issue we only have 2 environment. As per gitflow, develop and prod. How can manage these in release based branching.

Ответить
@mohammadhoseinbalkhani7779
@mohammadhoseinbalkhani7779 - 07.07.2023 00:21

Somebody explain to me why Gitflow is not a good idea? I have been in many companies and experienced my self that many of the Gitflow's ideas has its own usecases and resolve so many problems.

Ответить
@himanshusingh-fl4bp
@himanshusingh-fl4bp - 26.06.2023 00:53

Hey Dev need Assistance , we have One big monolithic application , we work on Agile PI model like 3 month work panned advance and requirements break in to stories and plan multiple spring , for that PI , there are many thing we can only test in integration environment because of hardware software etc , for Sure trunk base or feature base development wont work for us and release base is too complex , was thinking to modify bit on fork base , So we have 2 branch main and integration close on each other thn dev create feature branch from main work on it after test code review merge to integration branch , after integration testing core team decide if thy want to release the feature or not , if they want they can push to master and it goes to prod

Ответить
@user-du6hs8fe8x
@user-du6hs8fe8x - 24.06.2023 03:09

You forget the backup aspect of the central repo. When you only push to the main line and do not create branches, then you do not have that backup component and at some point some work will get lost if you do not push your work to the central server. Often people want to push to a server before they leave the office or it is an requirement of the company.

Ответить
@olaekdahl
@olaekdahl - 16.06.2023 01:39

Thanks!

Ответить
@cathalsurfs
@cathalsurfs - 28.05.2023 14:54

Excellent presentation. Immediately subbed. Thank you from Ireland.

Ответить
@Checkitwithamagnet
@Checkitwithamagnet - 26.05.2023 16:14

Excellent video. Thorough and clear enough for someone who has almost no experience with this!

Ответить
@milanpanic3755
@milanpanic3755 - 17.05.2023 16:06

You don't know gitflow apparently, because it is not what you described.

Ответить
@MsUlmer
@MsUlmer - 02.05.2023 20:54

Warm suggestion, move away from using images of real people for expressing madness there is no right answer there that will not get you blow back based on race and gender.

Ответить
@KnThSelf2ThSelfBTrue
@KnThSelf2ThSelfBTrue - 24.04.2023 23:47

I think release branches can make sense for mobile applications or IoT software where you simply can't deploy updates on-demand, or force users to update remotely.

Ответить
@vinaysingh5469
@vinaysingh5469 - 20.04.2023 12:56

What an easy and interesting explanation!👍

Ответить
@lebronkiddz
@lebronkiddz - 11.04.2023 01:31

Oh and Job Security hahaha ….People Factors are the worst in tech industries…..a bunch of car sales (used car sales) that work in the tech space…unfortunately

Ответить
@lebronkiddz
@lebronkiddz - 11.04.2023 01:31

I completely agree with the Test Coverage of >95% should graduate their Strategy to Trunk Based…..otherwise, I can say lots of Engineering Manager or LEAD, pretty much hiding behind Waterfall with few merging every other day….I’ve seen lots of self-proclaimed DevOps engineers for big enterprise proudly thinking they are a DevOps engineer….true and true…. 😂

Ответить
@user-jd3lh4cj8z
@user-jd3lh4cj8z - 28.03.2023 14:24

You deserve a million thumbs up!

Ответить
@Xaito
@Xaito - 23.03.2023 23:56

I don't get why release branching is preferable to git flow? If you add hotfixes to a previous release you'll want them in your develop branch anyway, so you'll not have to fix the same issues over and over. That means you have to merge it to release and develop in some shape or form anyway?

Ответить
@radekcrlik5060
@radekcrlik5060 - 14.03.2023 21:53

Great explanation even today :) I've been feeling lately that every other company developed their own branching strategy with its own name :D Even in our team, I have no clue where to categorize our strategy. It is a mix of feature, release, and even maybe an environment strategy. I guess I will never know if there is a team that uses the similar technique :D Cheers!

Ответить
@DTQC
@DTQC - 09.03.2023 23:15

Git Flow is the symptom of when having a very good hammer then everything looks like a nail.

I would also add to the list of unspeakable mad strategy git sub-modules as a way to police where developers push things.

Ответить
@codesrinivas2816
@codesrinivas2816 - 04.03.2023 23:32

you solved my confusion by summarizing the branching strategies once and for all tysm

Ответить
@r3jk8
@r3jk8 - 02.03.2023 08:43

Great job on this video! It was spot on and also had some really funny moments. “Cake made of mud..” 😂

Ответить
@francistembo650
@francistembo650 - 25.02.2023 20:04

I laughed at Git flow segment like I was watching a standup show haha.

Ответить
@DoIneedthishandle
@DoIneedthishandle - 22.02.2023 17:01

Do you have videos explaining the workflows of feature-branches and release-branches little bit more in depth?

Ответить
@DoIneedthishandle
@DoIneedthishandle - 21.02.2023 22:13

Are feature-branches same as GitHub-flow? Thanks

Ответить
@DoIneedthishandle
@DoIneedthishandle - 21.02.2023 21:52

Thanks for your video. I really like it but I have to say your opinion on the Git-Flow strategy was a big surprise to me, probably because I worked at the place using it and it was the least painful environment for me as developer (and I know we had release management but it did not sound in any way complex compared to for example Release Branching strategy). So, I have a question for you. I know your opinion on it already but it looks like you favor environments with fully implemented CI/CDel/CDev pipeline and I do, too. However, the reality is these dont get implemented just over the night. The things that need to be set in the motion are not as simple. There needs to be an agreement "we need to change", that needs to be approved by the higherups, there need to be team agreement to move that direction etc, etc. In lean environments, these can take weeks or months, in not-so-lean environments, these can take years or never come to materialize. What do you recommend as a strategy fitting a team where (a) there is no CI/CD in place, (b) there is slow release cycle, 1-3 deployments a year, (c) teams (as you described for "release-branching" collaborate only once one team is ready to merge into the trunk), (d) there is no need to maintain multiple versions of the same software, and (e) Our features are not small to fit into 1-2 day living branch only, but last usually months? Thank you and much appreciated. Really like your video, so many good points. Thumbs up!

Ответить
@myronww
@myronww - 11.02.2023 16:38

So your madness levels only take into account the developer perspective. Typically the madness level will be inversely proportional for the Quality organization for these branching strategy. For example, you rated trunk based development with a madness level of low. For QA, the madness level would be high because the difficulty of ensuring that a bad change does not go out the door is much more difficult.

Ответить
@nathanhawk1580
@nathanhawk1580 - 18.01.2023 23:37

Excellent video! I think you left out the biggest madness of all -> Not having a documented strategy, ending up with some crazy mix of all of the above and hundreds of branches -> Madness Level = Suicidal... Might be worse than using Outlook for source control.

Ответить
@DaveBizz
@DaveBizz - 17.01.2023 17:37

Very well illustrated. I don't think you should waste your time watching any other videos about branching strategies

Ответить
@matswessling6600
@matswessling6600 - 14.01.2023 01:42

? git flow is easy. you can focus pn the actual implementstion. branching, merging and PR are easy.

Ответить
@esbrasill
@esbrasill - 03.01.2023 16:39

hmmm. Were i work they want to do environment branching, but keep some branches in different repositories

Ответить
@Ginjitzu
@Ginjitzu - 15.12.2022 02:34

My team started using git flow shortly after I joined the teama few months ago. I was brand new to the team, and don't have a tonne of experience with branching strategies and yet even without knowing exactly why, I just had an almost instinctive revulsion to the new strategy, but as the team newbie, I kept my concerns to myself. Tomorrow though, I think I'm going to share this video with my managers and just let them watch it and take from it what they will.

Ответить
@kevon217
@kevon217 - 07.12.2022 19:59

Appreciate this breakdown, thanks!

Ответить
@def1nt
@def1nt - 05.12.2022 15:48

This was a good explanation and illustrated even. Thank you for helping. <3
Now with this knowledge to find a solution for my own workflow.

Ответить
@agilethoughts6619
@agilethoughts6619 - 26.11.2022 19:47

Nice presentation! Thank you!

Ответить
@ChrisGWarp
@ChrisGWarp - 22.11.2022 03:38

Interesting video; I liked it. With my 40 years of experience, I agree with most of it. There is an unstated assumption in what is presented here, especially with the trunk based dev. The assumption here is that whatever is in trunk/master/mainline = production. That is not always the case, and it is where I diverge from agreeing. This is due to Continuous Deployment, which I personally, am not a fan of. I prefer a human in the loop. I follow the Apache Maven approach. Yes, Forking and PR's are used [to good effect], but commits to master can (and sometimes do) create a dirty/broken master. But this is not a problem, as we choose when to perform a Release - it is not automatic - why I don't like Continuous Deployment. Once is a Release is performed, it's out in the wild, and we prepare for the next release. Always moving forward. Cut a Release, moving it through environments until it fails testing or hits Prod. You make this point well, where you point out that we're not deploying source into production (unless you're using Ansible!), we make packages and deploy them as need be. Why don't I care that trunk does not equal production? What if there is more than one? OS Libraries and some of my work places have more than one production, so having trunk represent 'production' what ever that is, is meaningless.
One thing that I'd add/challenge: I understand why you say that you need a disciplined team for trunk, but my experience shows that feature branching requires a higher level of maturity and discipline so that you DO limit branch lifetimes. Otherwise you end up in merge hell and everything comes to a sudden halt due to the inability to deliver any change.
So, I take the KISS approach for everything that I've ever done, trunk based dev has worked for me, and what I recommend. Only go more complex if you absolutely need too.
TBH, there was ONE exception, where there were monthly release branches with overlapping dev (due to testing resources), but we simplified things by never having to merge back to master (no point). R2210->R2211->R2212->R2301 etc.

Ответить
@_indrid_cold_
@_indrid_cold_ - 18.11.2022 02:11

This was outstanding, I loved every word of it. I’ve worked on most of these methods and cannot agree more with your evaluation.

Ответить
@TheDrezir
@TheDrezir - 14.11.2022 10:01

You are promoting not to actually create branches per environment. What is your suggestion on how to replace them? Becase we have now situation where we have 3 environments, multiple features. Each feature can be deployed out of order based on client's demand.

Ответить
@rudysetyo
@rudysetyo - 03.11.2022 09:52

Not all of it are correct and also not all of it are wrong, but thanks for making this.

Ответить
@privatename3621
@privatename3621 - 26.10.2022 04:00

This is a great summation of branching strategies, I give him that. But he grossly characterizes the real value behind mature branching strategies like git flow, which are the only kinds of sane ways of deploying complex, mission critical systems to a large user base where one mistake can shut down an entire streaming service, or take down the entire east coast of a cloud provider.

These silly "strategies" of directly committing to main/master/trunk or these juvenile short "loop-back" feature branches onto the same main line branch are not "strategies" at all. They are both hugely risky, and are a sign of either a single-person operation, or a very tiny dedicated team of developers with deep knowledge and "ownership" of the whole of the code base (or SME's in their specific sub-domains) who can get away with it, especially if the releases are infrequent and only minor patching is involved.

Otherwise, any large, mature company with sufficiently complex software releases cannot operate in a sane manner without "safe areas" in which Devs and QA folks can deploy to internal environments and thoroughly test changes before pushing them out the main/master "flume ride" direct to users. Anything else would be chaos and insanity. That's why mature shops use git flow and similar methodologies. It actually very orderly and sane for shops that use it. Unfortunately this guys completely mischaracterizes how companies use it and makes it sound like its madness or "difficult to merge". In actuality, for many large shops, the structure and regularity of of using a git flow approach makes this simple and easy with minimal surprises and a drumbeat of regularity. Such mature shop demands a feature/dev/release/main/hotfix type of separation of workflows just to keep things sane. Of course most of this is automated and in well-run shops with good communication, merge conflicts are actually very rare.

Bottom line is: You can either work out your issues in-house, before you push problems out to the world (and resolve any potential merge conflicts if that is what is needed), or you can rapid-fire commit changes close to your main line release branch and let the world find your issues, which then you have to fix in-house (which is what you should have done in the first place by giving it enough 'bake time' and human eyeballs to actually view and test it manually). It's your choice. And it's your reputation.

Ответить
@markokraljevic1590
@markokraljevic1590 - 17.10.2022 11:24

what do you think about vs code extensions that notify you in real time when you are about to make a conflict in a line so you can discus it with a colleague?

Ответить