Recentemente ho migrato un repository su git da svn. Quando guardo il log, tutti i commit di SVN non sono formattati correttamente nel formato 50/72. C'è un modo per passare attraverso ogni messaggio di commit e modificarlo in modo che sia conforme al formato git?Formattazione dei messaggi di commit
risposta
Lei ha detto in un commento:
Il repository è stato migrato più di una settimana fa e già ha commit su di esso ha fatto in Git.
Come tale, l'opzione migliore è semplicemente vivere con esso e continuare a fare messaggi di commit corretti d'ora in poi.
Tutti i metodi che cambierebbero i messaggi di commit in quei vecchi commit sarebbero modificare i commit e creare oggetti completamente nuovi con ID diversi. Di conseguenza, i repository di tutti coloro che stanno già lavorando con esso si romperanno, richiedendo loro di reimpostare manualmente il nuovo stato riscritto del repository.
Questo termina solo con molto più lavoro (e confusione!) Del necessario per la banale questione dei commit con un messaggio di commit non perfetto che è stato migrato da un vecchio sistema. Penso che sia perfetto avere una vecchia storia, dei giorni precedenti, che non si adatta perfettamente agli standard attuali. Non si riscriveranno tutti i commit se in seguito si decide di modificare le regole di formattazione del codice.
Hai un punto. Lascerò la storia da solo allora. – EnactSchmenact
Un'opzione è modificare il tuo commit in svn prima di importare su git. Usa svnadmin dump
vai a generare una versione modificabile dall'utente del repository, modifica lì i messaggi di commit (se fossi in me, scriverò uno script Python per farlo), quindi ricostruirò il repository con svnadmin load
Il repository è stato migrato più di una settimana fa e ha già eseguito commit su Git. Dovrei ri-migrare il repository e quindi unirli in qualche modo? – EnactSchmenact
I file di dump di Subversion non sono "modificabili dall'uomo". Ogni revisione ha un checksum IIRC e se tenti di modificare il file raw, finirai per rompere il file. 'svnadmin setlog' è lo strumento appropriato da utilizzare per la modifica dei messaggi di registro in un repository (nessun file di dump necessario). – alroc
Buon punto sul setlog. È discutibile comunque. –
bisogno di git filter-branch
. È man page è abbastanza chiaro.
Utilizzare l'opzione --msg-filter
che prevede un comando di shell che riceverà il messaggio originale su stdin
e dovrebbe inviare il messaggio modificato a stdout
. La creazione di uno script che correggerà il formato del messaggio è una domanda separata =).
Se si stava per risolverli a mano, fare semplicemente git rebase -i --root
, impostando l'azione su reword
. Questo passerà attraverso tutta la storia del commit aprendo il tuo editor di testo per ogni commit e permettendoti di cambiare il messaggio di commit.
Aye; dovrebbe aver pensato a questo. Questo è il modo per farlo. –
- 1. Qual è l'uso dei messaggi di commit?
- 2. Codifica dei messaggi di commit Github
- 3. Messaggi di commit corretti
- 4. troncando messaggi di commit
- 5. Visualizza messaggi di commit non riusciti precedenti
- 6. Grafica nei messaggi di commit GitHub
- 7. Ordine di tempo dei messaggi
- 8. Come risolvere un problema JIRA dai messaggi di commit GitHub?
- 9. Come verifichiamo i messaggi di commit per un push?
- 10. Ordinamento dei messaggi
- 11. Test dei messaggi HL7
- 12. Come scrivere i messaggi di commit git per gli aggiornamenti dei sottomoduli?
- 13. ReSharper: la formattazione dei delegati
- 14. Formattazione dei messaggi da inviare al server socket.io node.js dal client python
- 15. Errore di digitazione dei messaggi di MassTransit
- 16. Come evitare "Merge branch 'name_of_branch' in messaggi di commit?
- 17. Controllo compito problema su GitHub utilizzando messaggi di commit
- 18. Involgi automaticamente lunghi messaggi di commit Git in Vim
- 19. SVN - Ottieni tutti i messaggi di commit per un file?
- 20. Strategia per estrarre i messaggi della maggior parte dei commit utili per changelog
- 21. problemi di formattazione jsoncpp
- 22. Color.FromArgb (...); la protezione dei messaggi
- 23. Recupero dei messaggi da postgres
- 24. SVN - hook pre-commit per verificare la formattazione del codice
- 25. Semplice sistema di invio dei messaggi java
- 26. Visualizzazione semplici finestre di dialogo dei messaggi
- 27. Rilevamento dei messaggi di pane tostato
- 28. Miglioramento dei messaggi di errore Lua
- 29. default codifica dei messaggi di eccezione
- 30. Test dei messaggi di modulo tramite MockMVC
Non preoccuparti. Basta andare avanti e farlo correttamente per i nuovi messaggi di commit. Il controllo del codice sorgente dovrebbe supportare il tuo flusso di lavoro, non renderlo più difficile. Sì, i messaggi di commit non sono formattati correttamente. Ma è davvero un grosso problema? – Abizern
Semplicemente _having_ commit i messaggi sei avanti rispetto alla curva. È piuttosto comune vedere un solo gigantesco commit con il messaggio "migrato da svn" – gcbenison
[Per coloro che non sanno cosa sia "il formato 50/72"]] (http://stackoverflow.com/q/2290016/1324345) – alroc