On 26.10.18 13:05, David Christensen wrote: > When programming, I tend to do check-in's when I make some kind of progress > (ideally, the code builds and the test suite passes).
Yup, the smaller edits of bugfixes aren't going to threaten code stability. > > The trap is when I work for a while, make some progress, make a wrong turn, > and then make a mess. A versioning file system makes it easy to get back to > "make some progress" and try a different turn. Yes. If the major hack can be limited to one file, I've been known to rely on Vim's undo capability to buffer all the changes long enough for a build and test. That could perhaps be extended to several editor instances for a couple of files, for a quick but disruptive tentative test of a divergent approach. The more robust way is though to develop on a VCS branch, check in prior to jumping off the cliff, and merge back to trunk when it's all sorted and tested. > > The compromise is to do a "work in progress" check-in prior to risky turns. Yup, but risk can grow after initial edits reveal that additional structural changes are needed in order to enable the revised strategy to be completely implemented. In response to that late awareness, I've been known to ifdef out the old, to leave it in the file for recovery if a massive stone ball comes rolling down the path I've hacked through the jungle. And yes, if CVS is the VCS you're most familiar with, then it's still fit for use. Traffic on the ML is rare now, but there is still some legacy use out there, and I use nothing else for my own versioning, having used it for multi-team international software development for many years. Its automatic merging capability alone is a dream. OK, git is quicker and preferred for big projects, but for small teams of greybeards who were weaned on it, CVS is still fine. (And if you're fumble-fingered and flummoxed by cryptic error messages, then take a snapshot of the entire repository before any major operation on it, so that deletion and replacement entirely undoes any embarrassing stuff-up. Erik