Condividi tramite


Funzione SccGet

questa funzione recupera una copia di uno o più file per visualizzare e compilare ma non per modificare. Nella maggior parte dei sistemi, i file vengono contrassegnati come di sola lettura.

SCCRTN SccGet(
   LPVOID    pvContext,
   HWND      hWnd,
   LONG      nFiles,
   LPCSTR*   lpFileNames,
   LONG      fOptions,
   LPCMDOPTS pvOptions
);

Parametri

  • pvContext
    [in] La struttura di contesto del plug-in controllo del codice sorgente.

  • hWnd
    [in] Un handle di finestra IDE che il plug-in controllo del codice sorgente possibile utilizzare come padre di tutte le finestre di dialogo che garantiscono.

  • nFiles
    [in] Numero di file specificato nella matrice di lpFileNames .

  • lpFileNames
    [in] Matrice dei nomi completi dei file da recuperare.

  • fOptions
    [in] Flag di comando (SCC_GET_ALL, SCC_GET_RECURSIVE).

  • pvOptions
    [in] Opzioni spina-in-specifiche del controllo del codice sorgente.

Valore restituito

L'implementazione di plug-in controllo del codice sorgente di questa funzione è previsto che restituisca uno dei seguenti valori:

Valore

Descrizione

SCC_OK

Riuscita dell'operazione get.

SCC_E_FILENOTCONTROLLED

Il file non è incluso nel controllo del codice sorgente.

SCC_E_OPNOTSUPPORTED

Il sistema di controllo del codice sorgente non supporta questa operazione.

SCC_E_FILEISCHECKEDOUT

Non è possibile ottenere il file che l'utente ha attualmente estratti.

SCC_E_ACCESSFAILURE

Si è verificato un problema che accede al sistema di controllo del codice sorgente, probabilmente a causa di problemi di conflitto o della rete. Un tentativo è consigliato.

SCC_E_NOSPECIFIEDVERSION

Ha specificato una versione o a una data/ora non valida.

SCC_E_NONSPECIFICERROR

errore non specifico; il file non è stato sincronizzato.

SCC_I_OPERATIONCANCELED

Operazione annullata prima del completamento.

SCC_E_NOTAUTHORIZED

L'utente non è autorizzato a eseguire questa operazione.

Note

Questa funzione viene chiamata con un conteggio e una matrice di nomi di file da recuperare. Se l'ide passa il flag SCC_GET_ALL, questo significa che gli elementi in lpFileNames non sono file ma directory e che tutti i file inclusi nel controllo del codice sorgente nella directory specificate devono essere recuperati.

Il flag di SCC_GET_ALL può essere combinato con il flag di SCC_GET_RECURSIVE per recuperare tutti i file nelle directory specificate da tutte le sottodirectory anche.

Nota

SCC_GET_RECURSIVE non deve essere mai passato senza SCC_GET_ALL.Inoltre, si noti che se directory C#: \A and C:\A\B are both passed on a recursive get, C:\A\B e tutte le relative sottodirectory verrà effettivamente recuperate due volte.Si tratta degli idi responsabilità-e non il controllo del codice sorgente spina-in's-a garantisce che i duplicati come questo siano mantenuti dalla matrice.

Infine, anche se un plug-in controllo del codice sorgente specificato il flag di SCC_CAP_GET_NOUI all'inizializzazione, a indicare che non dispone di un'interfaccia utente per un comando di lettura, questa funzione può ancora essere chiamata dall'IDE per recuperare i file. Il flag significa semplicemente che l'ide non visualizza alcuna voce di menu di ottenere e che il plug-in non si prevede che fornisce alcuna interfaccia utente.

ridenominazione e SccGet

situazione: un utente verifica un file, ad esempio, a.txt e lo modifica. Prima di a.txt sia possibile archiviare, un altro utente rinomina a.txt nel b.txt nel database di controllo del codice sorgente, verifica b.txt, apporta le modifiche al file e controlla il file. Il primo utente voglia le modifiche apportate dal secondo utente pertanto il primo utente rinomina la propria versione locale del file a.txt in b.txt e apporta un ottenere il file. Tuttavia, la cache locale che tiene traccia dei numeri di versione ancora ritiene che la prima versione di a.txt sia memorizzata localmente e pertanto il controllo del codice sorgente non può risolvere le differenze.

Esistono due modi per risolvere questa situazione in cui la cache locale delle versioni del controllo del codice sorgente viene sincronizzata con il database di controllo del codice sorgente:

  1. Non consentire rinominare un file nel database di controllo del codice sorgente che attualmente è verificato.

  2. Fare l'equivalente di “obsoleto delete„ seguito da “aggiungi nuovo„. Nell'algoritmo è un modo per eseguire questa operazione.

    1. Chiamare Funzione SccQueryChanges la funzione per informazioni sulla ridenominazione di a.txt nel b.txt nel database.

    2. Rinominare a.txt locale all'indirizzo b.txt.

    3. Chiamare la funzione di SccGet sia per a.txt e b.txt.

    4. Poiché a.txt non esiste nel database di controllo del codice sorgente, la cache locale della versione è purgato le informazioni sulla versione priva di a.txt.

    5. Il file b.txt che viene verificato viene unito al contenuto del file locale di b.txt.

    6. il file aggiornato di b.txt può ora essere controllato.

Vedere anche

Concetti

Funzioni API del plug-in del controllo del codice sorgente

Flag di bit utilizzati da comandi specifici