Sdílet prostřednictvím


SccGet – funkce

Tato funkce načte kopii jednoho nebo více souborů pro prohlížení a kompilaci, ale ne pro úpravy. Ve většině systémů jsou soubory označené jako jen pro čtení.

Syntaxe

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

Parametry

pvContext

[v] Kontextová struktura modulu plug-in správy zdrojového kódu.

Hwnd

[v] Popisovač okna integrovaného vývojového prostředí(IDE), které modul plug-in správy zdrojového kódu může použít jako nadřazený prvek pro všechna dialogová okna, která poskytuje.

nSoubory

[v] Počet souborů zadaných lpFileNames v poli

lpFileNames

[v] Pole plně kvalifikovaných názvů souborů, které se mají načíst.

FOptions

[v] Příznaky příkazů (SCC_GET_ALL, SCC_GET_RECURSIVE).

pvOptions

[v] Možnosti modulu plug-in správy zdrojového kódu

Vrácená hodnota

Očekává se, že implementace modulu plug-in správy zdrojového kódu této funkce vrátí jednu z následujících hodnot:

Hodnota Popis
SCC_OK Úspěch operace získání
SCC_E_FILENOTCONTROLLED Soubor není pod správou zdrojového kódu.
SCC_E_OPNOTSUPPORTED Systém správy zdrojového kódu tuto operaci nepodporuje.
SCC_E_FILEISCHECKEDOUT Nelze získat soubor, který si uživatel právě rezervoval.
SCC_E_ACCESSFAILURE Při přístupu k systému správy zdrojového kódu došlo k potížím, pravděpodobně kvůli problémům se sítí nebo kolizí. Doporučuje se opakování.
SCC_E_NOSPECIFIEDVERSION Zadali jste neplatnou verzi nebo datum a čas.
SCC_E_NONSPECIFICERROR Nespecifické selhání; soubor nebyl synchronizován.
SCC_I_OPERATIONCANCELED Operace byla zrušena před dokončením.
SCC_E_NOTAUTHORIZED Uživatel nemá oprávnění k provedení této operace.

Poznámky

Tato funkce se volá s počtem a polem názvů souborů, které se mají načíst. Pokud integrované vývojové prostředí předává příznak SCC_GET_ALL, znamená to, že položky v lpFileNames souborech nejsou, ale adresáře a že se načtou všechny soubory pod správou zdrojového kódu v daných adresářích.

Příznak SCC_GET_ALL lze kombinovat s příznakem SCC_GET_RECURSIVE pro načtení všech souborů v daných adresářích a všech podadresářích.

Poznámka:

SCC_GET_RECURSIVE by nikdy neměla být předána bez SCC_GET_ALL. Všimněte si také, že pokud jsou adresáře C:\A a C:\A\B předány rekurzivním get, C:\A\B a všechny jeho podadresáře se ve skutečnosti načtou dvakrát. Je to zodpovědnost integrovaného vývojového prostředí (a ne modul plug-in správy zdrojového kódu), aby se zajistilo, že duplicity, jako je tato, jsou mimo pole.

A konečně, i když modul plug-in správy zdrojového kódu určil SCC_CAP_GET_NOUI příznak při inicializaci, což znamená, že nemá uživatelské rozhraní pro příkaz Get, může tato funkce stále volat integrované vývojové prostředí pro načtení souborů. Příznak jednoduše znamená, že integrované vývojové prostředí (IDE) nezobrazuje položku nabídky Get a že modul plug-in nemá poskytovat žádné uživatelské rozhraní.

Přejmenování souborů a SccGet

Situace: Uživatel si soubor vyhledá, například a.txt, a upraví ho. Před vrácením souboru a.txt se druhý uživatel přejmenuje na b.txt v databázi správy zdrojového kódu, zkontroluje b.txt, provede určité úpravy souboru a zkontroluje soubor v souboru. První uživatel chce změny provedené druhým uživatelem, aby první uživatel přejmenoval místní verzi souboru a.txt na b.txt a získá soubor. Místní mezipaměť, která sleduje čísla verzí, si ale stále myslí, že první verze souboru a.txt je uložená místně, takže správa zdrojového kódu nemůže tyto rozdíly vyřešit.

Existují dva způsoby, jak tuto situaci vyřešit, když se místní mezipaměť verzí správy zdrojového kódu přestane synchronizovat s databází správy zdrojového kódu:

  1. Nepovolujte přejmenování souboru v databázi správy zdrojového kódu, která je aktuálně rezervována.

  2. Proveďte ekvivalent "odstranit starý" následovaný textem "add new". Jedním ze způsobů, jak toho dosáhnout, je následující algoritmus.

    1. Zavolejte funkci SccQueryChanges, abyste se dozvěděli o přejmenování souboru a.txt na b.txt v databázi správy zdrojového kódu.

    2. Přejmenujte místní soubor a.txt na b.txt.

    3. SccGet Volání funkce pro a.txt i b.txt.

    4. Protože soubor a.txt v databázi správy zdrojového kódu neexistuje, mezipaměť místní verze se vymaže z chybějících informací o verzi a.txt .

    5. Rezervovaný soubor b.txt se sloučí s obsahem místního souboru b.txt .

    6. Aktualizovaný soubor b.txt je teď možné vrátit se změnami.

Viz také