If you were really careful, you would use a "stack discipline" in
your day to day development, too. That is, the ideal thing from
Monticello's point of view would be that, every time you started a
new set of changes, you reverted back to the earliest version that
could support them and continued from there. If the next changes you
make are unrelated to those, you revert back again and branch. Then
if both of those changes are required to do the next changes, you
merge the two resulting versions and use that as the baseline going
forward. But you shouldn't do them linearly, because that implies to
the versioning system that the second changes are dependent on the
first, and you'll have trouble if you later want to use them on their
own. Now, I don't do this much in practice, because it's a hassle,
and not the way I'm used to working. But it would be interesting to
see if this awareness of the dependence and independence of sets of
changes could be integrated into the development environment well
enough that it was a natural and pleasant way to work.