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. |