Freigeben über


SccGet-Funktion

Diese Funktion ruft eine Kopie einer oder mehreren Dateien für die Anzeige und die Kompilierung jedoch nicht für die Bearbeitung ab. In den meisten Systemen Tags werden die Dateien schreibgeschützt.

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

Parameter

  • pvContext
    [in] Die Kontextstruktur des Quellcodeverwaltungs-Plug-In.

  • hWnd
    [in] Ein Handle für das IDE-Fenster, das das Quellcodeverwaltungs-Plug-In als übergeordnetes Element für alle Dialogfelder verwenden kann, die er bereitstellt.

  • nFiles
    [in] Die Anzahl der Dateien im angegebenen lpFileNames Array.

  • lpFileNames
    [in] Array von vollqualifizierten Namen von Dateien, die abgerufen werden sollen.

  • fOptions
    [in] Spaltenflags Befehls,SCC_GET_ALL( SCC_GET_RECURSIVE).

  • pvOptions
    [in] Plug-in-spezifisch Optionen der Quellcodeverwaltung.

Rückgabewert

Die Quellcodeverwaltungs-Plug-In-Implementierung dieser Funktion wird erwartet, dass es sich um einen der folgenden Werte zurückgeben:

Wert

Beschreibung

SCC_OK

Erfolg eines GET-Vorgangs.

SCC_E_FILENOTCONTROLLED

Die Datei wird nicht in die Quellcodeverwaltung einbezogen.

SCC_E_OPNOTSUPPORTED

Das Quellcodeverwaltungssystem diesen Vorgang nicht unterstützt.

SCC_E_FILEISCHECKEDOUT

Kann die Datei erst abrufen, die der Benutzer gerade ausgecheckt hat.

SCC_E_ACCESSFAILURE

Es bestand ein Problem, das das Quellcodeverwaltungssystem, wahrscheinlich aufgrund der Netzwerk- oder Konflikt bei der zugreift. Eine Wiederholung wird empfohlen.

SCC_E_NOSPECIFIEDVERSION

Gab eine ungültige Version oder Datum/Uhrzeit an.

SCC_E_NONSPECIFICERROR

Unspezifischer Fehler. Die Datei wurde nicht synchronisiert.

SCC_I_OPERATIONCANCELED

Vorgang abgebrochen vor Abschluss.

SCC_E_NOTAUTHORIZED

Der Benutzer ist nicht berechtigt, um diesen Vorgang auszuführen.

Hinweise

Diese Funktion wurde mit einer Zahl und einem Array von Namen der Dateien abgerufen werden. Wenn die IDE das Flag SCC_GET_ALLwird, bedeutet dies, dass die Elemente in lpFileNames jedoch keine Dateien und Verzeichnisse dass alle Dateien unter Quellcodeverwaltung in angegebenen Verzeichnissen abgerufen werden sollen.

Das SCC_GET_ALL-Flag kann mit dem Flag SCC_GET_RECURSIVE kombiniert werden, um alle Verzeichnisse und Dateien in bestimmten auch alle Unterverzeichnisse durchsucht.

Hinweis

SCC_GET_RECURSIVE sollte nie ohne SCC_GET_ALLübergeben werden.Außerdem sollten Sie beachten, dass bei Verzeichnissen C:\A und C:\A\B sind beide übergeben Sie auf ein rekursives abrufen, C:\A\B und alle seine Unterverzeichnisse sind eigentlich zweimal abgerufen.Es handelt sich die IDE Verantwortung-und nicht überprüft die Quellcodeverwaltung Stecker-in's-zu, ob Duplikate wie folgt aus dem Array aus betrachtet werden.

Zum Schluss selbst wenn ein Quellcodeverwaltungs-Plug-In das bei der Initialisierung SCC_CAP_GET_NOUI-Flag angegeben wird, die angibt, dass sie keine Benutzeroberfläche für einen Befehl Abrufen dieser Funktion mit der Bezeichnung möglicherweise weiterhin durch die IDE, um Dateien abzurufen. Das Flag bedeutet lediglich, dass die IDE Menüelement angezeigt wird und dass kein Abrufen des Plug-Ins erwartet wird, ohne Benutzeroberfläche bereitzustellen.

Umbenennen und SccGet

Situation: checkt ein Benutzer eine Datei zum Beispiel a.txt und wie Sie sie ändern. Bevor a.txt eingecheckt werden kann, benennt ein zweiter Benutzer a.txt b.txt in der Quellcodeverwaltungs-Datenbank, checkt b.txt, führt einige Änderungen an der Datei und überprüft die Datei. Der erste Benutzer wünscht die Änderungen, die vom zweiten Benutzer vorgenommen werden. Das Umbenennen der erste Benutzer die lokale Version der Datei a.txt- in b.txt und führt einen get-Accessor für die Datei. Allerdings können den lokalen Cache noch denkt Versionsnummern, der nachverfolgt werden, dass die erste Version von a.txt lokal gespeichert wird und daher die Quellcodeverwaltung die Unterschiede nicht auflösen.

Es gibt zwei Möglichkeiten, diese Situation zu vermeiden, in der Quellcodeverwaltung aus dem lokalen Cache Versionen der Quellcodeverwaltungs-Datenbank nicht synchronisiert wird:

  1. Lassen Sie nicht das Umbenennen einer Datei in der Quellcodeverwaltungs-Datenbank, die derzeit ausgecheckt wird.

  2. Führen Sie die Entsprechung von „Delete“ altem gefolgt von „new“ hinzufügen. Der folgende Algorithmus ist eine Möglichkeit, dies zu erreichen.

    1. Rufen Sie die SccQueryChanges-Funktion-Funktion auf, um zur Umbenennung von a.txt in b.txt in der Quellcodeverwaltungs-Datenbank vertraut zu machen.

    2. Benennen Sie lokale a.txt in b.txt.

    3. Rufen Sie die SccGet-Funktion für a.txt und b.txt an.

    4. Da a.txt nicht in der Quellcodeverwaltungs-Datenbank enthalten ist, wird der lokale Version cache von fehlenden a.txt- Versionsinformationen gelöscht.

    5. Die Datei b.txt-, die ausgecheckt ist, wird mit dem Inhalt der lokalen Datei b.txt- zusammengeführt.

    6. Die aktualisierte Datei b.txt- kann jetzt eingecheckt werden.

Siehe auch

Konzepte

API-Funktionen für das Quellcodeverwaltungs-Plug-In

Bitflags, die von bestimmten Befehlen verwendet werden