tag:blogger.com,1999:blog-17568172.post5990706404626676618..comments2023-12-23T02:16:45.534-08:00Comments on iOS/C# Development and TDD: Branch-Per-Feature: Successful Transitions/Cleanup Between Sprintsmehttp://www.blogger.com/profile/10020257442950937925noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-17568172.post-40874256964830452622016-02-10T00:21:45.232-08:002016-02-10T00:21:45.232-08:00Nice work on putting together a very interesting p...Nice work on putting together a very interesting post. Fabulous ideas and very Well thought out and well written. <a href="http://seoexpert.com.pk/" rel="nofollow"> SEO Company in Pakistan </a>Anonymoushttps://www.blogger.com/profile/02892293902949772104noreply@blogger.comtag:blogger.com,1999:blog-17568172.post-34166223989560742272011-08-03T00:51:00.608-07:002011-08-03T00:51:00.608-07:00Wow! What does this data mean? Interesting! HP Pav...Wow! What does this data mean? Interesting! <a href="http://www.koobox.ca/brand-new-12-cell-laptop-battery-for-hp-pavilion-dv6-g50-g60-g61-g70-g71-black-8800mah-10-8v.html" rel="nofollow">HP Pavilion DV6 battery</a>Vicky Lianghttps://www.blogger.com/profile/01928737738205183833noreply@blogger.comtag:blogger.com,1999:blog-17568172.post-25336988843686993122011-07-17T13:06:55.936-07:002011-07-17T13:06:55.936-07:00Hi Martin,
Thanks for the feedback. The new TeamC...Hi Martin,<br /><br />Thanks for the feedback. The new TeamCity features sounds interesting. I don't mind the start-of-sprint tag usage in git though; it really stands out visually when quickly scanning the commits in gitk.mehttps://www.blogger.com/profile/10020257442950937925noreply@blogger.comtag:blogger.com,1999:blog-17568172.post-23310220956091311302011-07-17T13:05:21.163-07:002011-07-17T13:05:21.163-07:00Hi Mark,
Sorry for the slow reply. Weeks tend to ...Hi Mark,<br /><br />Sorry for the slow reply. Weeks tend to get busy and so I only get back to the blog on (intermittent) weekends.<br /><br />I guess the main reason for doing this would be to have decoupling between features. If my commits are interspersed with other devs commits on other features, there is little opportunity to remove some features and keep others at release time. It even gets painful mid-sprint should I want to back out of some of my own commits (eg. because of a change of approach)--because others commits are already have established dependencies on them.<br /><br />I've added a new blog post today focused less on git commands and screenshots, and more on the actual process.<br /><br />Cheers,<br /><br />Davidmehttps://www.blogger.com/profile/10020257442950937925noreply@blogger.comtag:blogger.com,1999:blog-17568172.post-38643182369471949682011-07-17T00:43:39.533-07:002011-07-17T00:43:39.533-07:00Mark:
"Interesting! It looks pretty complica...Mark:<br /><br />"Interesting! It looks pretty complicated with all the different branches you have to create. I'm sure I'd screw up with all those different names."<br /><br />This is a good point. If the process were to gain enough traction, we can expect to see something similar to gitflow, which is a set of scripts sitting on top of git ("porcelain") that facilitate the process, including naming, merge convention, etc.<br /><br />"Curious which problem you had which led to you using the branch per feature approach?"<br /><br />I suppose it depends on the complexity of your codebase, component architecture, and process.<br /><br />We look at it as an enhancement to gitflow, in the sense that we are removing the "trunk based development" aspect of it.<br /><br />For more info, check out the original gitflow post:<br /><br />http://nvie.com/posts/a-successful-git-branching-model/<br /><br />as well as @adymitruk's post on the "enhanced" version:<br /><br />https://plus.google.com/109096274754593704906/posts/R4qkeyRadLRUnknownhttps://www.blogger.com/profile/03843088427706531067noreply@blogger.comtag:blogger.com,1999:blog-17568172.post-14538044107447649842011-07-17T00:36:01.745-07:002011-07-17T00:36:01.745-07:00Hi Dave,
Thanks for putting this post together. I...Hi Dave,<br /><br />Thanks for putting this post together. It illustrates very well the process and the motivation for doing it.<br /><br />A couple of comments:<br /><br />Scaffolding<br /><br />At the start of an iteration, create a feature branch for the scaffolding. Once it's at a point that it can be used by other subsequent features, merge it back onto the integration branch. The start of sprint marker can then be placed at this merge commit instead.<br /><br /><br />Sprint cleanup<br /><br />Theoretically speaking, when a sprint is done, we could also nuke the -dev (integration) and -qa (RC) branches. The reason we do not do so is becuase we treat those as "long running" branches, only for the fact that we have some other infra that relies on them (e.g. the CI server).<br /><br />If our build server were smarter, for instance, we could configure it to automagically treat all branches with name *-dev as an integration branch, and create a build configuration for it accordingly (same for *-qa, etc). Were this the case, we could get away from having explicit "start of commit" commit markers, and just rely on the branch name (e.g. "jira-lrnrails-sprint2-dev").<br /><br />Interestingly enough, TeamCity 6.5 has some initial support (personal builds for DVCS), so it will only get better from here.Unknownhttps://www.blogger.com/profile/03843088427706531067noreply@blogger.comtag:blogger.com,1999:blog-17568172.post-59335303362926533682011-07-02T18:26:22.325-07:002011-07-02T18:26:22.325-07:00Interesting! It looks pretty complicated with all ...Interesting! It looks pretty complicated with all the different branches you have to create. I'm sure I'd screw up with all those different names.<br /><br />Curious which problem you had which led to you using the branch per feature approach?<br /><br />We only develop on master pretty much and it seems to work reasonably well - I havent seen any problems with taking that approach but presumably it didn't work out for you hence the new approach?<br /><br />Would be interested in knowing whyMark Needhamhttps://www.blogger.com/profile/10917383515164513079noreply@blogger.com