Per incidente ho commesso due volte perché ho dimenticato di aggiungere due file. Posso rimuovere un commit specifico dal log?Posso cancellare un commit in Subversion?
voglio cancellare impegnarsi № 4.
Per incidente ho commesso due volte perché ho dimenticato di aggiungere due file. Posso rimuovere un commit specifico dal log?Posso cancellare un commit in Subversion?
voglio cancellare impegnarsi № 4.
La risposta semplice è "no", perché Subversion non sa come risolvere il caso quando si aggiunge un commit, qualcun altro aggiorna il checkout e quindi si rimuove il commit dalla cronologia. Potrebbe esserci o meno una risposta complessa che implichi un intervento chirurgico nella memoria di Subversion.
Perché? Lascia che Subversion mantenga la storia - ecco a cosa serve. Effettua il check-in presto e spesso. Non è necessario cancellare commit # 4.
Perché non ho aggiunto Site.cc e Site.hh (Ho dimenticato di farlo), ma il messaggio di conferma dice che l'ho fatto. –
@WTP: la soluzione canonica sta semplicemente commettendo un ninjafix e commentandolo di conseguenza. Se si desidera una cronologia del pacchetto "accurato", one-commit-per-work-package, Subversion (o Subversion da solo) potrebbe non essere lo strumento adatto. – millimoose
Se è stato eseguito un controllo pulito del progetto, appariranno questi due file? Se sì, allora li hai commessi. Credi a Subversion. – duffymo
Se è possibile eliminare repo corrente e di crearne nuovi con nuova storia, si può provare:
svnadmin dump
per ottenere leggibile (a mala pena, devo dire) repository-dump, formato Grok e modificare discarica, eliminare pronti contro termine, svnadmin load
di ricreare il repoNel tuo caso, è solo necessario modificare il messaggio di commit associato ad impegnarsi # 4 per riflettere le modifiche apportate effettive. Puoi farlo con Subversion modificando la configurazione del repository SVN. Vedi lo Subversion FAQ.
Si consiglia di leggere questa domanda: http://stackoverflow.com/questions/5566327/delete-all-traces-of-a-svn-commit –