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