Combinazione dei numeri di versione dei componenti dell'app

0

Ho un'app composta da più componenti diversi, ognuno con il proprio numero di versione e cronologia. Vorrei creare un numero di versione dell'intera applicazione, preferibilmente in qualche modo basato sui numeri di versione dei componenti. Non sono sicuro che sia possibile, ma vorrei:

  • Il numero di versione è univoco per ciascuna versione dei componenti, in modo che quando aggiorno il numero di versione di uno dei componenti, anche il numero di versione dell'intera app cambierà e il numero non deve essere ambiguo in modo tale da poter fare riferimento a qualche altra costellazione di componenti.

  • Sarebbe bello se ci fosse un modo per invertire la procedura per passare da un numero di versione combinato per vedere quali versioni dei componenti è costituita da.

  • È anche bello se il numero di versione combinato non è troppo lungo per ricordare

  • È un vantaggio se il numero di versione combinato aumenta sempre con l'aumento del numero di versione di un componente.

Sono consapevole che alcuni di questi desideri non sono possibili da accostare insieme (come short AND reversable dato che si perderebbero le informazioni quando si accorcia)

L'approccio più semplice è ovviamente quello di aggiungere il numero di versione insieme in una lunga fila, ma sarebbe troppo lungo per essere pratico. Un altro è creare un qualche tipo di hash, ma non sarebbe molto leggibile.

C'è un modo standard per farlo? O dovrò nominare manualmente la versione principale e prendere nota delle versioni dei componenti in cui consiste?

    
posta DukeOf1Cat 20.01.2014 - 11:28
fonte

2 risposte

1

Ecco a cosa servono i sistemi di controllo delle versioni . Configurati e utilizzati correttamente, consentono di tenere traccia delle versioni rilasciate insieme a tutte le loro dipendenze utilizzate.

Per ottenere una scorciatoia dal numero di versione "ufficiale" alla revisione del codice sorgente, i numeri di revisione CVS possono essere compilati nei binari in modi diversi. La maggior parte dei CVS offre anche un supporto integrato per questo. Ad esempio, inseriamo tali informazioni nelle risorse della versione dei nostri binari di Windows e usiamo SubWCRev per alcuni casi speciali.

Se hai bisogno / vuoi che tutte le informazioni sui componenti vengano utilizzate come informazioni leggibili dai tuoi programmi, aggiungili alla casella "Info / Informazioni" o qualunque sia l'equivalente. Se lo fai in modo intelligente, ad esempio usando un campo di modifica in sola lettura, chiunque sarà in grado di copiare + incollare le informazioni, se necessario.

    
risposta data 19.02.2014 - 18:59
fonte
0

Per il tuo ultimo requisito (monotonicità nelle generazioni di numerazione) non hai specificato altro (ad esempio alcuni componenti hanno un impatto maggiore e quindi anticipare la versione totale in passaggi più grandi) quindi sarebbe facile escogitare una semplice aggiunta di tutte le versioni numeri che garantiscono numeri sempre crescenti sullo stesso ramo (ovvero avanzando di un solo componente), ma l'impossibilità di definire un ordinamento totale renderà questa soluzione poco attraente. OTOH la capacità di ordinare approssimativamente il numero di versione totale a prima vista è una delle più importanti, altrimenti potresti utilizzare una funzione hash completamente criptica. Quindi, chiarire innanzitutto se è possibile definire una gerarchia di componenti in base alla loro importanza. Altrimenti, solo una funzione in grado di guardare indietro nella storia (in un database del tuo sito) è in grado di produrre e decodificare i numeri di versione.

    
risposta data 20.01.2014 - 13:58
fonte

Leggi altre domande sui tag