Funzione SccDiff

Questa funzione visualizza (o facoltativamente cerca) le differenze tra il file corrente (sul disco locale) e l'ultima versione archiviata nel sistema di controllo del codice sorgente.

Sintassi

SCCRTN SccDiff(
   LPVOID    pvContext,
   HWND      hWnd,
   LPCSTR    lpFileName,
   LONG      fOptions,
   LPCMDOPTS pvOptions
);

Parametri

pvContext

[in] Struttura del contesto del plug-in del controllo del codice sorgente.

hWnd

[in] Handle per la finestra dell'IDE che il plug-in del controllo del codice sorgente può usare come elemento padre per qualsiasi finestra di dialogo fornita.

lpFileName

[in] Nome file per il quale viene richiesta la differenza.

fOptions

[in] Flag di comando. Pe altri dettagli, vedere la sezione Osservazioni.

pvOptions

[in] Opzioni specifiche del plug-in del controllo del codice sorgente.

Valore restituito

L'implementazione del plug-in del controllo del codice sorgente di questa funzione dovrebbe restituire uno dei valori seguenti:

Valore Descrizione
SCC_OK La copia funzionante e la versione del server sono identiche.
SCC_I_FILESDIFFERS La copia di lavoro è diversa dalla versione sotto il controllo del codice sorgente.
SCC_I_RELOADFILE È necessario ricaricare un file o un progetto.
SCC_E_FILENOTCONTROLLED Il file non è sotto il controllo del codice sorgente.
SCC_E_NOTAUTHORIZED L'utente non è autorizzato a eseguire questa operazione.
SCC_E_ACCESSFAILURE Si è verificato un problema durante l'accesso al sistema di controllo del codice sorgente, probabilmente a causa di problemi di rete o contesa. È consigliabile riprovare.
SCC_E_NONSPECIFICERROR Errore non specifico; la differenza di file non è stata ottenuta.
SCC_E_FILENOTEXIST Impossibile trovare il file locale.

Osservazioni:

Questa funzione svolge due scopi diversi. Per impostazione predefinita, visualizza un elenco di modifiche apportate a un file. Il plug-in del controllo del codice sorgente apre la propria finestra, in qualsiasi formato scelto, per visualizzare le differenze tra il file dell'utente su disco e la versione più recente del file nel controllo del codice sorgente.

In alternativa, l'IDE potrebbe semplicemente dover determinare se un file è stato modificato. Ad esempio, l'IDE potrebbe dover determinare se è sicuro archiviare un file senza informare l'utente. In tal caso, l'IDE passa il SCC_DIFF_CONTENTS flag . Il plug-in del controllo del codice sorgente deve controllare il file su disco, byte byte, sul file controllato dal codice sorgente e restituire un valore che indica se i due file sono diversi senza visualizzare nulla all'utente.

Come ottimizzazione delle prestazioni, il plug-in di controllo del codice sorgente può usare un'alternativa basata su un checksum o un timestamp anziché il confronto byte byte chiamato per da SCC_DIFF_CONTENTS: queste forme di confronto sono ovviamente più veloci ma meno affidabili. Non tutti i sistemi di controllo del codice sorgente possono supportare questi metodi di confronto alternativi e il plug-in potrebbe dover eseguire il fallback a un confronto dei contenuti. Tutti i plug-in di controllo del codice sorgente devono supportare almeno un confronto dei contenuti.

Nota

I flag di differenza rapida si escludono a vicenda. È valido non passare alcun flag, ma non è valido per passare contemporaneamente più di un flag. SCC_DIFF_QUICK_DIFF, che è una maschera che combina tutti i flag, può essere usata per testare, ma non deve mai essere passata come parametro.

fOption Significato
SCC_DIFF_IGNORECAedizione Standard Confronto senza distinzione tra maiuscole e minuscole (può essere usato per la differenza rapida o visiva).
SCC_DIFF_IGNORESPACE Ignora lo spazio vuoto (può essere usato per la differenza rapida o visiva).
SCC_DIFF_QD_CONTENTS Confronta automaticamente il file, byte byte.
SCC_DIFF_QD_CHECKSUM Confronta automaticamente il file tramite un checksum quando supportato. Se non supportato, esegue il fallback a un confronto del contenuto.
SCC_DIFF_QD_TIME Confronta automaticamente il file tramite il timestamp quando supportato. Se non supportato, esegue il fallback a un confronto del contenuto.

Vedi anche