Il controllo di revisione per umanisti
Jan Reister
Nazione Indiana
Il controllo di revisione
- un percorso intorno all'idea di revisione del testo;
- i problemi che nascono da diverse versioni digitali di un documento;
- i metodi e le tecniche dello sviluppo software nel controllo di revisione
- verso una soluzione informatica al processo di editing?
La revisione del testo
- concetti familiari: il manoscritto
- cancellare, annotare, aggiungere
- matita, penna, colori
- brutta copia, bella copia
- ogni stesura ricomincia da zero
- visto si stampi! - l'idea di versione finale
l'arrivo del personal computer
- la scrittura elettronica
- più semplice?
- revisione immediata del testo
- copia delle stesure più facile e veloce
- come tenere traccia delle revisioni?
- annotazioni interne
- salvare il file con nomi diversi o sequenziali (bozza, 01 02 03, data...)
- strumenti interni al word processor: annulla/ripristina modifiche, visualizza modifiche...
- personal computer = lavoro individuale
l'arrivo della rete
- scambio di informazioni e file: email, web, intranet...
- problema del controllo fisico: si moltiplicano le copie di un singolo file
- problema del controllo sequenziale: più persone modificano un file in tempi diversi
- problema dell'autorevolezza: visto si stampi?
- problema del disaster recovery: ho cancellato tutto!
- internet = collaborazione di gruppo
le soluzioni tradizionali
- la funzione di segreteria
- i metodi individuali
- alta efficienza individuale
- bassa efficienza di gruppo
- alto costo in tempo, risorse, lavoro
prendere a prestito la ruota
- il controllo di revisione nello sviluppo di software è una pratica consolidata ed evoluta
- i programmi software partono tutti da file di testo: i sorgenti, scritti in un linguaggio di programmazione convenzionale
- le pagine web sono testo in formato convenzionale: html
- lo sviluppo software ha sempre gestito progetti in rete, con molti file, molte persone, molte versioni di un oggetto
il problema della condivisione
nei progetti software la collaborazione e il lavoro sui file (sul testo) pongono una sfida:
dato un deposito di informazioni (un server di rete), permettere alle persone di condividere e modificare informazioni,
senza intralciarsi a vicenda.
- Repository: qualsiasi deposito strutturato di documenti, immagini, testi e programmi
- Rete: il mezzo che collega Repository ed utenti
il conflitto da evitare
due persone modificano lo stesso file
e cancellano a vicenda il lavoro
una soluzione: "blocco a turno"
- chi usa un file ne ha l'esclusiva e lo blocca
- alla fine del lavoro sblocca il file liberandolo per gli altri
- non è possibile lavorare contemporaneamente: serialità obbligata
- problemi amministrativi di blocco/sblocco (dimenticanze, crash)
- falso senso di sicurezza: i turni non risolvono le dipendenze tra diversi file
- funziona bene con i file binari (immagini, suono, impaginati)
il "blocco a turno" illustrato
solo una persona alla volta lavora su di un documento
gli altri aspettano il loro turno
la soluzione "copia modifica e fondi"
- i sistemi di controllo di revisione (RCS) usano la soluzione "copy modify merge"
- ciascuna persona preleva dal repository una working copy del progetto (file e directory)
- le persone lavorano in parallelo sulle loro copie personali
- infine le modifiche personali vengono immesse nel repository
- in caso di conflitto le diverse modifiche vengono fuse insieme o segnalate
il ciclo di lavoro: copy modify merge
- ceckout, modifiche locali, commit delle modifiche
- conflict, update, diff, merge
diff e merge visti da vicino
- confronto delle modifiche riga per riga
- modifiche (diff) su righe diverse di un testo si possono fondere (merge) automaticamente
- due modifiche alla stessa riga vengono segnalate e vanno risolte a mano
i vantaggi del controllo di revisione
- progetti complessi
- lavoro contemporaneo
- conflitti gestibili
- documentazione del lavoro svolto
- diario cronologico - viaggio nel tempo
- branch e tag in ottica di prodotto (concetti avanzati)
verso un RCS umanistico?
- il primo problema: i file da trattare
- file di testo (txt html...) - OK
- file binari: MSWord, OpenOffice, rtf - problematici
- file binari: programmi di impaginazione e layout - OK
- file binari: immagini suoni video - OK
- possiamo intervenire sui file binari del word processor:
- usare un formato standard intermedio (html)?
- usare un formato plaintext convenzionale (markdown)?
- quali convertitori?
Lavoro da fare
- serve il tuo contributo!
- definire il formato file di destinazione, es. html per pubblicazioni web;
- stabilire come trattare i testi in formato MSWord / OpenOffice;
- documentare i casi d'uso per utenti client in ambiente Windows Mac OSX e Linux