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. |