On Sun, Sep 18, 2011 at 09:53:47AM -1000, Joel Roth wrote: > Regarding RCS, here are a couple ideas > > 1. I think RCS is a great way to handle projects, and gives > a huge advantage over the simpler save mechanisms > of most other DAWs. So much so, that I wonder it wasn't thought of before. Do you happen to know if any DAW offers something similar (the way office suites offer revision control). > > 2. If we simply track State.*, polished_mix would be a > branch. > > nama> save polished_mix > > would create a branch, the file names State.* would be unchanged. I've never used any RCS very extensively, and haven't at all for any kind of "development" purpose for years and years... This said, I thought branches were more for parallel development, like a stable and a devel branch. In such terms, I would see polished_mix more as a "major milestone" than a branch. Each unnamed save could be an increment on the named save (a minor update), and named saves would start a new milestone line. Branches would be more for concurrent mixes, such as an instrumental and a vocal mix, which is not infrequent. We could even have an autosave mechanism which could create timestamped subincrements on the last minor save. > > 3. For the user, it might be convenient to have a state file > polished_mix as well. (It also might invite some confusion > if a user expected to be able to edit it directly. We could > discourage that with read-only permissions or a warning > at the top of the file.) What would be the possible reasons other than for debugging/hacking purposes for a user to actually want to edit the state file by hand? We could always allow a user to "check out" a given state file. > > 4. What do we do about .namarc, asoundrc, jack parameters, etc? > + if we don't track them, do we have a sufficiently > reliable representation of the project? I don't really see a reason to track those as they are little likely to change after work begins; and, if they do change, they should probably affect every stage of the project anyway. > + if we do track them, our RCS gets very complicated > + in general .namarc is project independent > + but specifics (such as Ecasound command-line arguments) could change > in a project > + we have code (long unused) for per-project namarc > + project-specific namarc may be confused with ~/.namarc, > modifying latter won't help if there is a > ~/nama/project/namarc I think there should be a project-specific config file to override certain parameters from .namarc (I'm thinking bit depth and frequency of workfiles here, but eventually maybe latency compensation also). Those project-specific files definitely should not be called namarc, though. > + maybe we need some way to archive a project, saving > the state of all relevant files, so that later > housecleaning does not break old project. That definitely would be very useful, though I guess tar could do the job just fine. Cheers, S.M.