On Mon, Sep 30, 2002 at 04:33:49AM -0700, Johnson, Susan wrote: > I am wondering if CVS has the concept of lazy > branching, i.e. branching only on a per-need > basis.
Well, in one sense, CVS already does that internally. You apply a branch tag to the entire module, but for any given file, CVS only "creates" the branch when you check a revision into it. That's why they talk about branch tags being "magic". (Hmmm, maybe the manual should s/magic/lazy/g ... "magic" is pretty scary as a technical term, and not very illuminating.) But that's an internal detail, really. From your point of view, you have to branch the entire module. If you applied a branch tag to only the files you intended to change, and then went: cvs update -r myBranch you would find your sandbox containing *only* those files; the untagged ones would all go away. You've told CVS they're not on the branch, after all... CVS tags (both branch and release) mark the state of the entire module, not just deltas from some previous state. Of course, you could just update the files in question: cvs update -r myBranch file1 file2 file3 ending up with some files in your sandbox on the branch, and others on the trunk. But that would be failing to use CVS to full advantage. If you later decided to modify file4 as well, you'd have to remember to branch it too, and forgetting would mess up your trunk. If you just branch the entire module, you don't have to do all that error-prone bookkeeping, since CVS does it for you. Indeed, I believe that that bookkeeping was pretty much the whole reason CVS was written -- that was its added value over raw RCS. Since then, of course, it's acquired other advantages, like client/server, but that was the original point. -- | | /\ |-_|/ > Eric Siegerman, Toronto, Ont. [EMAIL PROTECTED] | | / The acronym for "the powers that be" differs by only one letter from that for "the pointy-haired boss". _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs