O Stack Overflow tem um número de versão de subversão na parte inferior:
revisão svn: 679
Quero usar esse controle de versão automático com meus .NET Web Site/Application
projetos / soluções do Windows Forms e WPD.
Como faço para implementar isso?
.net
asp.net
svn
versioning
Zack Peterson
fonte
fonte
Respostas:
Parece que Jeff está usando CruiseControl.NET com base em algumas folhinhas nas transcrições de podcast. Isso parece ter recursos de implantação automatizados do controle de origem à produção. Pode ser aqui que a inserção está acontecendo?
fonte
Fazemos isso com xUnit.net para nossas compilações automatizadas. Nós usamos
CruiseControl.net
(e estamos testando o TeamCity). A tarefa MSBuild que executamos para integração contínua altera automaticamente o número de compilação para nós, de forma que o arquivo ZIP de compilação resultante contenha um conjunto de DLLs e EXEs com versão adequada.Nosso arquivo MSBuild contém uma referência UsingTask para uma DLL que faz substituições de expressões regulares: (você pode usar esta DLL, pois também é coberta pela licença MS-PL)
Em seguida, extraímos o número do build, que é fornecido automaticamente pelo sistema de CI. Você também pode fazer com que seu provedor de controle de fonte forneça o número de revisão da fonte, se quiser, mas descobrimos que o número da versão no sistema de CI era mais útil, porque não só pode ver os resultados da integração pelo número da versão de CI, que também fornece um vincule de volta ao (s) changeset (s) que foram incluídos na construção.
(Tentamos BUILD_NUMBER, que é do TeamCity, depois ccnetlabel, que é do CC.net, e se nenhum estiver presente, o padrão é 0, para que possamos testar o script de construção automatizado manualmente.)
Em seguida, temos uma tarefa que define o número da compilação em um arquivo GlobalAssemblyInfo.cs que vinculamos a todos os nossos projetos:
Isso localiza o atributo AssemblyVersion e substitui o número da versão abcd por abcBuildNumber. Normalmente deixaremos o código-fonte verificado na árvore com as três primeiras partes do número do construtor corrigidas e a quarta no zero (por exemplo, hoje é 1.0.2.0).
Em seu processo de construção, certifique-se de que a tarefa SetVersionNumber preceda sua tarefa de construção. No final, usamos nossa tarefa Zip para compactar os resultados da compilação de forma que tenhamos um histórico dos binários para cada compilação automatizada.
fonte
Você pode fazer isso adicionando o seguinte em qualquer lugar do seu código
Por exemplo, @Jeff fez:
e quando verificado no servidor, substituiu $ Id: $ pelo número da revisão atual. Eu também encontrei essa referência .
Também há $ Date: $ , $ Rev: $ , $ Revision: $
fonte
Se você estiver usando
ASP.Net MVC
(como o StackOverflow faz), escrevi um guia de 3 etapas fácil de seguir sobre como obter e exibir automaticamente a revisão mais recente do SVN . O guia foi inspirado por pensar comigo mesmo sobre essa questão! : o)fonte
@Balloon Se você estiver usando TortoiseSVN, você pode usar o programa SubWCRev empacotado . Ele consulta uma cópia de trabalho e informa apenas o número de revisão mais alto. Admitidamente, esta parece ser uma abordagem do lado do cliente para um problema do lado do servidor, mas como é um bom programa de linha de comando, você deve ser capaz de capturar sua saída para uso com bastante facilidade.
fonte
$rev
e outros semelhantes são revisões de arquivos individuais, portanto, não serão alterados a menos que o arquivo seja alterado. O número na página da web é (provavelmente, estou assumindo aqui) o número da revisão svn para todo o projeto. Isso é diferente das revisões de arquivo, que outros têm apontado.Neste caso, presumo que CCNET está puxando o número de revisão do projeto e reescrevendo uma parte da página da Web com esse número. Qualquer solução de CI deve ser capaz de fazer isso, configure-o sozinho com CCNET e Teamcity (embora não sejam páginas da web, mas controle automático de versões de implantação / montagem).
Para fazer isso, use uma solução de CI que a suporte ou use seu processo de construção (MSbuild / Nant) para armazenar essa versão e gravá-la nos arquivos antes de "implantá-la".
fonte
Para adicionar à resposta de @BradWilson: "Você também pode fazer com que seu provedor de controle de fonte forneça o número de revisão da fonte, se desejar"
Para conectar o Subversion e o MSBuild: Projeto de Tarefas da Comunidade MSBuild
fonte