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.

Consulte también