Pergunta

É uma boa prática para cometer um arquivo .sln para controle de origem? Quando é apropriado ou inapropriado para fazê-lo?

Atualizar Havia vários pontos bons feitos nas respostas. Obrigado pelas respostas!

Foi útil?

Solução

Eu acho que é claramente das outras respostas que os arquivos da solução são úteis e devem estar comprometidos, mesmo que eles não são usados ??para compilações oficial. Eles são úteis para ter para qualquer um usando o Visual Studio apresenta como Go To Definition / Declaração.

Por padrão, eles não contêm caminhos absolutos ou quaisquer outros artefatos específicos da máquina. (Infelizmente, alguns add-in ferramentas não manter adequadamente esta propriedade, por exemplo, AMD CodeAnalyst.) Se você tiver cuidado de usar caminhos relativos em seus arquivos de projeto (ambos C ++ e C #), que vai ser independente da máquina também.

Provavelmente a questão mais útil é: quais arquivos você deve excluir? Aqui está o conteúdo do meu arquivo .gitignore para meus projetos VS 2008:

*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/

(A última entrada é apenas para o profiler AMD CodeAnalyst.)

Para VS 2010, você também deve excluir o seguinte:

ipch/
*.sdf
*.opensdf

Outras dicas

Sim - Eu acho que é sempre apropriado. configurações específicas do usuário estão em outros arquivos.

Sim, você deve fazer isso. Um arquivo de solução contém apenas informações sobre a estrutura geral da sua solução. A informação é global para a solução e é provável comum para todos os desenvolvedores em seu projeto.

Ele não contém quaisquer configurações de usuário específicas.

Você deve definitivamente tê-lo. Ao lado das razões outras pessoas mencionadas, é necessário fazer uma compilação etapa de todo os projetos possíveis.

Eu geralmente concordam que os arquivos de solução deve ser verificado, no entanto, no trabalho da empresa I para nós ter feito algo diferente. Temos uma bastante grande repositório e desenvolvedores trabalham em diferentes partes do sistema de tempos em tempos. Para apoiar a nossa forma de trabalhar ficaremos ou ter um arquivo de solução grande ou vários menores. Ambos têm algumas deficiências e exigem trabalho manual por parte desenvolvedores. Para evitar isso, fizemos um plug-in que lida com tudo isso.

O plug-in que cada cheque desenvolvedor um subconjunto da árvore de origem para trabalhar em simplesmente selecionando os projectos relevantes a partir do repositório. O plug-in, em seguida, gera um arquivo de solução e modifica arquivos de projeto em tempo real para a solução dada. Ele também lida com referências. Em outras palavras, todo o desenvolvedor tem que fazer é selecionar os projetos apropriados e, em seguida, os arquivos necessários são gerados / modificado. Isso também nos permite personalizar várias outras configurações para garantir os padrões da empresa.

Além disso, usamos o plug-in para apoiar vários check-in políticas, o que geralmente impede os usuários de enviar código defeituoso / não conforme ao repositório.

Sim, as coisas que você deve cometem são:

  • solução (* .sln),
  • arquivos de projeto,
  • todos os arquivos de origem,
  • arquivos aplicativo de configuração
  • construir scripts

coisas que você deve não cometem são:

  • opções de usuário solução arquivos (.suo),
  • arquivos de compilação gerados (por exemplo, usando um script de construção) [Edit:] - somente se todos os scripts e ferramentas de compilação necessários estão disponíveis de controle de versão em (para garantir constrói são autênticos na história cvs)

Relativamente a outros arquivos gerados automaticamente, há um segmento separado .

Sim, deve ser parte do controle de origem. Sempre que você adicionar / remover projectos a partir da aplicação, .sln iria ficar atualizado e seria bom tê-lo sob controle de origem. Ele permitirá que você puxe o seu código de aplicativo 2 versões para trás e diretamente fazer uma compilação (se de todo necessário).

Sim, você sempre quer incluir o arquivo .sln, que inclui os links para todos os projetos que estão em solução.

Na maioria dos casos, é uma boa idéia para cometer .sln arquivos para controle de origem.

Se os seus arquivos .sln são gerados por uma outra ferramenta (como CMake), então provavelmente é inapropriado para colocá-los no controle de origem.

Nós fazemos porque mantém tudo em sincronia. Todos os projectos necessários estão localizados juntos, e ninguém tem que se preocupar em perder um. O nosso servidor de compilação (Formigueiro Pro) também usa o sln a figura que projetos de construção para um lançamento.

Nós geralmente colocar todos os nossos arquivos soluções em um diretório soluções. Desta forma, separar a solução a partir do código um pouco, e é mais fácil de escolher o projeto que eu preciso para trabalhar.

O único caso em que seria considder nem armazená-lo no controle de origem seria se você tivesse uma solução grande, com muitos projectos que era no controle de origem, e você quisesse criar uma pequena solução com alguns dos projetos da principal solução para alguma exigência transitória privado.

Sim. - Tudo usado para gerar o produto deve estar em controle de origem

Nós mantemos ou arquivos de solução no TFS Version Control. Mas, uma vez ou principal solução é realmente grande, a maioria dos desenvolvedores têm uma solução pessoal contendo apenas o que eles precisam. O principal arquivo de solução é usado principalmente pelo servidor de compilação.

.slns são a única coisa que não têm problemas teve com no TFS!

1) Criar um novo projeto no VS
2) Botão direito do mouse sobre a solução no Solution Explorer, selecione Adicionar para controlo de origem

É a SLN adicionado ao controle de origem? Essa é a sua resposta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top