Compartilhar via


Diretrizes adicionais de controle do código-fonte para projetos e editores

Há uma série de diretrizes que os projetos e editores devem seguir para apoiar o controle de fontes.

Diretrizes

Seu projeto ou editor também deve fazer o seguinte para oferecer suporte ao controle do código-fonte:

Área Projeto Editor Detalhes
Cópias privadas de arquivos X O ambiente oferece suporte a cópias privadas de arquivos. Ou seja, cada pessoa alistada no projeto tem sua própria cópia particular dos arquivos daquele projeto.
Persistência ANSI/Unicode X X Se você escrever o código de persistência, persista os arquivos no formulário ANSI porque a maioria dos programas de controle de origem não oferece suporte a Unicode no momento.
Enumerar arquivos X O projeto deve conter uma lista específica de todos os arquivos dentro dele e deve ser capaz de enumerar a lista de arquivos usando o IVsSccProject2 ou GetProperty (VSH_PROPID_First_Child/Next_Sibling). O projeto também deve expor nomes de itens por meio de sua implementação e pesquisar nomes de suporte (incluindo arquivos especiais) por meio de sua GetMkDocument IsDocumentInProject implementação.
Formato do texto X X Quando possível, os arquivos devem estar em formato de texto para suportar a mesclagem de diferentes versões. Os arquivos que não estão no formato de texto não podem ser mesclados com outras versões do arquivo posteriormente. O formato de texto preferido é XML.
Baseado em referências X Projetos baseados em referência são prontamente suportados no controle do código-fonte. No entanto, projetos baseados em diretório também são suportados pelo controle do código-fonte, desde que o projeto possa produzir uma lista de seus arquivos sob demanda, independentemente de esses arquivos existirem no disco. Ao abrir um projeto a partir do controle do código-fonte, o arquivo de projeto é derrubado primeiro antes de qualquer um de seus arquivos.
Persista objetos e propriedades em ordem previsível X X Persista seus arquivos em uma ordem previsível, como ordem alfabética, para facilitar a mesclagem.
Recarregar X X Quando um arquivo é alterado no disco, o editor deve ser capaz de recarregá-lo. Quando você participa do controle do código-fonte, o ambiente recarrega os dados para você chamando sua ReloadDocData implementação. O caso de recarga mais difícil é quando um checkout ocorre quando você chamou IVsQueryEditQuerySave::QueryEditFiles e está processando informações. No entanto, o código de recarga deve ser capaz de ser executado nessa situação.

O ambiente recarrega automaticamente os arquivos de projeto. No entanto, um projeto deve ser implementado IVsPersistHierarchyItem2 se tiver hierarquias aninhadas para oferecer suporte ao recarregamento de arquivos de projeto aninhados.