Domanda

Per incidente ho commesso due volte perché ho dimenticato di aggiungere due file.Posso rimuovere un commit specifico dal registro?

screenshot del registro

Voglio eliminare il commit № 4.

È stato utile?

Soluzione

La semplice risposta è "no", perché Subversion non sa come risolvere il caso quando aggiungi un commit, qualcun altro aggiorna il proprio checkout e poi rimuovi il commit dalla cronologia.Potrebbe esserci o meno una risposta complessa che coinvolge un intervento chirurgico sulla memoria di Subversion.

Altri suggerimenti

  1. AFAICS, hai non eliminato r4, ma unisci con r5, sì?
  2. In generale, la cronologia dei commit SVN è immutabile, come ha detto Sii - e se tu non hai i diritti cancella / crea repository - non puoi fare nulla.

Se puoi eliminare il repository corrente e crearne uno nuovo con una nuova cronologia, puoi provare:

  • svnadmin dump per essere leggibile dall'uomo (a malapena, devo dire) repository-dump, formato grok e modifica dump, elimina repo, svnadmin load per ricreare il repository
  • un'altra idea è (invece di modificare il dump) un'altra SCM, che ha un bridge a SVN (hg + MQ (histedit) + hg-git, ad esempio, consentono di ottenere repo e piegare / eliminare i changeset).Per la sostituzione vecchio repository - vedere p.2 sopra

Nel tuo caso, è solo necessario modificare il commento del commit associato al commit n. 4 per riflettere le modifiche effettive apportate.Puoi farlo con Subversion modificando la configurazione del repository SVN.Consulta le Domande frequenti su Subversion .

Perché?Lascia che Subversion conservi la cronologia: ecco a cosa serve.Effettua il check-in presto e spesso.Non è necessario cancellare il commit n. 4.

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