Función SccDiff
Esta función muestra (o opcionalmente solo comprueba si hay) las diferencias entre el archivo actual (en el disco local) y su última versión de registro en el sistema de control de código fuente.
Sintaxis
SCCRTN SccDiff(
LPVOID pvContext,
HWND hWnd,
LPCSTR lpFileName,
LONG fOptions,
LPCMDOPTS pvOptions
);
Parámetros
pvContext
[in] Estructura del contexto del complemento de control de código fuente.
hWnd
[in] Identificador de la ventana del IDE que el complemento de control de código fuente puede usar como elemento primario para los cuadros de diálogo que proporciona.
lpFileName
[in] Nombre de archivo para el que se solicita la diferencia.
fOptions
[in] Marcas de comandos. Consulte Comentarios para obtener más detalles.
pvOptions
[in] Opciones específicas del complemento de control de código fuente.
Valor devuelto
Se espera que la implementación del complemento de control de código fuente de esta función devuelva uno de los siguientes valores:
Value | Descripción |
---|---|
SCC_OK | La copia de trabajo y la versión del servidor son idénticas. |
SCC_I_FILESDIFFERS | La copia de trabajo difiere de la versión bajo el control de código fuente. |
SCC_I_RELOADFILE | Es necesario volver a cargar un archivo o proyecto. |
SCC_E_FILENOTCONTROLLED | El archivo no está bajo control de código fuente. |
SCC_E_NOTAUTHORIZED | No se permite al usuario realizar esta operación. |
SCC_E_ACCESSFAILURE | Se produjo un problema al acceder al sistema de control de código fuente, probablemente debido a problemas de red o contención. Se recomienda un reintento. |
SCC_E_NONSPECIFICERROR | Error no específico; no se obtuvo la diferencia de archivo. |
SCC_E_FILENOTEXIST | No se encontró el archivo local. |
Comentarios
Esta función sirve para dos propósitos diferentes. De forma predeterminada, muestra una lista de cambios en un archivo. El complemento de control de código fuente abre su propia ventana, en el formato que elija, para mostrar las diferencias entre el archivo del usuario en el disco y la versión más reciente del archivo bajo control de código fuente.
Como alternativa, es posible que el IDE simplemente necesite determinar si un archivo ha cambiado. Por ejemplo, el IDE puede necesitar determinar si es seguro desproteger un archivo sin informar al usuario. En ese caso, el IDE pasa la SCC_DIFF_CONTENTS
marca . El complemento de control de código fuente debe comprobar el archivo en el disco, byte byte, en el archivo controlado por código fuente y devolver un valor que indique si los dos archivos son diferentes sin mostrar nada al usuario.
Como optimización del rendimiento, el complemento de control de código fuente puede usar una alternativa basada en una suma de comprobación o una marca de tiempo en lugar de la comparación de bytes byte a la que llama SCC_DIFF_CONTENTS
: estas formas de comparación son obviamente más rápidas pero menos confiables. No todos los sistemas de control de código fuente pueden admitir estos métodos de comparación alternativos y es posible que el complemento tenga que revertir a una comparación de contenido. Todos los complementos de control de código fuente deben admitir, como mínimo, una comparación de contenido.
Nota:
Las marcas de diferencia rápida son mutuamente excluyentes. Es válido para pasar sin marcas, pero no es válido para pasar simultáneamente más de uno. SCC_DIFF_QUICK_DIFF
, que es una máscara que combina todas las marcas, se puede usar para probar, pero nunca debe pasarse como parámetro.
fOption |
Significado |
---|---|
SCC_DIFF_IGNORECASE | Comparación sin distinción entre mayúsculas y minúsculas (se puede usar para diferencias rápidas o visuales). |
SCC_DIFF_IGNORESPACE | Omite el espacio en blanco (se puede usar para una diferencia rápida o visual). |
SCC_DIFF_QD_CONTENTS | Compara silenciosamente el archivo, byte byte. |
SCC_DIFF_QD_CHECKSUM | Compara silenciosamente el archivo a través de una suma de comprobación cuando se admite. Si no se admite, retroceda a una comparación de contenido. |
SCC_DIFF_QD_TIME | Compara silenciosamente el archivo a través de su marca de tiempo cuando se admite. Si no se admite, retroceda a una comparación de contenido. |