Newsgroup: it.comp.programmare
Titolo: utilizzare server CVS per oggetti database

Salve a tutti,
volevo mettere gli oggetti contenuti nel db nel CVS per tenere traccia
delle modifiche agli
oggetti dei miei database. Per creare e depositare gli script sql
degli oggetti dei dB sul cvs la procedura è piuttosto lunga.
Crearli mediante enterprise manager e successivamente depositarli.
Nessuno conosce una soluzione più snella ed efficace per fare ciò?
magari senza utilizzare vss...
Grazie per l'attenzione
Ale


Vuoi salvare le informazioni relative allo schema o ai dati?
Se si tratta di dati (o comunque del dbms) ci sono dbms che lo fanno di loro 
(vedi Oracle). Per ogni transazione (SQL o DDL) salva le info in modo da poterle 
riapplicare dopo e avere una foto istante per istante dello stato del db.
Se si tratta di script, allora puoi utilizzare un (quasi) qualsiasi aplicativo 
di versioning control. Il "quasi" è d'obbligo, poiché ci sono tanti applicativi 
di versioning control, con specifiche differenti e scopi differenti.
Purtoppo solo vss si integra con l'IDE di casa M$ (almeno AFAIK), quindi se 
cerchi qualcosa di "snello" nel senso di "integrato", c'è poco da fare.
CVS è un progetto vecchiotto (inizia ad avere i suoi annetti), ce ne sono altri 
che hanno anche una versione per Windows (la maggior parte gira sotto Linux).
<parte tediosa>
Ce ne sono alcuni che lavorano con un repository centrale (come CVS, o VSS) per 
i quali il lavoro più difficile è sincronizzare più repository differenti (ad 
esempio quando sposti un progetto da un repo all'altro) e richiedono sempre la 
visibilità del repo centrale.
Con altri, distribuiti, ognuno ha il suo repository e si singronizza con gli altri.
Ce ne sono anche alcuni che lavorano in modo misto (ossia possono funzionare sia 
in un modo che nell'altro).
Possono utilizzare protocolli proprietari, connessioni samba (come VSS), TCP, 
SSH, ecc. per comunicare con il server.
Quasi tutti (praticamente fatta eccezione per VSS) possono essere comandati via 
shell (riga di comando), molti hanno anche dei front-end grafici per le 
operazioni più frequenti (visione dello stato, commit delle patch, ecc.), alcuni 
anche front-end web-based.
Alcuni, come CVS e VSS lavorano a livello di file, altri generano patch che 
toccano più file contemporaneamente.
I vantaggi del primo caso è che hai facilmente una storia del singolo file, i 
vantaggi del secondo caso è che hai sempre una situazione coerente (se modifichi 
una funzione e tutti i moduli che ne fanno uso, a patto di committare una 
situazione coerente, nessuno può aggiornare un solo file ignorando gli altri, 
con CVS e VSS se aggiorni un file, devi essere tu a cercare di tirare su tutti i 
file necessari per riottenere una situazione coerente.
</parte tediosa>
Terminato il pistolotto tedioso (scusa se ho detto cose che magari sapevi già), 
ti sconsiglio Darcs (già utilizzato e vericato in team di sviluppo, non mi è 
sembrato molto affidabile per il tipo di utilizzo che ne facevamo).
Potresti provare a vedere Bazaar, se funzionasse sotto Windows ti consiglierei 
l'ottimo Git.
Molti di questi possono importare repository CVS (e di altri sw) in modo che tu 
non ti perda la storia pregressa.
Anche qui, il mio consiglio è di mettere in pista una macchina di test e provare 
diversi sw (passare da un sw all'altro è una procedura potenzialmente 
distruttiva). Verificare le caratteristiche di ciascun sw e poi passare alla 
produzione dopo un periodo di test.
Naturalmente i backup sono d'obbligo.
Chiave di ricerca in Google: Source Versioning Control
e buona ricerca.
Luca