MSSCCPRJ. Arquivo SCC
Quando você coloca uma solução ou projeto do Visual Studio sob controle do código-fonte usando o IDE, o IDE recebe duas informações-chave. As informações vêm do plug-in de controle de origem na forma de cadeias de caracteres. Essas cadeias de caracteres, "AuxPath" e "ProjName", são opacas para o IDE, mas são usadas pelo plug-in para localizar a solução ou projeto no controle de versão. O IDE normalmente obtém essas cadeias de caracteres pela primeira vez chamando o SccGetProjPath e, em seguida, as salva no arquivo de solução ou projeto para chamadas futuras para o SccOpenProject. Quando incorporadas nos arquivos de solução e projeto, as cadeias de caracteres "AuxPath" e "ProjName" não são atualizadas automaticamente quando um usuário ramifica, bifurca ou copia arquivos de solução e projeto que estão no controle de versão. Para certificar-se de que a solução e os arquivos de projeto apontam para seu local correto no controle de versão, os usuários devem atualizar manualmente as cadeias de caracteres. Como as cadeias de caracteres devem ser opacas, nem sempre fica claro como elas devem ser atualizadas.
O plug-in de controle de origem pode evitar esse problema armazenando as cadeias de caracteres "AuxPath" e "ProjName" em um arquivo especial chamado arquivo MSSCCPRJ.SCC . É um arquivo local, do lado do cliente, que pertence e é mantido pelo plug-in. Esse arquivo nunca é colocado sob controle do código-fonte, mas é gerado pelo plug-in para cada diretório que contém arquivos controlados pelo código-fonte. Para determinar quais arquivos são arquivos de projeto e solução do Visual Studio, um plug-in de controle de origem pode comparar as extensões de arquivo com uma lista padrão ou fornecida pelo usuário. Depois que o IDE detecta que um plug-in oferece suporte ao arquivo MSSCCPRJ.SCC, ele deixa de incorporar as cadeias de caracteres "AuxPath" e "ProjName" em arquivos de solução e projeto e, em vez disso, lê essas cadeias de caracteres do arquivo MSSCCPRJ.SCC.
Um plug-in de controle de origem que oferece suporte ao arquivo MSSCCPRJ.SCC deve seguir as seguintes diretrizes:
Só pode haver um arquivo MSSCCPRJ.SCC por diretório.
Um arquivo MSSCCPRJ.SCC pode conter o "AuxPath" e "ProjName" para vários arquivos que estão sob controle do código-fonte dentro de um determinado diretório.
A cadeia de caracteres "AuxPath" não deve ter aspas dentro dela. É permitido ter aspas ao redor dele como delimitadores (por exemplo, um par de aspas duplas pode ser usado para indicar uma cadeia de caracteres vazia). O IDE removerá todas as aspas da cadeia de caracteres "AuxPath" quando ela for lida do arquivo MSSCCPRJ.SCC .
A cadeia de caracteres "ProjName" no MSSCCPRJ. O arquivo SCC deve corresponder exatamente à cadeia de caracteres retornada da
SccGetProjPath
função. Se a cadeia de caracteres retornada pela função tiver aspas ao seu redor, a cadeia de caracteres no arquivo MSSCCPRJ.SCC deve ter aspas ao redor dela e vice-versa.Um arquivo MSSCCPRJ.SCC é criado ou atualizado sempre que um arquivo é colocado sob controle do código-fonte.
Se um arquivo MSSCCPRJ.SCC for excluído, um provedor deverá gerá-lo novamente na próxima vez que executar uma operação de controle do código-fonte referente a esse diretório.
Um arquivo MSSCCPRJ.SCC deve seguir estritamente o formato definido.
Uma ilustração do MSSCCPRJ. Formato de arquivo SCC
A seguir está um exemplo do formato de arquivo MSSCCPRJ.SCC (os números de linha são fornecidos apenas como um guia e não devem ser incluídos no corpo do arquivo):
[Linha 1]
SCC = This is a Source Code Control file
[Linha 2]
[Linha 3]
[TestApp.sln]
[Linha 4]
SCC_Aux_Path = "\\server\vss\"
[Linha 5]
SCC_Project_Name = "$/TestApp"
[Linha 6]
[Linha 7]
[TestApp.csproj]
[Linha 8]
SCC_Aux_Path = "\\server\vss\"
[Linha 9]
SCC_Project_Name = "$/TestApp"
A primeira linha indica a finalidade do arquivo e serve como assinatura para todos os arquivos desse tipo. Esta linha deve aparecer exatamente como esta em todos os arquivos MSSCCPRJ.SCC :
SCC = This is a Source Code Control file
A seção a seguir detalha as configurações de cada arquivo, marcadas pelo nome do arquivo entre colchetes. Esta seção é repetida para cada arquivo que está sendo rastreado. Esta linha é um exemplo de um nome de arquivo, ou seja, [TestApp.csproj]
. O IDE espera as duas linhas a seguir. Não define, no entanto, o estilo dos valores definidos. As variáveis são SCC_Aux_Path
e SCC_Project_Name
.
SCC_Aux_Path = "\\server\vss\"
SCC_Project_Name = "$/TestApp"
Não há um delimitador final para esta seção. O nome do arquivo, bem como todos os literais que aparecem no arquivo, são definidos no arquivo de cabeçalho scc.h. Para obter mais informações, consulte Cadeias de caracteres usadas como chaves para localizar um plug-in de controle do código-fonte.