Descrizione del CVS
===================

Il CVS (concurent version system) è uno strumento a linea di comando che
consente di mantenere lo stato individuale (versioni differenti) dei
files in una rete locale LAN (Local Area Network) o geografica WAN (Wide
Area Network). Tipicamente, il CVS è installato su un server, gli altri
compiuter sono dei client CVS. Gli utenti possono, in modo indipendente,
estrarre i files nel loro sistema locale, modificarli, ed infine
aggiornarne le modifiche sul server. Più utenti possono lavorare
contemporaneamente sugli stessi files perché il CVS riconosce le
eventuali modifiche sovrapposte e ne notifica agli utenti i conflitti da
esse derivanti. Questa verifica è effettuata al momento
dell'archiviazione (commit), a meno che l'utente non abbia aggiornato
nel frattempo la propria la copia locale (update), operazione effettuabile
in qualunque momento. Pertanto, per usare il CVS, non è richiesta la 
connessione continua alla rete.

Inoltre il CVS consente di mantenere diversi alberi di versioni di un
progetto, unire i cambiamenti (merge) tra due versioni in una terza
versione, come pure fornire una lista dettagliata delle attività del
progetto. In definitiva si può dire che il CVS è uno strumento per
gestire progetti attraverso l'uso di internet ed è utilizzato in molti
progetti Open Source.


Descrizione di LinCVS
=====================

LinCVS è una Interfaccia Grafica per il client CVS a linea di comando,
su piattaforme Unix, Mac OS X e Windows. Consente di scaricare Moduli da 
un server (checkout), creare Moduli sul server (import), come pure 
verificare o aggiornare lo stato delle cartelle o dei singoli files. Le 
operazioni di base come aggiungere (add), eliminare (remove) ed archiviare
(commit) sono consentite come cose di ordinaria amministrazione, come pure
mostrare le reali differenze tra la versione di un file sul server e
quella della copia locale (sandbox), visualizzazione grafica ad albero
delle versioni, e supporto grafico molteplice alla gestione del
progetto. Tutte le operazioni sono registrate sul server CVS
(configurabile tramite la cronostoria (history)), e sono pertanto
comprensibili.

Per mantenere LinCVS independente dalla versione del CVS, LinCVS usa una
copia locale ma installata separatamente del CVS e pertanto potrebbe
lavorare sempre con l'ultima versione di quest'ultimo.

LinCVS parte ricercando i Progetti CVS presenti nelle sottocartelle
della cartella radice configurata dall'utente e li visualizza
sull'Ambiente di Lavoro (workbench). A questo punto tutte le operazioni
eseguibili su uno/più files o su intere cartelle sono accessibili
tramite i menu o semplicemente cliccando con il tasto destro del mouse.
Lo stato delle singole cartelle è continuamente aggiornato da LinCVS.
Ciò significa che l'icona della cartella indica all'utente se, per
esempio, una sottocartella contiene files con modifiche non ancora
archiviate, prima ancora di averla aperta. Lo stato di un progetto è
infatti visualizzato non appena LinCVS ha eseguito il comando 'CVS
status'. L'aggiornamento 'al volo' delle cartelle fa' sì che LinCVS sia
adatto alla gestione di grossi progetti con migliaia di files. LinCVS
consente tutte le modalità di connessione previste dal CVS, comprese
quelle che garantiscono la sicurezza degli accessi. La gestione del
Proxy è inoltre consentita utilizzando una versione modificata (patched)
del CVS, scaricabile dalla pagina di dowload del nostro sito.

Siccome LinCVS non modifica i dati interni usati dal CVS per la gestione
dei progetti, è possibile un uso concorrente di LinCSV con il CVS a
linea di comando. La funzione di visualizzazione dello stato delle
cartelle di LinCVS non viene in tal caso compromessa.

Sebbene LinCVS supporti graficamente quasi l'intera gamma delle funzioni
CVS è facile configurarne l'interfaccia grafica per le proprie esigenze
individuali. I menu a comparsa sono liberamente configurabili, mentre i
normali menu forniscono sempre accesso a tutti i comandi disponibili.
Una barra degli strumenti aggiuntiva consente poi di accedere
direttamente ai comandi di uso più frequentemente.

A differenza di altri programmi LinCVS è *veramente* facile da usare ;-) .


Elenco delle Caratteristiche
============================

Supporto Grafico di LinCVS:

Metodi di connessione:

    * locale/nfs
    * pserver
    * ssh
    * ssh-agent
    * proxy

Caratteristiche speciali di visualizzazione cartelle:

    * Tiene traccia dello Stato della Cartella
    * Abilitazione/Disabilitazione Albero/Cartelle
    * Continuo monitoraggio stato della cartella
    * Scansione Cartella 'al volo'
    * Apertura in 'Gestione Risorse'
    * Apertura nel terminale (shell)
    * Mostra Sottocartelle
    * Nascondi Sottocartelle

Caratteristiche Principali:

    * Profili utente/server
    * Gestione simultanea di più progetti
    * Supporto a file di testo/binari
    * Proprietà del progetto
    * Configurazione per progetto
    * Aggiornamento/ripristino alla diramazione della cartella
    * Possibilità di rinominare file/s
    * Aspetto ridefinibile dall'utente
    * Icone/Cartella delle Icone definibile dall'utente
    * Definizione delle cartelle d'installazione delle Applicazioni
    * Anteprima importazione files binari/di testo
    * Navigazione dei moduli sul server, anche senza il file dei moduli
    * Visualizzazione dei files senza estrazione (checkout), dalla
      Cronostoria o dall'Albero delle Revisioni
    * Cronostoria delle diramazioni/Etichette/Nome Progetto/Commento di
      Archiviazione
    * Visualizzazione a Schede per files CVS/Ignorati/Non CVS
    * Rimozione files Locali/dall'Archivio (repository)/Entrambi
    * Apri con (opzione di partenza per aprire una specifica cartella )
    * Creazione nuovo file/cartella
    * Visualizzatore interno delle Differenze
    * Finestra di dialogo interna per la risoluzione dei conflitti
    * Uso di programmi esterni per : Modificare File/Visualizzare
      File/Esplorare Cartelle/Terminale locale/Differenze/Terminale remoto
    * Modalità di Auto Aggiornamento dello stato configurabile per
      progetto (stato/stato aggiornamento/aggiornamento)
    * Funzioni di tracciamento per il debug
    * Guida in linea

Funzioni (comandi) del CVS:

    * Estrazione (checkout branch/tag/date)
    * Importazione (import)
    * Esportazione (export branch/tag/date)
    * Pulizia/Eliminazione (release/remove)
    * Stato (status)
    * Stato aggiornamento (query update)
    * Lista Utenti Modificatori (editors)
    * Lista Utenti Visionatori (watchers)
    * Inserzione/Disinserzione in Lista Visionatori (watch add/remove)
    * Rendi Modificabile (edit)
    * Rendi Non Modificabile (unedit)
    * Cronostoria (history)
    * Archiviazione (commit)
    * Etichettatura (tag add/remove/move/reset)
    * Creazione Diramazioni (branch)
    * Aggiornamento (update) a qualunque revisione
    * Connessione/Disconnessione (login/logout)
    * Blocco/Sblocco di Cartelle/File (lock/unlock)
    * Registrazione Operazioni Effettuate (log) (Albero delle Revisioni
      di un file, ridimensionabile graficamente)
    * Differenze (diff) con la copia in Archivio (repository)
    * Visualizzazione di un file (dall'Albero delle Revisioni o dalla
      Cronostoria (history))
    * Differenze e unione (diff and merge) dall'Albero delle Revisioni
      (log tree)
    * Unione differenze tra due revisioni in una terza revisione
      dall'Albero delle Revisioni (log tree)
    * Annotazione (annotate) (con funzioni di filtraggio multiplo)
    * Modelli per commenti usati dall'Archiviazione (commit)
    * Gestione dei files ignorati globale/locale/per ambiente/per
      cartelle (.cvsignore global/local/environment/per directory)
    * Aggiunta Files di testo/binari
    * Riaggiunta (resurrezione) di files (readd)

Di caratteristiche ce ne sono sicuramente molte altre (tutte quelle
dimenticate ;-), e si consideri che LinCVS è ancora in fase di sviluppo ...
