Domanda

Quando mi impegno a SVN, posso aggiungere un messaggio di commit di livello superiore per dettagliare ciò che viene commesso, ma idealmente vorrei un mezzo per commentare i singoli file e cosa è cambiato al loro interno. Ho visto qualcosa di simile nel precedente impiego, ma questo stava usando CVS (e non ricordo se questo è stato ottenuto con uno script di birra fatta in casa per produrre il file skeleton)

Ho dato un'occhiata alle liste dei cambiamenti, ma ancora una volta non penso (anche se sono disposto a essere smentito) che questo dia il tipo di granularità come indicato di seguito.

Idealmente sto cercando qualcosa sulla falsariga di:

Foo.vb

  
      
  • Aggiunta nuova barra delle funzioni
  •   

Bar.vb

  
      
  • Funzione rimossa foo
  •   
  • Aggiunta funzionalità in xyz per fare abc   +/- Funzione modificata per registrare l'errore
  •   
È stato utile?

Soluzione

Lo farei solo nel messaggio di commit individuale. TortoiseSVN ha il completamento automatico del nome file, il che aiuta notevolmente in questo.

Un'altra cosa che potresti fare è svn st prima di eseguire il commit e copiare / incollare i nomi dei file nel tuo messaggio di commit.

Oh, e assicurati di mettere fortemente in discussione il valore di questo. So che alcuni progetti OSS (Linux?) Richiedono questo tipo di fedeltà, ma per molti progetti questo è solo rumore. Diff può dirti molto di più e in modo più preciso.

Un'altra cosa che potresti prendere in considerazione è l'utilizzo di Git . Git ti consente di impegnarti localmente, in passaggi più piccoli. Spingi quindi sul server principale tutti i tuoi commit singolarmente o schiacciati in un singolo commit con tutti i messaggi di commit in un singolo messaggio. Questa è stata una spiegazione semplificata, ma probabilmente vale la pena dare un'occhiata.

Altri suggerimenti

Potresti semplicemente eseguire il commit ogni volta che hai finito con una determinata attività. Ciò dovrebbe condurre comunque a commenti migliori. Un commento che legge " Verifica posta elettronica implementata " sui tre file necessari mi dice molto di più di " funzione aggiunta verifica_email " ;. Riesco a vedere quest'ultimo da solo nel diff.

Una delle differenze essenziali tra SVN e CVS è che i cambiamenti sono commessi atomicamente. In CVS ogni file ha la sua versione, ma in SVN la versione è per l'intero progetto e include tutti i file archiviati insieme.

Ecco quattro idee per una soluzione:

  1. Controlla ciascuno dei tuoi programmi separatamente, con il suo messaggio di registro. Ciò può significare che se, per esempio, controlli cinque file, "utilizzerai" " cinque versioni, di cui quattro possono comportare la creazione di un errore.
  2. Fai il tuo sviluppo su un percorso separato (cioè la tua filiale privata), fai come sopra, quindi in momenti strategici unisci la tua filiale al tronco.
  3. Controlla tutto insieme e conserva i singoli record come commenti nell'intestazione del programma. Questo può significare (un po ') lavoro extra, ma dovresti comunque comporre i singoli messaggi di accesso.
  4. Esegui un unico check-in per tutti i file, ma con un bel messaggio di registro completo che dettaglia ogni pezzo per ogni file.

Ho scritto un progetto per fare questo tipo di cose chiamato MOAP

Una delle sue funzioni è quella di generare una voce ChangeLog dal tuo diff locale (attualmente supportando bazaar, cvs, svn, git e darcs). A tale scopo, esegui "moap changelog preparazione" o "moap cl prep". Tale voce può includere anche funzioni modificate se abiliti l'opzione.

Quindi vai a modificare quella voce, descrivendo le tue modifiche. Puoi rimuovere i file che non desideri vengano sottoposti a commit come parte del tuo prossimo commit.

Quindi, è possibile eseguire 'moap changelog commit' per eseguire il commit delle modifiche descritte nella voce ChangeLog. Commetterà solo i file elencati lì e lascerà tutte le altre modifiche locali.

Spero che ti aiuti!

Questo tipo di risultato potrebbe essere ottenuto se ci sono alcune regole relative al modo in cui i commenti vengono scritti all'interno di ciascuno dei file impegnati. Questi commenti possono essere successivamente estratti da un trigger svn.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top