Se um .sln estar comprometidos com controle de origem?
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!
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.