Partilhar via


Função SccDiff

Essa função exibe (ou, opcionalmente, apenas verifica) as diferenças entre o arquivo atual (no disco local) e sua última versão com check-in no sistema de controle do código-fonte.

Sintaxe

SCCRTN SccDiff(
   LPVOID    pvContext,
   HWND      hWnd,
   LPCSTR    lpFileName,
   LONG      fOptions,
   LPCMDOPTS pvOptions
);

Parâmetros

pvContexto

[em] A estrutura de contexto do plug-in de controle do código-fonte.

hWnd

[em] Um identificador para a janela do IDE que o plug-in de controle do código-fonte pode usar como pai para quaisquer caixas de diálogo que ele forneça.

lpFileName

[em] Nome do arquivo para o qual a diferença é solicitada.

fOpções

[em] Sinalizadores de comando. Consulte Comentários para obter detalhes.

pvOpções

[em] Opções específicas do plug-in de controle do código-fonte.

Valor retornado

Espera-se que a implementação do plug-in de controle do código-fonte dessa função retorne um dos seguintes valores:

Valor Descrição
SCC_OK A cópia de trabalho e a versão do servidor são idênticas.
SCC_I_FILESDIFFERS A cópia de trabalho difere da versão sob controle do código-fonte.
SCC_I_RELOADFILE Um arquivo ou projeto precisa ser recarregado.
SCC_E_FILENOTCONTROLLED O arquivo não está sob controle do código-fonte.
SCC_E_NOTAUTHORIZED O usuário não tem permissão para executar essa operação.
SCC_E_ACCESSFAILURE Houve um problema ao acessar o sistema de controle do código-fonte, provavelmente devido a problemas de rede ou contenção. Recomenda-se uma nova tentativa.
SCC_E_NONSPECIFICERROR Falha inespecífica; não foi obtida diferença de arquivo.
SCC_E_FILENOTEXIST O arquivo local não foi encontrado.

Comentários

Esta função serve dois propósitos diferentes. Por padrão, ele exibe uma lista de alterações em um arquivo. O plug-in de controle do código-fonte abre sua própria janela, em qualquer formato que escolher, para exibir as diferenças entre o arquivo do usuário no disco e a versão mais recente do arquivo sob controle do código-fonte.

Como alternativa, o IDE pode simplesmente precisar determinar se um arquivo foi alterado. Por exemplo, o IDE pode precisar determinar se é seguro fazer check-out de um arquivo sem informar o usuário. Nesse caso, o IDE passa no SCC_DIFF_CONTENTS sinalizador. O plug-in de controle do código-fonte deve verificar o arquivo no disco, byte por byte, em relação ao arquivo controlado pelo código-fonte e retornar um valor indicando se os dois arquivos são diferentes sem exibir nada para o usuário.

Como uma otimização de desempenho, o plug-in de controle do código-fonte pode usar uma alternativa baseada em uma soma de verificação ou um carimbo de data/hora em vez da comparação byte a byte exigida por SCC_DIFF_CONTENTS: essas formas de comparação são obviamente mais rápidas, mas menos confiáveis. Nem todos os sistemas de controle de origem podem oferecer suporte a esses métodos alternativos de comparação, e o plug-in pode ter que voltar para uma comparação de conteúdo. Todos os plug-ins de controle do código-fonte devem, no mínimo, oferecer suporte a uma comparação de conteúdo.

Observação

As bandeiras de diferença rápida são mutuamente exclusivas. É válido não passar bandeiras, mas não é válido passar simultaneamente mais de uma. SCC_DIFF_QUICK_DIFF, que é uma máscara que combina todas as bandeiras, pode ser usada para testar, mas nunca deve ser passada como parâmetro.

fOption Significado
SCC_DIFF_IGNORECASE Comparação sem distinção entre maiúsculas e minúsculas (pode ser usada para diferença rápida ou visual).
SCC_DIFF_IGNORESPACE Ignora o espaço em branco (pode ser usado para diferença rápida ou visual).
SCC_DIFF_QD_CONTENTS Compara silenciosamente o arquivo, byte por byte.
SCC_DIFF_QD_CHECKSUM Compara silenciosamente o arquivo por meio de uma soma de verificação quando suportado. Se não houver suporte, recorre a uma comparação de conteúdos.
SCC_DIFF_QD_TIME Compara silenciosamente o arquivo através de seu carimbo de data/hora quando suportado. Se não houver suporte, recorre a uma comparação de conteúdos.

Confira também