title: Flexible vs static branching (Git vs Clearcase/Accurev)
body: <p>My question is about the way in which Git handles branches: whenever you branch from a commit, this branch won’t ever receive changes from the parent branch unless you <em>force</em> it with a merge.</p>
  
  <p>But in other systems such us Clearcase or Accurev, you can specify how branches get filled with <em>some sort of inheritance mechanism</em>: I mean, with Clearcase, using a config_spec, you can say “get all the files modified on branch /main/issue001 and then continue with the ones on /main or with this specific baseline”.</p>
  
  <p>In Accurev you also have a similar mechanism which let’s streams receive changes from upper branches (streams how they call them) without merging or creating a new commit on the branch.</p>
  
  <p>Don’t you miss this while using Git? Can you enumerate scenarios where this <em>inheritance</em> is a must?</p>
  
  <p>Thanks</p>
  
  <p><strong>Update</strong> Please read VonC answer below to actually focus my question. Once we agree "linear storage" and DAG based SCMs have different capabilities, my question is: <strong>which are the real life scenarios (especially for companies more than OSS) where linear can do things not possible for DAG? Are they worth?</strong></p>