do people generally make associations between app version and config
set V->C?
how do people choose the right combination of (application version,
config version/set) when roll back to some earlier version is required
in any one environment?
"Le persone" non fanno cose del genere "in generale" nello sviluppo del software. Ci sono dozzine di modi in cui questo può essere implementato nel software, e il modo "giusto" dipende da un sacco di cose. Ad esempio,
- quante installazioni hai per la tua applicazione?
- ogni tipo di installazione ha una configurazione diversa?
- ogni tipo di installazione consentirà a molti utenti con diverse configurazioni?
- quale ciclo di vita ha la tua applicazione e in che modo la struttura di configurazione cambia durante l'intero ciclo di vita (è retrocompatibile o compatibile verso l'alto?)
- che tipo di infrastruttura di backup / ripristino è disponibile e le configurazioni possono essere facilmente copiate insieme all'applicazione?
- È un'applicazione di database, un'app di destinazione, un'app server, un'app per smartphone, un'app incorporata?
- possono essere installate più versioni in parallelo in un ambiente?
- Cosa succede quando una configurazione viene persa, può essere facilmente ripristinata / ricreata?
Solo per darti un esempio: MS Office è disponibile nelle versioni "2003", "2007", "2010", "2013" ecc. Puoi installarli per lo più in parallelo, ciascuna versione con una configurazione separata, per ogni utente, e probabilmente anche una configurazione specifica per macchina. Le configurazioni specifiche dell'utente sono memorizzate in cartelle diverse per versione, si potrebbero teoricamente eseguire il backup e ripristinarle individualmente (sebbene suppongo che la maggior parte degli utenti di Office non lo faccia, se la macchina fallisce, installare nuovamente il programma e ricreare manualmente la configurazione originale). Come si vede, per questo tipo di applicazione entrambi i suggerimenti di @MainMa sono completamente inadatti: non esiste né un "sistema di controllo della versione" né un database in cui la configurazione dell'utente possa essere memorizzata .
Altri programmi potrebbero funzionare in modo completamente diverso, perché se una configurazione viene persa, un sistema di produzione critico potrebbe fallire, il che potrebbe avere un serio impatto finanziario per la loro attività. Quindi devi guardare il tuo tipo di applicazione, accendere il cervello e decidere in base a quale categoria cade.