Condividi tramite


Introduzione al controllo del codice sorgente

Aggiornamento: novembre 2007

Visual Studio supporta il controllo del codice sorgente mediante il livello VSIP (Visual Studio Integration Protocol) nell'ambiente di sviluppo integrato (IDE, Integrated Development Environment). VSIP è in grado di gestire diversi package del controllo del codice sorgente, in genere implementati come plug-in scritti nei protocolli appropriati. Un esempio di plug-in del controllo del codice sorgente è il plug-in LAN di SourceSafe supportato da Visual SourceSafe. Per informazioni dettagliate su questo plug-in, vedere la Guida in linea di Visual SourceSafe.

Nota:

Sebbene possano essere implementati mediante altri tipi di moduli software, i package del controllo del codice sorgente sono in genere disponibili in Visual Studio sotto forma di plug-in.

Il controllo del codice sorgente di Visual Studio è semplicemente un ambiente per l'esecuzione dei plug-in del controllo del codice sorgente di terze parti. Le relative funzionalità vengono quindi attivate solo dopo l'installazione di un plug-in. Per poter utilizzare un plug-in del controllo del codice sorgente di terze parti, in genere è necessario installare l'applicazione e/o i plug-in del controllo del codice sorgente di terze parti nei computer client e server del proprio sito. Una volta installati seguendo le istruzioni appropriate, l'applicazione e i plug-in saranno disponibili tramite Visual Studio. Le operazioni attivate variano a seconda del plug-in del controllo del codice sorgente. Per informazioni dettagliate sul funzionamento dei singoli package, vedere la relativa documentazione.

Per informazioni sulla progettazione del controllo del codice sorgente in Visual Studio, vedere la panoramica del controllo del codice sorgente nella Guida in linea di Visual Studio. In questa sezione vengono inoltre fornite tutte le informazioni necessarie per lo sviluppo di un package del controllo del codice sorgente di terze parti compatibile con Visual Studio.

Nozioni fondamentali sul supporto del controllo del codice sorgente in Visual Studio

Il supporto di base del controllo del codice sorgente in Visual Studio include l'impostazione delle opzioni relative all'ambiente e ai plug-in del controllo del codice sorgente, la selezione dei plug-in, l'accesso al database, il controllo delle versioni e la gestione dei progetti, delle soluzioni, dei file e dei metadati associati di Visual Studio. Il controllo del codice sorgente in Visual Studio impone inoltre l'applicazione di protocolli per il controllo degli accessi al database, ad esempio la modalità di lavoro Blocca-Modifica-Sblocca, in base alla quale un utente che desidera modificare un file deve estrarlo in modo esclusivo.

È importante tenere presente che l'interazione con un plug-in del controllo del codice sorgente richiede necessariamente che il controllo del codice sorgente venga utilizzato nei meccanismi di Visual Studio. Non è possibile utilizzare altre applicazioni client offerte dal fornitore del plug-in, ad esempio Gestione risorse Visual SourceSafe. L'utilizzo corretto dei meccanismi del controllo del codice sorgente in Visual Studio assicura che vengano aggiunti al controllo del codice sorgente solo i file corretti e che i file di progetto e di soluzione di Visual Studio vengano aggiornati con le informazioni appropriate specifiche del plug-in.

Configurazione e selezione dei plug-in del controllo del codice sorgente

Il controllo del codice sorgente di Visual Studio supporta la configurazione e la selezione dei plug-in tramite l'opzione Controllo del codice sorgente nella finestra di dialogo Opzioni. Per accedere a questa opzione è necessario scegliere Opzioni dal menu Strumenti di Visual Studio. La finestra di dialogo Opzioni consente di selezionare il plug-in che si desidera utilizzare per il controllo del codice sorgente e di impostare le opzioni di ambiente per il plug-in selezionato.

Prima di poter utilizzare le funzionalità del controllo del codice sorgente nell'IDE di Visual Studio, è necessario:

  • Determinare se sono disponibili plug-in del controllo del codice sorgente.

  • Se il plug-in che si desidera utilizzare non è installato nel computer, installare il prodotto di terze parti che supporta il plug-in, quindi riavviare Visual Studio per registrarlo.

  • Creare un database del controllo del codice sorgente in base alle funzionalità dello specifico plug-in.

  • Inviare a tutti i membri del team un collegamento al percorso del database.

Accesso al database

I comandi di base per l'accesso al database, ad esempio Estrai e Aggiungi al controllo del codice sorgente, sono disponibili nel menu File di Visual Studio. Questi comandi, tuttavia, vengono attivati solo dopo che è stato selezionato il plug-in del controllo del codice sorgente che si desidera utilizzare. Quando si utilizza uno di questi comandi, il plug-in selezionato richiama l'ambiente e/o la funzionalità di terze parti corrispondente per completare l'operazione associata.

Alcune operazioni di accesso diventano attive subito dopo la selezione del plug-in, mentre altre sono disponibili solo se è stato selezionato anche un progetto, una soluzione o un file di Visual Studio in Esplora soluzioni. Il comando Aggiungi al controllo del codice sorgente, ad esempio, può essere utilizzato una volta selezionato un plug-in, mentre il comando Archivia richiede anche la selezione di un elemento in Esplora soluzioni.

Gestione dei file dal controllo del codice sorgente

File che possono essere aggiunti al controllo del codice sorgente di Visual Studio:

  • File di soluzione (*.sln).

  • File di progetto, ad esempio *.csproj e *.vbproj.

  • FIle di configurazione dell'applicazione, basati su XML, utilizzati per controllare il comportamento di un progetto di Visual Studio in fase di esecuzione.

File che non possono essere aggiunti al controllo del codice sorgente:

  • File delle opzioni utente della soluzione (*.suo).

  • File delle opzioni utente del progetto, ad esempio *.csproj.user e *.vbproj.user.

  • File di informazioni Web, ad esempio *.csproj.webinfo, *.vbproj.webinfo, che controllano il percorso dell'elemento virtuale di primo livello di un progetto Web.

  • File dell'output di compilazione, ad esempio *.dll e *.exe.

Propagazione delle modifiche allo spazio dei nomi

Il controllo del codice sorgente di Visual Studio supporta la propagazione delle modifiche allo spazio dei nomi nei plug-in del controllo del codice sorgente. La propagazione delle modifiche viene applicata alle operazioni di eliminazione, ridenominazione e spostamento. Se si richiede un'operazione per la quale è attivata la propagazione delle modifiche, quando un utente archivia l'elemento e gli altri utenti lo recuperano, il plug-in del controllo del codice sorgente modifica la copia di lavoro dell'elemento incluso nel controllo del codice sorgente, la copia master presente nel database e le copie degli altri utenti.

Gestione delle soluzioni e dei progetti da parte del controllo del codice sorgente

Quando si aggiunge una soluzione o un progetto al controllo del codice sorgente, il plug-in deve innanzitutto identificare un elemento unificato di primo livello per l'elemento aggiunto. La radice corrisponde al percorso della directory principale per tutte le cartelle di lavoro e i file che fanno parte della soluzione o del progetto.

Un elemento unificato di primo livello è in genere associato a un percorso fisico su disco. Tuttavia, se una soluzione contiene file o progetti che risiedono su più unità disco, non sarà disponibile alcuna cartella fisica alla quale associare un elemento unificato di primo livello. A differenza di un elemento unificato di primo livello del controllo del codice sorgente, una soluzione può risiedere su più unità. Per gestire questa situazione, nel controllo del codice sorgente di Visual Studio è stato introdotto il concetto di elemento super-unificato di primo livello, ovvero un contenitore virtuale nel quale vengono inseriti tutti i progetti e i file di una soluzione inclusa nel controllo del codice sorgente.

Quando si aggiunge una soluzione utilizzando un plug-in del controllo del codice sorgente con funzionalità avanzate, viene creata nel database una cartella principale vuota per la soluzione, nella quale verranno inseriti tutti gli elementi presenti in una soluzione inclusa nel controllo del codice sorgente. Per impostazione predefinita, questa cartella è <nomesoluzione>.root.

Nota:

Quando si aggiunge un singolo progetto al controllo del codice sorgente non viene creata alcuna cartella .root.

L'utilizzo della radice della soluzione offre i seguenti vantaggi:

  • Riduzione del numero di richieste all'utente. La radice della soluzione consente di limitare il numero potenziale di associazioni del controllo del codice sorgente per una soluzione, riducendo quindi al minimo gli interventi dell'utente quando si aggiunge una soluzione al controllo del codice sorgente e si eseguono altre attività.

  • Incapsulamento dei progetti. La radice della soluzione assicura che tutti i progetti di una soluzione possano essere facilmente identificati come appartenenti alla stessa soluzione, anche quando uno o più progetti risiedono su partizioni o computer differenti.

Sebbene sia possibile disattivare la creazione della cartella <nomesoluzione>.root, si consiglia di non eseguire questa operazione. Per ulteriori informazioni, vedere la classe Procedura: disattivare la creazione della cartella <nomesoluzione>.root.

Le soluzioni in Visual Studio possono essere ben strutturate oppure no. Una soluzione ben strutturata è una soluzione in cui la struttura gerarchica su disco corrisponde alla relativa struttura in Esplora soluzioni. Tutti i progetti inclusi in una soluzione ben strutturata sono archiviati in sottocartelle della cartella della soluzione su disco. Quando si aggiunge una soluzione ben strutturata al controllo del codice sorgente, il plug-in del controllo del codice sorgente crea una sottocartella della cartella *.root nella quale verranno archiviate le copie master del file di soluzione (*.sln) e i file SUO (*.suo) della soluzione. Viene inoltre creata una sottocartella della cartella .sln per ciascun progetto aggiuntivo nel database del controllo del codice sorgente.

Se una soluzione non è ben strutturata, il plug-in del controllo del codice sorgente crea una cartella per la soluzione e il relativo progetto iniziale. Le cartelle di ciascun progetto aggiuntivo verranno quindi create allo stesso livello della cartella della soluzione.

Visualizzazioni di una soluzione o un progetto

In Visual Studio sono disponibili tre visualizzazioni distinte di una soluzione o un progetto incluso nel controllo del codice sorgente: progettazione, controllo del codice sorgente e fisica. Molte attività del controllo del codice sorgente possono essere eseguite più facilmente quando esiste un'associazione univoca tra i singoli elementi di queste visualizzazioni. Tuttavia, se le soluzioni e i progetti creati vengono aggiunti al controllo del codice sorgente utilizzando le impostazioni predefinite di Visual Studio, le soluzioni e i progetti non verranno necessariamente organizzati su disco nello stesso modo in cui sono organizzati in Esplora soluzioni e nel database.

La visualizzazione Progettazione, disponibile in Esplora soluzioni, fornisce una rappresentazione logica del contenuto di una soluzione o di un progetto. Si tratta in genere di una visualizzazione accurata e funzionale. I file superflui vengono nascosti, mentre quelli provenienti da percorsi fisici differenti vengono raccolti in un unico contenitore di progetto.

La visualizzazione del controllo del codice sorgente, disponibile in un'applicazione autonoma quale Gestione risorse Visual SourceSafe, fornisce anch'essa una rappresentazione logica di una soluzione o di un progetto, ma non rispecchia necessariamente la visualizzazione logica.

La visualizzazione fisica di una soluzione o di un progetto, disponibile in Esplora risorse, in genere non riflette la struttura gerarchica della visualizzazione logica o della visualizzazione del controllo del codice sorgente.

Di seguito sono forniti alcuni suggerimenti che consentono di ottenere una buona accuratezza a livello di organizzazione tra le diverse visualizzazioni delle soluzioni e dei progetti inclusi nel controllo del codice sorgente:

  • Creare innanzitutto una soluzione vuota, quindi aggiungere i progetti. In questo modo è possibile mantenere la relazione logica principale-secondario tra una soluzione e i relativi progetti in archivio. Quando si aggiunge la soluzione al controllo del codice sorgente, la visualizzazione del controllo del codice sorgente e la visualizzazione Progettazione rifletteranno entrambe la gerarchia della soluzione su disco.

  • Assegnare a ciascuna soluzione un nome univoco descrittivo che sia diverso dal nome dei progetti contenuti.

  • Evitare di aggiungere file di collegamento a una soluzione o un progetto incluso nel controllo del codice sorgente.

  • Se possibile, archiviare tutti i file inclusi in un progetto o una soluzione su un'unica unità disco.

Connessioni e associazioni del controllo del codice sorgente

In Visual Studio, per connessione si intende un collegamento dati attivo tra Visual Studio e un server database. Quando si aggiunge una soluzione o un progetto al controllo del codice sorgente, il plug-in del controllo del codice sorgente copia l'elemento e il relativo contenuto dal disco nel database. Per ciascuna cartella contenente un file di soluzione o di progetto viene creata una cartella del controllo del codice sorgente. Una volta aggiunto l'elemento, il plug-in del controllo del codice sorgente associa la copia di lavoro locale di una soluzione o di un progetto alla relativa versione nel database.

Ogni soluzione inclusa nel controllo del codice sorgente dispone di almeno un'associazione del controllo del codice sorgente. È possibile, tuttavia, che un elemento abbia più associazioni e richieda più connessioni al database. Il numero di associazioni e connessioni dipende dal modo in cui è stata inizialmente creata la soluzione e dal fatto che tutti i relativi file e progetti siano stati salvati o meno nella stessa partizione.

Una soluzione inclusa nel controllo del codice sorgente ben strutturata, costituita da più progetti, può essere paragonata a una casa con più stanze. Al momento della costruzione viene installata una singola linea dati ad alta velocità che collega una stanza all'ambiente esterno. Successivamente viene installato un router dietro un firewall per distribuire i dati alle altre stanze e viene stipulato un abbonamento con un provider di servizi Internet per connettere la casa a Internet.

In questo caso, un'associazione del controllo del codice sorgente potrebbe rappresentare la singola linea dati creata per la casa. Quando si apre una soluzione inclusa nel controllo del codice sorgente, viene creata una connessione attraverso tale associazione, che stabilisce un handshake tra la copia di lavoro della soluzione su disco e la copia master della soluzione nel database.

Una soluzione inclusa nel controllo del codice sorgente non ben strutturata può essere paragonata a una casa in cui ogni stanza è connessa direttamente a Internet. Rispetto allo scenario della casa con connessione singola, i costi di connessione a Internet e i costi di manutenzione saranno più alti e il passaggio a un altro provider di servizi Internet richiederà più tempo e sarà molto più complesso.

In una situazione ideale, una soluzione e i relativi progetti condividono una singola associazione del controllo del codice sorgente. Le soluzioni con singola associazione possono essere gestite più facilmente rispetto alle soluzioni con più associazioni. In questo caso, infatti, è più semplice:

  • Eseguire la disconnessione dal controllo del codice sorgente per lavorare non in linea.

  • Eseguire la connessione al database dopo la riconnessione alla rete.

  • Creare una diramazione di collegamento in un unico passaggio.

Per creare una soluzione multiprogetto con una singola associazione è possibile creare una soluzione vuota e quindi aggiungere i relativi progetti. In alternativa, è possibile selezionare l'opzione Crea directory per soluzione nella finestra di dialogo Nuovo progetto durante la creazione di una coppia soluzione-progetto.

Se si crea una coppia soluzione-progetto in un unico passaggio e non si seleziona l'opzione Crea directory per soluzione nella finestra di dialogo Nuovo progetto (per impostazione predefinita questa opzione è disattivata), quando si aggiunge un secondo progetto alla soluzione verrà creata un'altra associazione. Oltre all'associazione creata per il progetto iniziale e la soluzione, verranno create altre associazioni per ciascun progetto aggiuntivo.

Terminologia del controllo del codice sorgente

Di seguito sono elencati alcuni termini utilizzati nella documentazione di Visual Studio per descrivere le funzionalità e i concetti relativi al controllo del codice sorgente.

  • Versione base
    Versione server di un file dalla quale è stata ottenuta una versione locale.

  • Associazione
    Informazioni che mettono in relazione una cartella di lavoro di una soluzione o un progetto su disco con la relativa cartella nel database.

  • Diramazione del collegamento
    Processo di creazione di una nuova versione (diramazione) di un file o un progetto condiviso incluso nel controllo del codice sorgente. Una volta creata una diramazione, le due versioni incluse nel controllo del codice sorgente avranno una cronologia condivisa fino a un certo punto e cronologie diverse da tale punto in poi.

  • Conflitto
    Presenza di due o più modifiche differenti nella stessa riga di codice, ad esempio quando due o più sviluppatori hanno estratto e modificato lo stesso file.

  • Connessione
    Collegamento dati attivo tra un client del controllo del codice sorgente, ad esempio Visual Studio, e un server database del controllo del codice sorgente.

  • Database
    Percorso in cui sono archiviate tutte le copie master, la cronologia, le strutture dei progetti e le informazioni sugli utenti. Un progetto è sempre contenuto all'interno di un database. È possibile archiviare più progetti in un singolo database ed è possibile utilizzare più database. Un database viene spesso indicato anche con il termine repository o archivio.

  • Cronologia
    Record delle modifiche apportate a un file dopo che è stato aggiunto al controllo del codice sorgente. Utilizzando il controllo delle versioni è possibile tornare a qualsiasi fase precedente della cronologia e ripristinare lo stato del file in tale fase.

  • Etichetta
    Nome definito dall'utente associato a una versione specifica di un elemento incluso nel controllo del codice sorgente.

  • Copia locale
    File archiviato nella cartella di lavoro di un utente in cui vengono salvate le modifiche fino a quando non viene eseguita un'operazione di archiviazione. In alcuni casi, la copia locale viene indicata con il termine copia di lavoro.

  • Copia master
    Ultima versione archiviata di un file incluso nel controllo del codice sorgente, contrapposta alla copia locale di un file nella cartella di lavoro. La copia master viene indicata anche con il termine versione server o versione database.

  • Unione
    Processo che consiste nel combinare le differenze esistenti tra due o più versioni modificate di un file in una nuova versione del file. Questa operazione può avere effetti su versioni differenti dello stesso file o su modifiche apportate alla stessa versione.

  • File condiviso
    File le cui versioni risiedono in più percorsi del controllo del codice sorgente. Un file condiviso viene indicato anche con il termine copia o collegamento.

  • Radice della soluzione
    Cartella vuota in un database in cui sono contenuti tutti gli elementi di una soluzione inclusa nel controllo del codice sorgente. Per impostazione predefinita, questa cartella è <nomesoluzione>.root.

  • Elemento super-unificato di primo livello
    Contenitore virtuale nel quale vengono inseriti tutti i progetti e i file di una soluzione inclusa nel controllo del codice sorgente. Ad esempio, [SUR]:\ è l'elemento super-unificato di primo livello di una soluzione inclusa nel controllo del codice sorgente contenente progetti che si trovano in [SUR]:\C:\Soluzione\Progetto1 e [SUR]:\D:\Progetto2.

  • Elemento unificato di primo livello
    Percorso della directory principale per tutte le cartelle di lavoro e i file di una soluzione o un progetto incluso nel controllo del codice sorgente. Ad esempio, C:\Soluzione è l'elemento unificato di primo livello di una soluzione inclusa nel controllo del codice sorgente contenente file che si trovano in C:\Soluzione, C:\Soluzione\Progetto1 e C:\Soluzione\Progetto2.

  • Cartella di lavoro
    Percorso, in genere sul computer dell'utente, in cui vengono archiviate le copie locali degli elementi inclusi nel controllo del codice sorgente. Una cartella di lavoro viene indicata anche con il termine area di lavoro.

Vedere anche

Attività

Procedura: disattivare la creazione della cartella <nomesoluzione>.root

Riferimenti

Finestra di dialogo Nuovo progetto