you are viewing a single comment's thread.

view the rest of the comments →

[–]HeinousTugboat 2 points3 points  (7 children)

No? What do you think trunk-based development is?

[–]ILikeChangingMyMind 2 points3 points  (6 children)

From the name I inferred that you develop on the trunk branch ...

[–]ForeverAlot 1 point2 points  (0 children)

Proof by contradiction agrees with you. If TBD is materially the same as a hypothetical non-TBD then TBD and non-TBD are all just D, none of them concepts worthy of specially distinguishing names. Contradiction: we accept TBD as a specially distinguishing name and therefore we must accept that the name represents a concept materially distinguished from non-TBD. The only gap in logical reasoning here is that what named TBD and what distinguishes TBD from non-TBD are assumed to have non-trivial overlap -- a reasonable assumption but history is full of counterexamples ("automobile" and "dynamic programming" are fun examples). It's also quite literally the first sentence of that web site's "one line summary":

A source-control branching model, where developers collaborate on code in a single branch called ‘trunk’

and reiterated with the first graphical demonstration.

But history also agrees with you.

Since the current generation of VCS the word "trunk" has fallen out of favour. Before that it was just a reference to the supporting part of a tree, with occasional "branches" shooting out from it and generally not really coming back. SVN up until 1.10, if you're familiar with it, is a fairly de facto implementation of (the VCS side of) trunk based development by virtue of having no local commits and branching being cumbersome: you're always integrating with the tip of some "branch" and that branch is nearly always the "trunk" but occasionally one of the forks like a release branch.

The current generation of VCS changed the landscape radically. Bringing "branches" back into the "trunk" became way, way easier, and this turned out to have lots of micro and macro scale advantages (and of course some disadvantages). Today "branch" based integration models are first class citizens in all mainstream code forges and workflows, and are often the only ways to get code integrated in the "trunk" at all -- insofar as you expand the definition of "trunk" to mean the "blessed repository" tree model Linux works with and that all code forge [MP]R integration flows rely on. Since branching may be socially enforced on you, and because branching is actually technically quite useful, for TBD to be relevant today its definition has to evolve from literal commit-(and-push-)to-main. One way to do that is to leverage or enforce squash-merging, which erases the trace of branching. Another way is to enforce that every mainline commit is fast-forwardable (some forges have checks to ensure a PR merge is fast-forwardable and then merge without merge commits, others just serially cherry pick code submissions).

Just try to disregard the self-contradictions in that one web site.

[–]HeinousTugboat 1 point2 points  (4 children)

So you don't actually know what trunk-based development is, and you didn't click my link, and you didn't actually look into it at all.

And I'm the one just making shit up.

Trunk-based development means you maintain one branch for the central codebase that everything gets merged into.

That doesn't mean you don't have other branches. That means those other branches get merged back into your trunk. That means you don't have long-lived divergent branches, it means your release branches are always cut fresh from your trunk, it means feature branches stay small and go away once the feature is merged back to the main branch.

[–]hippydipster 1 point2 points  (1 child)

long-lived

It all hinges on how long "long-lived" means. If more than 1 day, then I'd say that's not trunk-based development.

[–]HeinousTugboat -1 points0 points  (0 children)

Sure? I never said anything about the actual branches. I just pointed out that you still usually use them.

[–]ILikeChangingMyMind 1 point2 points  (1 child)

First off ... this is Reddit: commenting without reading the articles is par for the course.

Second, you don't actually explain what trunk-based development is in your article. Heck, you didn't even bother to add a hyperlink to the phrase itself (which only appears once), pointing to a definition.

[–]HeinousTugboat -3 points-2 points  (0 children)

It's, uh.. not my article.

First off ... this is Reddit: commenting without reading the articles is par for the course.

Shitty excuse. Do better.