Fissaggio di una spinta al ramo sbagliato

2

Ho eseguito il commit e ho apportato alcune modifiche al ramo sbagliato. Ho trovato un modo per risolverlo, ma sembra eccessivamente complicato. È davvero il modo più semplice?

  1. sul ramo in cui hai apportato le modifiche, digita hg parent
  2. Esegui hg diff -r <parent> -r <with_changes> > patch.diff
  3. hg up <proper_branch>
  4. hg import --no-commit patch.diff
  5. hg ci -m 'committing changes to proper branch'
  6. hg up <bad_branch>
  7. hg parent per trovare il changeset precedente su questo ramo che è buono
  8. hg ci --close-branch -m 'closing bad branch'
  9. hg up <last_good_changeset>
  10. aggiungi uno spazio o un'altra modifica minore
  11. hg ci -m 'making tip'
  12. hg push

Qualcosa a quell'effetto comunque. L'ho fatto in un ordine leggermente diverso; Ho apportato di nuovo il suggerimento alla punta e ho dovuto eseguire un commit forzato perché creava una nuova testa, quindi è stato necessario eseguire

hg heads 'hg branch'

Per trovare di nuovo il ramo cattivo, quindi chiudilo. Ora mostra ancora il changeset cattivo come "suggerimento" perché l'ho chiuso dopo ho "ribaltato" il ramo buono, ma quando si aggiorna a quel ramo, credo che occorra il più recente non- testa chiusa?

Sembra un processo abbastanza ridicolo per risolvere un errore così semplice.

C'è un modo più semplice per farlo? Perché no?

    
posta mpen 21.02.2013 - 21:26
fonte

3 risposte

1

Ho trovato una soluzione più pulita. Non è necessario "toccare" il ramo per riportarlo in punta, né chiudere il ramo danneggiato.

Invece, solo fino al ramo danneggiato, hg revert -r <last_good_commit> -a quindi recommit.

Dato che stai salendo in cima al ramo cattivo, non crea una nuova testa, e poi le tue modifiche ripristinate vengono spinte alla punta.

    
risposta data 14.03.2013 - 20:09
fonte
1

Is there any easier way to do this?

Sì. hg help rebase : rebase changeset al nuovo genitore corretto e premi

PS : devi abilitare l'estensione di Rebase prima di utilizzare il comando

    
risposta data 22.02.2013 - 01:08
fonte
0

hg rollback eseguirà il rollback dell'ultima transazione se non è stato effettuato il push. Se hai impegnato o spinto il lavoro dopo che la transazione vuoi fare andare via, non funzionerà. hg help rollback per i dettagli.

    
risposta data 14.03.2013 - 17:38
fonte

Leggi altre domande sui tag