Come mantenere il changeset VCS / semplicità di revisione di fronte a commit parziali accidentali?

3

Lavorando su un progetto con un paio di compagni di classe, e ho notato che riceviamo molti commit parziali che vengono poi corretti:

Rev 249 Log: committing change foo, yeah!
Rev 250 log: oh dear, forgot these files!
Rev 251 log: oh my, how could I possibly forget another file in the *same* change?

La risposta ovvia è essere più attenti. Ma dal 2011 i programmatori sono ancora (quasi) umani e inclini all'errore. Il problema è che questo causa ambiguità quando si ripristina o si fonde. Li lasciamo lì? Modifichiamo la cronologia dei commit?

    
posta Max 25.05.2011 - 11:10
fonte

5 risposte

1

Potresti usare l'integrazione continua, ma sembra eccessivo per un progetto di classe.

Se si utilizza il proprio server, è possibile eseguire script (chiamati hook in SVN) prima di accettare una build. In questo modo è possibile eseguire un'integrazione continua semplificata che esegue una compilazione della riga di comando sul server prima di consentire il commit. Oppure idea uno script personalizzato che controlli i file mancanti (analizzando makefile o progetti visivi o qualsiasi altra cosa tu usi).

    
risposta data 25.05.2011 - 13:31
fonte
2

Fai in modo che i tuoi sviluppatori prendano quattro semplici passaggi di commit per evitare che ciò accada:

  • Esegui l'equivalente del tuo progetto di make clean .
  • Esegui l'equivalente del tuo sistema di controllo della versione di diff dalla parte superiore dell'albero che è stato estratto.
  • Analizza i risultati e controlla che ogni modifica sia ciò che pensi sia (cioè che non siano state incluse modifiche non correlate durante il lavoro su questo).
  • Impegna tutto dalla cima dell'albero.
risposta data 25.05.2011 - 13:25
fonte
0

Suggerirei che chiunque abbia commesso l'errore sul commit possa gestire qualsiasi dolore di fusione. Non dovresti modificare la cronologia dei commit: è lì per tenere traccia delle modifiche apportate alla revisione.

Se ciò accade molto, fai in modo che le persone si impegnino per prime a un ramo utente e faccia un checkout pulito e costruisci prima unendo le loro modifiche nel tronco.

    
risposta data 25.05.2011 - 11:26
fonte
0

Potresti usare un VCS che ti consente (tossire) di "correggere" i commit precedenti.

git non è la risposta a OGNI domanda di controllo di versione, ma è sicuramente la risposta a molti di loro.

    
risposta data 25.05.2011 - 14:39
fonte
0

Se usi git e non sei ancora passato al server, puoi usare rebase per riscrivere quei commit e schiacciare tutte le modifiche in un unico commit.

    
risposta data 25.05.2011 - 14:55
fonte

Leggi altre domande sui tag