Pergunta

Ao cometer a SVN posso adicionar um nível superior comprometer mensagem para detalhar o que está sendo cometido, mas eu realmente gostaria um meio para comentar sobre os arquivos individuais eo que mudou dentro deles. Eu vi algo semelhante em empregos anteriores, mas isso era usando CVS (e não me lembro se isso foi conseguido com um script produção caseira para produzir o arquivo esqueleto)

Eu tive uma olhada changelists mas novamente eu não acho que (embora eu estou disposto a estar errado) que este dá o tipo de granularidade, conforme descrito abaixo.

Idealmente, eu estou procurando algo ao longo das linhas de:

Foo.vb

  • Adicionada nova barra de funções

Bar.vb

  • Removido função foo
  • funcionalidades adicionais em xyz fazer abc +/- função modificada para log de erro
Foi útil?

Solução

Gostaria apenas de fazer isso no indivíduo cometer mensagem. TortoiseSVN tem filename autocompletar para que ajuda bastante neste processo.

Outra coisa que você poderia fazer é svn st antes de se comprometer e copiar / colar os nomes de arquivos em sua mensagem de commit.

Oh, e não deixe de questionar fortemente o valor deste. Eu sei que alguns projetos de OSS (linux?) Requerem este tipo de fidelidade, mas para muitos projetos esta é apenas ruído. Diff posso dizer muito mais do que isso, e com mais precisão.

Uma outra coisa que você pode querer considerar está usando Git . Git permite que você se comprometer localmente, em passos menores. Você, então, empurrar para o servidor mestre todos os seus commits individualmente ou comprimida em um único cometer w / todas as mensagens comprometer em uma única mensagem. Essa foi uma maneira simplificada explicação, mas provavelmente vale a pena conferir.

Outras dicas

Você poderia simplesmente cometem sempre que você é feito com uma tarefa particular. Isso deve levar a melhores comentários de qualquer maneira. Um comentário ler "verificação E-Mail implementado" sobre os três arquivos necessários me diz muito mais do que "função adicionada verify_email". Eu posso ver o último me no diff.

Uma das diferenças essenciais entre SVN e CVS é ??que as mudanças estão comprometidos atomicamente. No CVS cada arquivo tem sua própria versão, mas em SVN a versão é para todo o projecto e inclui todos os arquivos check-in juntos.

Aqui estão quatro idéias para uma solução:

  1. Verifique em cada um dos seus programas em separado, com a sua própria mensagem de log. Isso pode significar que se, digamos, você verificar em cinco arquivos, você vai "usar-se" cinco versões, das quais quatro podem resultar em uma compilação interrompida.
  2. Faça o seu desenvolvimento em um caminho separado (ou seja, o seu próprio ramo privado), faça como acima, em seguida, em momentos estratégicos fundir o seu ramo ao tronco.
  3. Verifique em tudo juntos, e manter os registros individuais como comentários no cabeçalho do programa. Isso pode significar (um pouco) trabalho extra, mas você teria que compor as mensagens de login individuais de qualquer maneira.
  4. Faça um único check-in para todos os arquivos, mas com uma bela mensagem de log completo detalhando cada peça para cada arquivo.

Eu escrevi um projeto para fazer este tipo de coisa chamada MOAP

Uma das suas funções é gerar uma entrada ChangeLog do seu diff local (bazar actualmente a apoiar, cvs, svn, git e darcs). Você pode fazer isso executando 'MOAP changelog preparar' ou 'MOAP cl prep' Essa entrada pode incluir funções alteradas, bem como se você ativar a opção.

Você, então, ir e mudar essa entrada, descrevendo as suas alterações. Você pode remover arquivos que você não quer cometido como parte de seu próximo commit.

Em seguida, você pode executar 'MOAP changelog comprometer' para confirmar as alterações descritas na entrada ChangeLog. Ele só irá comprometer os arquivos listados lá, e deixar todas as suas outras mudanças local.

Espero que ajude!

Esse tipo de resultado poderia ser obter se há algumas regras relativas à forma comentários são escritos dentro de cada um dos arquivos comprometidos. Estes comentários após isso pode ser extraído por um gatilho SVN.

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