Escrever mensagens de confirmação como desenvolvedor solo?

30

Nos meus projetos em que o repositório é compartilhado entre mim e outros programadores, eu sempre escrevo mensagens de confirmação, mesmo que eu seja o desenvolvedor principal.

Mas naqueles projetos em que sou desenvolvedor solo trabalhando em um projeto, e o repositório está hospedado no meu laptop pessoal e nem mesmo é hospedado pelo cliente, portanto, ninguém, exceto eu, veria os commits, ainda devo escrever commit mensagens?

Até agora, eu os escrevi, mas descobri que nunca mais voltei e vi minhas mensagens de confirmação. Eu levo um tempo de folga para escrever as mensagens, mas elas nunca são vistas novamente, nem por mim.

Existem boas razões para escrever mensagens de confirmação como desenvolvedor solo, ou você deve apenas ignorá-las para manter o foco no desenvolvimento?

Click Voto a favor
fonte
14
"Eu nunca voltei e vi minhas mensagens de confirmação" bem, a primeira vez que você precisar voltar, provavelmente fornecerá esse bom motivo. Na verdade, andando em seus sapatos, eu provavelmente fazer commits em silêncio até que o primeiro go-back acontece
mosquito
5
"Eu sempre escrevo mensagens de confirmação, mesmo que eu seja o desenvolvedor primário." Você acha isso incomum? É claro que o desenvolvedor principal deve escrever mensagens, ainda mais que os outros desenvolvedores (que já deveriam 100% do tempo).
precisa saber é o seguinte
7
As mensagens de confirmação são ouro puro quando você começa a manter as versões mais antigas do seu software, e não apenas as mais recentes.

Respostas:

43

Bem, aqui está uma razão: se você repentinamente perceber que algo foi quebrado nas últimas centenas de confirmações (possível se você confirmar a cada edição menor, menos viável se você, como eu, cometer apenas instantâneos "estáveis"), poderá mais facilmente encontre onde você inseriu o erro se tiver escrito mensagens de confirmação claras, em vez de "correções de erros". (A corda favorita de um colega, acredito). Claro, você pode usar svn logo SCM ou o que estiver usando, mas deve ser mais fácil o contrário.

As mensagens de confirmação também obrigam você a pensar exatamente o que fez como mudança e, acredito, resumindo em sua mente como seria melhor continuar melhorando o projeto.

K.Steff
fonte
13
+1 no último parágrafo. Acho que escrever uma mensagem de confirmação adequada leva muito tempo zero, pois sempre sei por que fiz a alteração.
Stephen Darlington
5
Para minhas coisas solo, tenho minha mensagem de confirmação antes de trabalhar em algo. Eu faço uma coisa pequena (mire por 30-45 minutos ... tenho uma esposa e filhos aqui!), E comprometo-a. Talvez você possa chamá-lo de desenvolvimento direcionado por commit?
CorsiKa
52

Eu tento sempre. Quantas vezes você olha para trás e pensa: "Cara, o que eu estava fazendo quando fiz essa alteração"? Eu faço o tempo todo. 30 segundos ao escrever uma mensagem, você pode economizar 20 minutos de trabalho tentando se lembrar.

kemiller2002
fonte
12
Também ajuda na criação de um relatório mensal. A lista de mensagens de commit é um grande começo para o relatório
mhoran_psprep
2
Sim, e realmente leva apenas uma vez em que você precisa pagar pelo tempo que leva para fazer o comentário.
tzerb
20

Você acredita sinceramente que a sobrecarga de digitar entre 40 e 80 caracteres em inglês comum é uma sobrecarga significativa para um commit ou você está procurando uma desculpa para ser preguiçoso?

Talvez o seu problema esteja expressando em inglês simples por que você fez a alteração; nesse caso, pode ser necessário revisar o objetivo da alteração, até o ponto de se perguntar se você realmente precisa fazer isso.

Meu conselho é que não pense que, porque você está voando sozinho, pode quebrar as regras. Permaneça profissional o tempo todo e adicione mensagens de confirmação significativas. Como observado por outros respondedores, um dia você será grato por isso.

mattnz
fonte
14
  • Você nem sempre será um desenvolvedor solo.

  • Você eventualmente quebrará sua base de código e tentará restaurá-la. Boas mensagens de confirmação economizarão horas.

  • Você não se lembra do que estava trabalhando há três semanas, certo?

  • As mensagens de confirmação devem ser muito claras. Caso contrário, você não concluiu o trabalho em uma tarefa ou uma única tarefa se espalhou por duas ou mais tarefas.

CodeART
fonte
7

Definitivamente, ou você torna recursos como ramificação e fusão muito mais difíceis de usar. E você vai querer usá-los, mesmo se desenvolvedor solo.

jmruc
fonte
6

Um possível motivo para: obriga a pensar de maneira mais abstrata sobre a mudança que você acabou de fazer e a estruturar as mudanças.

Se parecer inútil, talvez apenas comente as principais mudanças ou as que alteram a funcionalidade existente, caso você esteja procurando a fonte de um comportamento estranho.

Steve Bennett
fonte
Interessante revisitar esta resposta. Eu assumi uma posição um tanto extremada recentemente: nenhuma mensagem de confirmação. Mas isso é um projeto bastante simples em HTML / JS, onde não consigo imaginar uma tentativa de rastrear uma regressão. Qualquer esforço gasto escrevendo mensagens de confirmação quase certamente seria melhor gasto em outro lugar. (Nem todos os projetos estão nesta categoria!)
Steve Bennett
4

Fui o único responsável pelo projeto TXR e mantive um ChangeLog detalhado desde o início do projeto. Isso tem quase 11.000 linhas de comprimento e está crescendo: http://www.kylheku.com/cgit/txr/tree/ChangeLog

(As mensagens de confirmação no repositório são apenas uma cópia do que ocorre no ChangeLog.)

[Edição de 2016: em meados de 2015, não tenho mais um arquivo ChangeLog; no entanto, as mensagens de confirmação são gravadas em um formato compatível com as convenções Git e ChangeLog ao mesmo tempo. O mesmo nível de detalhe existe, de uma maneira que não causa problemas de mesclagem. Um arquivo ChangeLog pode ser reconstruído mecanicamente a partir desses comentários.]

Sim, mais de uma vez, voltei a uma antiga mensagem de confirmação associada a uma alteração que quebrou algo (descoberta com a ajuda de git bisect). A mensagem me ajudou a entender o que estava fazendo.

No ChangeLog, é possível saber quando uma função, tipo, macro ou variável global foi introduzida pela primeira vez e quando foi posteriormente tocada por alterações.

Mas o principal motivo para escrever mensagens de confirmação detalhadas como essas ao trabalhar sozinho é o seguinte: você encontra erros ao fazer isso .

Escrever uma mensagem de confirmação detalhada traz benefícios semelhantes a uma revisão de código de sua confirmação por outra pessoa. O valor em uma revisão de confirmação não é tanto que alguém está verificando seu código, mas que você precisa explicar suas alterações em outro desenvolvedor.

Quando você tenta explicar as coisas, às vezes descobre que elas não fazem sentido.

Outro motivo: você pode se fazer uma mudança inútil . Ao escrever um comentário de confirmação detalhado, você captura uma visão de alto nível do que está fazendo e, às vezes, é confrontado pelo fato de que não é uma boa mudança.

Às vezes, eu fiz alterações quando, no meio da redação da entrada do ChangeLog, percebi que isso seria um git reset --hard(jogar fora essas mudanças inúteis) em vez de git commit -a.

Kaz
fonte
3

Embora você ainda não tenha percebido a necessidade de visualizar suas mensagens de confirmação, pode ser muito grato por elas no futuro. Você deve continuar escrevendo-os mesmo para si mesmo. Existem muitos motivos pelos quais eles podem ser úteis posteriormente (você esqueceu por que estava adicionando um recurso, localizou arquivos ausentes etc.)

Aqui está uma pergunta relacionada ao propósito das mensagens de confirmação: Por que devo escrever uma mensagem de confirmação

hfitzwater
fonte
3

Sempre me comprometo com uma mensagem significativa sobre alterações e faço isso frequentemente com alterações incrementais.

Isso é sempre a coisa mais útil? Não, não há problema em fazê-lo. Se você precisar reverter para um estágio anterior em andamento, suas mensagens informarão onde você está e o que fez. Também pode ser usado para acompanhar o progresso de um projeto. Quanto a ser visto como uma perda de tempo, os 30 segundos necessários para anotar uma frase são realmente conseqüentes?


fonte
3

Não vejo diferença em relação às mensagens de confirmação, esteja você trabalhando em equipe ou não. Você se lembra do que fez aqui ou ali apenas por um tempo limitado e, depois disso, é o mesmo que se alguém o tivesse escrito. Portanto, você deve escrever mensagens tão boas quanto você faria para as outras pessoas.

Malcolm
fonte