Some more notes on pristines-mode configuration. Naming of option values: agreed that we need to choose names carefully, avoiding ambiguity like 'mode=all'.
On the consensus that: (1) There should be a user config (file/registry/cmdline) option to set the desired pristines-mode that will be applied to a new/upgraded WC on checkout/upgrade. (2) The desired pristines-mode should be persisted as a property of the working copy, stored in the WC. (1) Once we implement a user config setting, then there automatically is a cmdline option: - svn co --config-option=config:working-copy:pristines-mode=FOO It would of course be nice to have an abbreviation, such as one of: - svn co --wc-option=pristines-mode=FOO - svn co --pristines-mode=FOO I suggest such abbreviation is a nicety to be added if we have the time and inclination, otherwise no big deal to leave it out. (2) The in-WC setting could be stored either as: (2a) a user-editable setting in (new invention) a 'wc/.svn/config' file; or (2b) a machine-editable setting in wc.db; plus a command for changing it later. The former (2a, a wc config file) has the nice property of being plain text user-editable and in the same format as '~/.subversion/config' and 'repo/conf/svnserve.conf'. No additional commands needed to change it. Introducing a new config file is, strictly speaking, an orthogonal change, and should be committed separately. The current patch in this thread contains the basic implementation. Additional work: - Document its existence. (Where?) - Generate the file, containing documentation and commented-out example settings, when creating a new WC. For the latter (2b, setting in wc.db), we would need: - some way to display it; - a separate command to change it later. These might be quite simple at the UI level, such as 'svn info' to display it and 'svn checkout --force' to change it. Even a simple UI change requires a non-negligible amount of code churn in the client and WC layer APIs. I don't see any advantages ("performance"? "locality"?) of storage in wc.db. Some people said it should be in wc.db. Evgeny wrote, "this sounds like a property associated with a specificwc_id in the database. I would say that this pretty much rules out optionsof storing it outside the wc.db." But (Brane wrote) "WC_ID is hardcoded to 1 pretty much everywhere." What do you all make of this now? Is a new WC config file plausible? Finally now, Lorenz brought up the idea of basing the mode setting on wc-props, so the user could use (a variant of) the existing properties mechanism for per-subdirectories and per-file control. That could turn into a powerful, more general mechanism for configuring any client-specific properties of a WC and its paths, not specific to controlling pristines. However, that seems a substantial and tangential design project, not something to tackle within pristines-on-demand. We might like to explore it further as a side project. - Julian