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:
Lassen Sie nicht das Umbenennen einer Datei in der Quellcodeverwaltungs-Datenbank, die derzeit ausgecheckt wird.
Führen Sie die Entsprechung von „Delete“ altem gefolgt von „new“ hinzufügen. Der folgende Algorithmus ist eine Möglichkeit, dies zu erreichen.
Rufen Sie die SccQueryChanges-Funktion-Funktion auf, um zur Umbenennung von a.txt in b.txt in der Quellcodeverwaltungs-Datenbank vertraut zu machen.
Benennen Sie lokale a.txt in b.txt.
Rufen Sie die SccGet-Funktion für a.txt und b.txt an.
Da a.txt nicht in der Quellcodeverwaltungs-Datenbank enthalten ist, wird der lokale Version cache von fehlenden a.txt- Versionsinformationen gelöscht.
Die Datei b.txt-, die ausgecheckt ist, wird mit dem Inhalt der lokalen Datei b.txt- zusammengeführt.
Die aktualisierte Datei b.txt- kann jetzt eingecheckt werden.