programmazione, software May 15, 2007 3:12 pm (Save post)
Pare che la futura versione 1.5 di subversion, il noto software di revisione, avrà finalmente delle caratteristiche avanzate di merging, tra cui il cherry picking.
Il cherry picking è secondo me la funzionalità più utile che si possa avere in un sistema di controllo di revisione, e come l’esempio ottimale penso sia darcs, anche se credo che ormai altri software possano avvicinarsi come funzionalità (svk, mercurial?)
In pratica, immaginate una situazione del genere:
- alice pubblica il software XYZ
- bob scarica XYZ
- bob modifica helo.c (azione 1)
- bob rinomina helo.c in hello.c (azione 2)
- bob modifica quit.h (azione 3)
- bob invia l’intero pacco di cambiamenti ad alice
Ora: alice guarda la patch e decide che il cambiamento di nome è in realtà errato (il file deve veramente chiamarsi helo.c) ma vuole comunque importare le modifiche per quit.h.
Il cherry picking è proprio questo: alcuni cambiamenti sono indipendenti, ed è possibile scegliere selettivamente di importarne solo alcuni e ignorare il resto.
Volendo, alice può importare il solo cambiamento 1, e ignorare 2 e 3.
Se invece decide di importare 2 il sistema la costringe ad importare anche 1, in quanto c’è effettivamente dipendenza tra i due.
darcs rende l’operazione incredibilmente semplice, mostrando le varie patch indipendenti e permettendo di selezionarle singolarmente, a gruppi interdipendenti, tutte insieme o escludendono specificamente alcune (e nel caso, non mostrando le altre che ne dipendono).
Ovviamente questo sistema è tanto più utile quanto più lo sviluppo è decentralizzato, ma anche nell’ambito di SVN sarebbe utilissimo. Non rimane che attendere

