Fonction SccDiff
Cette fonction affiche (ou éventuellement simplement case activée) les différences entre le fichier actuel (sur le disque local) et sa dernière version case activée ed-in dans le système de contrôle de code source.
Syntaxe
SCCRTN SccDiff(
LPVOID pvContext,
HWND hWnd,
LPCSTR lpFileName,
LONG fOptions,
LPCMDOPTS pvOptions
);
Paramètres
pvContext
[in] Structure de contexte du plug-in de contrôle de code source.
hWnd
[in] Handle vers la fenêtre IDE que le plug-in de contrôle de code source peut utiliser comme parent pour toutes les boîtes de dialogue qu’il fournit.
lpFileName
[in] Nom de fichier pour lequel la différence est demandée.
fOptions
[in] Indicateurs de commande. Pour plus d’informations, consultez Remarques.
pvOptions
[in] Options spécifiques au plug-in de contrôle de code source.
Valeur retournée
L’implémentation du plug-in de contrôle de code source de cette fonction est censée retourner l’une des valeurs suivantes :
Valeur | Description |
---|---|
SCC_OK | La copie de travail et la version du serveur sont identiques. |
SCC_I_FILESDIFFERS | La copie de travail diffère de la version sous contrôle de code source. |
SCC_I_RELOADFILE | Un fichier ou un projet doit être rechargé. |
SCC_E_FILENOTCONTROLLED | Le fichier n’est pas sous contrôle de code source. |
SCC_E_NOTAUTHORIZED | L’utilisateur n’est pas autorisé à effectuer cette opération. |
SCC_E_ACCESSFAILURE | Il y a eu un problème d’accès au système de contrôle de code source, probablement en raison de problèmes de réseau ou de contention. Une nouvelle tentative est recommandée. |
SCC_E_NONSPECIFICERROR | Échec non spécifique ; la différence de fichier n’a pas été obtenue. |
SCC_E_FILENOTEXIST | Le fichier local est introuvable. |
Notes
Cette fonction a deux objectifs différents. Par défaut, il affiche une liste de modifications apportées à un fichier. Le plug-in de contrôle de code source ouvre sa propre fenêtre, quel que soit le format choisi, pour afficher les différences entre le fichier de l’utilisateur sur le disque et la dernière version du fichier sous contrôle de code source.
Sinon, l’IDE peut simplement avoir besoin de déterminer si un fichier a changé. Par exemple, l’IDE peut avoir besoin de déterminer s’il est sûr de case activée un fichier sans informer l’utilisateur. Dans ce cas, l’IDE passe dans l’indicateur SCC_DIFF_CONTENTS
. Le plug-in de contrôle de code source doit case activée le fichier sur le disque, byte byte, par rapport au fichier contrôlé par la source et retourner une valeur indiquant si les deux fichiers sont différents sans afficher quoi que ce soit à l’utilisateur.
Comme optimisation des performances, le plug-in de contrôle de code source peut utiliser une alternative basée sur un case activée sum ou un horodatage au lieu de la comparaison d’octets par octets appelée par SCC_DIFF_CONTENTS
: ces formes de comparaison sont évidemment plus rapides mais moins fiables. Tous les systèmes de contrôle de code source ne peuvent pas prendre en charge ces autres méthodes de comparaison, et le plug-in peut être amené à revenir à une comparaison de contenu. Tous les plug-ins de contrôle de code source doivent, au minimum, prendre en charge une comparaison de contenu.
Remarque
Les indicateurs de différence rapide s’excluent mutuellement. Il est valide de passer aucun indicateur, mais il n’est pas valide pour passer simultanément plusieurs indicateurs. SCC_DIFF_QUICK_DIFF
, qui est un masque qui combine tous les indicateurs, peut être utilisé pour tester, mais il ne doit jamais être passé en tant que paramètre.
fOption |
Signification |
---|---|
SCC_DIFF_IGNORECASE | Comparaison non sensible à la casse (peut être utilisée pour une différence visuelle ou rapide). |
SCC_DIFF_IGNORESPACE | Ignore l’espace blanc (peut être utilisé pour une différence visuelle ou rapide). |
SCC_DIFF_QD_CONTENTS | Compare silencieusement le fichier, byte byte. |
SCC_DIFF_QD_CHECKSUM | Compare silencieusement le fichier via un case activée sum lorsqu’il est pris en charge. S’il n’est pas pris en charge, revient à une comparaison du contenu. |
SCC_DIFF_QD_TIME | Compare silencieusement le fichier via son horodatage lorsqu’il est pris en charge. S’il n’est pas pris en charge, revient à une comparaison du contenu. |