Diretrizes de controle de origem adicionais para projetos e editores
Há uma série de diretrizes que projetos e editores devem cumprir para oferecer suporte a controle de origem.
Diretrizes
O projeto ou o editor também deve fazer o seguinte para dar suporte ao controle de origem:
Área |
Project |
Editor |
Detalhes |
---|---|---|---|
Particulares cópias dos arquivos |
X |
|
O ambiente aceita privadas cópias dos arquivos. Ou seja, cada pessoa inscrita no projeto tem sua própria cópia privada dos arquivos no projeto. |
Persistência de Unicode/ANSI |
X |
X |
Se você escrever o código de persistência, persistem arquivos no formato ANSI, porque a maioria dos programas de controle de origem no momento não suporte Unicode. |
Enumerar arquivos |
X |
|
O projeto deve conter uma lista específica de todos os arquivos dentro dela 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 a nomes de itens por meio de sua GetMkDocument a implementação e suporte pesquisa de nome (incluindo arquivos especiais) por meio de seu IsDocumentInProject implementação. |
Formato de texto |
X |
X |
Quando possível, os arquivos devem estar no formato de texto para oferecer suporte a mesclagem de versões diferentes. Arquivos que não estão no formato de texto não podem ser mesclados com outras versões do arquivo no futuro. O formato de texto preferido é XML. |
Base de referência |
X |
|
Projetos baseados em referência prontamente são suportados no controle de origem. No entanto, os projetos baseados em diretório também são suportados pelo controle de origem, desde que o projeto pode produzir uma lista de seus arquivos sob demanda, independentemente de se esses arquivos existem no disco. Ao abrir um projeto de controle de origem, o arquivo de projeto trazido para o primeiro, antes de qualquer um dos arquivos. |
Persistência de objetos e propriedades em ordem previsível |
X |
X |
Manter 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 poder recarregá-lo. Quando você participa de controle de origem, o ambiente será recarregado dados para você, chamando o ReloadDocData implementação. O caso de recarga mais difíceis é quando um check-out ocorre quando você chamou IVsQueryEditQuerySave::QueryEditFiles e está processando informações. No entanto, seu código de recarga deve ser capaz de executar nessa situação. O ambiente recarrega automaticamente os arquivos de projeto. No entanto, um projeto deve implementar IVsPersistHierarchyItem2 se ele tiver aninhado hierarquias para oferecer suporte a recarregamento de arquivos de projeto aninhados. |